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

char * trim2(char *s,int how)

{
  int iVar1;
  byte *pbVar2;
  uint uVar3;
  int iVar4;
  int *piVar5;
  undefined4 uVar6;
  char *pcVar7;
  wchar_t wVar8;
  mbiter_multi *iter;
  undefined *puVar9;
  undefined *puVar10;
  byte *s_00;
  byte *pbVar11;
  mbstate_t *ps;
  wchar_t *pwVar12;
  byte *pbVar13;
  undefined *puVar14;
  char cVar15;
  uint uStack_74;
  char *local_6c;
  mbi_iterator_t i;
  
  puVar14 = PTR___stack_chk_guard_0005b58c;
  iVar1 = *(int *)PTR___stack_chk_guard_0005b58c;
  pbVar2 = (byte *)(*(code *)PTR_strdup_0005b598)();
  if (pbVar2 == (byte *)0x0) goto LAB_00027900;
  uVar3 = (*(code *)PTR___ctype_get_mb_cur_max_0005b534)();
  pbVar11 = pbVar2;
  if (uVar3 < 2) {
    if (how != 0) {
      uVar3 = (uint)(char)*pbVar2;
      if (uVar3 != 0) {
        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();
        do {
          pbVar13 = pbVar11 + 1;
          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;
          uVar3 = (uint)(char)*pbVar13;
          pbVar11 = pbVar13;
        } while (uVar3 != 0);
      }
      goto LAB_00027638;
    }
    goto LAB_00027668;
  }
  ps = &i.state;
  if (how != 0) {
    i.cur.ptr = (char *)pbVar2;
    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);
    puVar9 = PTR_is_basic_table_0005b300;
    i.limit = (char *)(pbVar2 + iVar4);
    i.state.__count = 0;
    i.state.__value.__wch = 0;
    i.in_shift = false;
    i.next_done = false;
    pbVar13 = pbVar2;
    if (pbVar2 < i.limit) {
      pwVar12 = &i.cur.wc;
      do {
        pcVar7 = i.limit;
        i.next_done = false;
        if (i.in_shift == false) {
          if ((*(uint *)(puVar9 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {
            iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);
            if (iVar4 != 0) {
              i.in_shift = true;
              goto LAB_000277cc;
            }
            goto LAB_00027930;
          }
          i.cur.bytes = 1;
          wVar8 = (wchar_t)(char)*pbVar13;
          i.cur.wc_valid = true;
          pbVar13 = (byte *)i.cur.ptr;
          i.cur.wc = wVar8;
        }
        else {
LAB_000277cc:
          iter = (mbiter_multi *)pwVar12;
          i.cur.bytes = rpl_mbrtowc(pwVar12,(char *)pbVar13,(int)pcVar7 - (int)pbVar13,ps);
          wVar8 = i.cur.wc;
          pbVar13 = (byte *)i.cur.ptr;
          if (i.cur.bytes == 0xffffffff) {
            i.cur.wc_valid = false;
            i.cur.bytes = 1;
            i.next_done = true;
            break;
          }
          if (i.cur.bytes == 0xfffffffe) {
            i.cur.wc_valid = false;
            i.next_done = true;
            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;
            break;
          }
          if (i.cur.bytes == 0) {
            i.cur.bytes = 1;
            if (*i.cur.ptr != '\0') goto LAB_0002790c;
            if (i.cur.wc != 0) goto LAB_000278dc;
          }
          i.cur.wc_valid = true;
          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);
          if (iVar4 != 0) {
            i.in_shift = false;
          }
        }
        i.next_done = true;
        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(wVar8);
        if (iVar4 == 0) break;
        i.next_done = false;
        pbVar13 = pbVar13 + i.cur.bytes;
        i.cur.ptr = (char *)pbVar13;
      } while (pbVar13 < i.limit);
    }
    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar13);
    (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar13,iVar4 + 1);
    if (how == 1) goto LAB_000274d0;
  }
  i.cur.ptr = (char *)pbVar2;
  iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);
  puVar9 = PTR_is_basic_table_0005b300;
  pbVar13 = pbVar2 + iVar4;
  i.state.__count = 0;
  i.state.__value.__wch = 0;
  i.in_shift = false;
  i.next_done = false;
  i.limit = (char *)pbVar13;
  if (pbVar2 < pbVar13) {
    cVar15 = '\0';
    pwVar12 = &i.cur.wc;
    how = 1;
    s_00 = pbVar2;
LAB_0002742c:
    do {
      i.next_done = false;
      if (i.in_shift == false) {
        if ((*(uint *)(puVar9 + (uint)(*s_00 >> 5) * 4) >> (*s_00 & 0x1f) & 1) == 0) {
          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);
          if (iVar4 != 0) {
            i.in_shift = true;
            goto LAB_0002752c;
          }
          goto LAB_00027930;
        }
        i.cur.bytes = 1;
        i.cur.wc = (wchar_t)(char)*s_00;
        i.cur.wc_valid = true;
        s_00 = (byte *)(i.cur.ptr + 1);
        pcVar7 = i.cur.ptr;
      }
      else {
LAB_0002752c:
        iter = (mbiter_multi *)pwVar12;
        i.cur.bytes = rpl_mbrtowc(pwVar12,(char *)s_00,(int)pbVar13 - (int)s_00,ps);
        pcVar7 = i.cur.ptr;
        if (i.cur.bytes == 0xffffffff) {
          i.cur.wc_valid = false;
          s_00 = (byte *)(i.cur.ptr + 1);
          i.cur.bytes = 1;
        }
        else if (i.cur.bytes == 0xfffffffe) {
          i.cur.wc_valid = false;
          i.cur.bytes = (int)i.limit - (int)i.cur.ptr;
          s_00 = (byte *)i.limit;
        }
        else {
          if (i.cur.bytes == 0) {
            i.cur.bytes = 1;
            if (*i.cur.ptr != '\0') goto LAB_0002790c;
            if (i.cur.wc != 0) goto LAB_000278dc;
          }
          i.cur.wc_valid = true;
          s_00 = (byte *)(i.cur.ptr + i.cur.bytes);
          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);
          if (iVar4 != 0) {
            i.in_shift = false;
          }
        }
      }
      pbVar13 = (byte *)i.limit;
      i.next_done = true;
      if (cVar15 == '\0') {
        cVar15 = '\x01';
        if (i.cur.wc_valid != false) {
          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc);
          cVar15 = iVar4 == 0;
        }
      }
      else if (cVar15 == '\x01') {
        if ((i.cur.wc_valid != false) &&
           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc), iVar4 != 0)) {
          cVar15 = '\x02';
          local_6c = pcVar7;
        }
      }
      else {
        if ((cVar15 == '\x02') && (i.cur.wc_valid != false)) {
          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc);
          if (iVar4 == 0) {
            cVar15 = '\x01';
          }
          i.cur.ptr = (char *)s_00;
          if (pbVar13 <= s_00) break;
          goto LAB_0002742c;
        }
        cVar15 = '\x01';
      }
      i.cur.ptr = (char *)s_00;
    } while (s_00 < pbVar13);
    i.next_done = false;
    i.cur.ptr = (char *)s_00;
    if (cVar15 == '\x02') {
      *local_6c = '\0';
    }
  }
  goto LAB_000274d0;
LAB_0002790c:
  i.cur.bytes = 1;
  (*(code *)PTR___assert_fail_0005b410)
            (PTR_LAB_0005b128 + 0x7cf0,PTR_DAT_0005b2cc + -0x7c90,0xa9,PTR_DAT_0005b2cc + -0x7c80);
LAB_00027930:
  puVar10 = PTR_DAT_0005b2cc + -0x7c90;
  puVar9 = PTR_LAB_0005b128 + 0x7cd8;
  puVar14 = PTR___assert_fail_0005b410;
  (*(code *)PTR___assert_fail_0005b410)(puVar9);
  if (puVar10 == (undefined *)0x0) {
    (**(code **)(puVar14 + 0x33ae8))();
  }
  else {
    (**(code **)(puVar14 + 0x33ae8))();
  }
  uVar6 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c4c,5);
  (**(code **)(puVar14 + 0x33ae8))(puVar9,1,*(undefined4 *)(puVar14 + 0x33a10),uVar6,0x7e2);
  uVar6 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c48,5);
  (**(code **)(puVar14 + 0x33c84))(uVar6,puVar9);
  if (uStack_74 < 10) {
                    /* WARNING: Could not recover jumptable at 0x00027a54. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    pcVar7 = (char *)(*(code *)(puVar14 +
                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +
                               0x3b790))();
    return pcVar7;
  }
  uVar6 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7a3c,5);
  pcVar7 = (char *)(**(code **)(puVar14 + 0x33ae8))
                             (puVar9,1,uVar6,__gp,_DAT_000630f4,uRam000630f8,uRam000630fc,
                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110);
  return pcVar7;
LAB_000278dc:
  i.cur.bytes = 1;
  mbiter_multi_next(iter);
LAB_00027638:
  iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar11);
  (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar11,iVar4 + 1);
  if (how != 1) {
LAB_00027668:
    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);
    pbVar11 = pbVar2 + iVar4 + -1;
    if (pbVar2 <= pbVar11) {
      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();
      iVar4 = *piVar5;
      do {
        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;
        *pbVar11 = 0;
        pbVar11 = pbVar11 + -1;
      } while (pbVar2 <= pbVar11);
    }
  }
LAB_000274d0:
  if (iVar1 == *(int *)puVar14) {
    return (char *)pbVar2;
  }
  (*(code *)PTR___stack_chk_fail_0005b564)();
LAB_00027900:
                    /* WARNING: Subroutine does not return */
  xalloc_die();
}



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

byte * trim2(undefined4 param_1,int param_2)

{
  bool bVar1;
  byte *pbVar2;
  uint uVar3;
  int iVar4;
  int *piVar5;
  int iVar6;
  undefined4 uVar7;
  undefined *puVar8;
  undefined *puVar9;
  byte *pbVar10;
  byte *pbVar11;
  byte *pbVar12;
  byte *pbVar13;
  undefined *puVar14;
  char cVar15;
  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;
  
  puVar14 = PTR___stack_chk_guard_0005b58c;
  local_2c = *(int *)PTR___stack_chk_guard_0005b58c;
  pbVar2 = (byte *)(*(code *)PTR_strdup_0005b598)();
  if (pbVar2 == (byte *)0x0) goto LAB_00027900;
  uVar3 = (*(code *)PTR___ctype_get_mb_cur_max_0005b534)();
  pbVar11 = pbVar2;
  if (uVar3 < 2) {
    if (param_2 != 0) {
      uVar3 = (uint)(char)*pbVar2;
      if (uVar3 != 0) {
        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();
        do {
          pbVar13 = pbVar11 + 1;
          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;
          uVar3 = (uint)(char)*pbVar13;
          pbVar11 = pbVar13;
        } while (uVar3 != 0);
      }
      goto LAB_00027638;
    }
    goto LAB_00027668;
  }
  if (param_2 != 0) {
    local_54 = pbVar2;
    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);
    puVar8 = PTR_is_basic_table_0005b300;
    pbVar10 = pbVar2 + iVar4;
    local_60 = 0;
    local_5c = 0;
    bVar1 = false;
    local_58 = 0;
    pbVar13 = pbVar2;
    if (pbVar2 < pbVar10) {
      do {
        local_58 = 0;
        if (bVar1) {
LAB_000277cc:
          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);
          iVar4 = local_48[0];
          pbVar13 = local_54;
          if (local_50 == -1) {
            local_4c = '\0';
            local_50 = 1;
            local_58 = 1;
            break;
          }
          if (local_50 == -2) {
            local_4c = '\0';
            local_58 = 1;
            local_50 = (int)pbVar10 - (int)local_54;
            break;
          }
          if (local_50 == 0) {
            local_50 = 1;
            if (*local_54 != 0) goto LAB_0002790c;
            if (local_48[0] != 0) goto LAB_000278dc;
          }
          local_4c = '\x01';
          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);
          if (iVar6 != 0) {
            bVar1 = false;
          }
        }
        else {
          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {
            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);
            if (iVar4 != 0) {
              bVar1 = true;
              goto LAB_000277cc;
            }
            goto LAB_00027930;
          }
          local_50 = 1;
          iVar4 = (int)(char)*pbVar13;
          local_4c = '\x01';
          pbVar13 = local_54;
          local_48[0] = iVar4;
        }
        local_58 = 1;
        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4);
        if (iVar4 == 0) break;
        local_58 = 0;
        pbVar13 = pbVar13 + local_50;
        local_54 = pbVar13;
      } while (pbVar13 < pbVar10);
    }
    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar13);
    (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar13,iVar4 + 1);
    if (param_2 == 1) goto LAB_000274d0;
  }
  local_54 = pbVar2;
  iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);
  puVar8 = PTR_is_basic_table_0005b300;
  pbVar13 = pbVar2 + iVar4;
  local_60 = 0;
  local_5c = 0;
  bVar1 = false;
  local_58 = 0;
  if (pbVar2 < pbVar13) {
    cVar15 = '\0';
    param_2 = 1;
    pbVar10 = pbVar2;
LAB_0002742c:
    do {
      local_58 = 0;
      if (bVar1) {
LAB_0002752c:
        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);
        pbVar12 = local_54;
        if (local_50 == -1) {
          local_4c = '\0';
          pbVar10 = local_54 + 1;
          local_50 = 1;
        }
        else if (local_50 == -2) {
          local_4c = '\0';
          local_50 = (int)pbVar13 - (int)local_54;
          pbVar10 = pbVar13;
        }
        else {
          if (local_50 == 0) {
            local_50 = 1;
            if (*local_54 != 0) goto LAB_0002790c;
            if (local_48[0] != 0) goto LAB_000278dc;
          }
          local_4c = '\x01';
          pbVar10 = local_54 + local_50;
          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);
          if (iVar4 != 0) {
            bVar1 = false;
          }
        }
      }
      else {
        if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {
          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);
          if (iVar4 != 0) {
            bVar1 = true;
            goto LAB_0002752c;
          }
          goto LAB_00027930;
        }
        local_50 = 1;
        local_48[0] = (int)(char)*pbVar10;
        local_4c = '\x01';
        pbVar10 = local_54 + 1;
        pbVar12 = local_54;
      }
      local_58 = 1;
      if (cVar15 == '\0') {
        cVar15 = '\x01';
        if (local_4c != '\0') {
          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);
          cVar15 = iVar4 == 0;
        }
      }
      else if (cVar15 == '\x01') {
        if ((local_4c != '\0') &&
           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {
          cVar15 = '\x02';
          local_6c = pbVar12;
        }
      }
      else {
        if ((cVar15 == '\x02') && (local_4c != '\0')) {
          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);
          if (iVar4 == 0) {
            cVar15 = '\x01';
          }
          local_54 = pbVar10;
          if (pbVar13 <= pbVar10) break;
          goto LAB_0002742c;
        }
        cVar15 = '\x01';
      }
      local_54 = pbVar10;
    } while (pbVar10 < pbVar13);
    local_58 = 0;
    local_54 = pbVar10;
    if (cVar15 == '\x02') {
      *local_6c = 0;
    }
  }
  goto LAB_000274d0;
LAB_0002790c:
  local_50 = 1;
  (*(code *)PTR___assert_fail_0005b410)
            (PTR_LAB_0005b128 + 0x7cf0,PTR_DAT_0005b2cc + -0x7c90,0xa9,PTR_DAT_0005b2cc + -0x7c80);
LAB_00027930:
  puVar9 = PTR_DAT_0005b2cc + -0x7c90;
  puVar8 = PTR_LAB_0005b128 + 0x7cd8;
  puVar14 = PTR___assert_fail_0005b410;
  (*(code *)PTR___assert_fail_0005b410)(puVar8);
  if (puVar9 == (undefined *)0x0) {
    (**(code **)(puVar14 + 0x33ae8))();
  }
  else {
    (**(code **)(puVar14 + 0x33ae8))();
  }
  uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c4c,5);
  (**(code **)(puVar14 + 0x33ae8))(puVar8,1,*(undefined4 *)(puVar14 + 0x33a10),uVar7,0x7e2);
  uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c48,5);
  (**(code **)(puVar14 + 0x33c84))(uVar7,puVar8);
  if (uStack_74 < 10) {
                    /* WARNING: Could not recover jumptable at 0x00027a54. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    pbVar2 = (byte *)(*(code *)(puVar14 +
                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +
                               0x3b790))();
    return pbVar2;
  }
  uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7a3c,5);
  pbVar2 = (byte *)(**(code **)(puVar14 + 0x33ae8))
                             (puVar8,1,uVar7,__gp_1,_DAT_000630f4,uRam000630f8,uRam000630fc,
                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110);
  return pbVar2;
LAB_000278dc:
  local_50 = 1;
  FUN_000272f0();
LAB_00027638:
  iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar11);
  (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar11,iVar4 + 1);
  if (param_2 != 1) {
LAB_00027668:
    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);
    pbVar11 = pbVar2 + iVar4 + -1;
    if (pbVar2 <= pbVar11) {
      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();
      iVar4 = *piVar5;
      do {
        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;
        *pbVar11 = 0;
        pbVar11 = pbVar11 + -1;
      } while (pbVar2 <= pbVar11);
    }
  }
LAB_000274d0:
  if (local_2c == *(int *)puVar14) {
    return pbVar2;
  }
  (*(code *)PTR___stack_chk_fail_0005b564)();
LAB_00027900:
                    /* WARNING: Subroutine does not return */
  xalloc_die();
}


lui gp,0x4
addiu gp,gp,-0x423c
addu gp,gp,t9
addiu sp,sp,-0x88
lw t9,-0x7b58(gp)
sw s2,0x68(sp)
lw s2,-0x7b64(gp)
sw gp,0x10(sp)
sw s3,0x6c(sp)
or s3,a1,zero
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 s1,0x64(sp)
sw s0,0x60(sp)
lw v0,0x0(s2)
sw v0,0x5c(sp)
jalr t9
_nop
beq v0,zero,0x00027900
_lw gp,0x10(sp)
lw t9,-0x7bbc(gp)
jalr t9
_or s1,v0,zero
sltiu v0,v0,0x2
bne v0,zero,0x000275e0
_lw gp,0x10(sp)
bne s3,zero,0x00027704
_addiu s5,sp,0x28
lw t9,-0x7c0c(gp)
or a0,s1,zero
jalr t9
_sw s1,0x34(sp)
addu s7,s1,v0
lw gp,0x10(sp)
sw zero,0x28(sp)
sltu v0,s1,s7
sw zero,0x4(s5)
sb zero,0x24(sp)
sw s7,0x20(sp)
beq v0,zero,0x000274d0
_sb zero,0x30(sp)
lw v0,-0x7df0(gp)
or s8,zero,zero
addiu s6,sp,0x40
li s3,0x1
sw v0,0x18(sp)
b 0x0002742c
_or s0,s1,zero
lbu v0,0x3c(sp)
beq v0,zero,0x0002741c
_li s8,0x1
lw t9,-0x7bf4(gp)
jalr t9
_lw a0,0x40(sp)
lw gp,0x10(sp)
sltiu s8,v0,0x1
sltu v0,s0,s7
sw s0,0x34(sp)
beq v0,zero,0x000274c4
_sb zero,0x30(sp)
lbu v0,0x24(sp)
bne v0,zero,0x0002752c
_lw v0,0x18(sp)
lbu a0,0x0(s0)
srl v1,a0,0x5
sll v1,v1,0x2
addu v1,v0,v1
lw v0,0x0(v1)
srlv v0,v0,a0
andi v0,v0,0x1
beq v0,zero,0x00027518
_lw t9,-0x7b68(gp)
li v0,0x1
lw s4,0x34(sp)
lw s7,0x20(sp)
sw v0,0x38(sp)
lb a0,0x0(s0)
addiu s0,s4,0x1
sb v0,0x3c(sp)
sw a0,0x40(sp)
beq s8,zero,0x000273fc
_sb s3,0x30(sp)
li a1,0x1
beq s8,a1,0x000275b0
_li v0,0x2
bne s8,v0,0x00027510
_lbu v0,0x3c(sp)
beq v0,zero,0x00027510
_lw t9,-0x7bf4(gp)
jalr t9
_lw a0,0x40(sp)
li a1,0x1
lw gp,0x10(sp)
movz s8,a1,v0
sltu v0,s0,s7
sw s0,0x34(sp)
bne v0,zero,0x0002742c
_sb zero,0x30(sp)
li v0,0x2
beq s8,v0,0x00027834
_lw v0,0x1c(sp)
lw a0,0x5c(sp)
or v0,s1,zero
lw v1,0x0(s2)
bne a0,v1,0x000278f4
_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
b 0x0002741c
_li s8,0x1
jalr t9
_or a0,s5,zero
beq v0,zero,0x00027930
_lw gp,0x10(sp)
sb s3,0x24(sp)
lw t9,-0x7e08(gp)
subu a2,s7,s0
or a3,s5,zero
or a1,s0,zero
bal 0x0002c6a0
_or a0,s6,zero
li v1,-0x1
lw gp,0x10(sp)
lw s4,0x34(sp)
beq v0,v1,0x000276d4
_sw v0,0x38(sp)
li v1,-0x2
beq v0,v1,0x000276ec
_nop
bne v0,zero,0x0002758c
_lw t9,-0x7b68(gp)
li v0,0x1
sw v0,0x38(sp)
lb v0,0x0(s4)
bne v0,zero,0x0002790c
_lw v0,0x40(sp)
bne v0,zero,0x000278dc
_li v0,0x1
lw t9,-0x7b68(gp)
or a0,s5,zero
sb s3,0x3c(sp)
jalr t9
_addu s0,s4,v0
lw gp,0x10(sp)
beq v0,zero,0x0002747c
_lw s7,0x20(sp)
b 0x0002747c
_sb zero,0x24(sp)
lbu v0,0x3c(sp)
beq v0,zero,0x0002741c
_lw t9,-0x7bf4(gp)
jalr t9
_lw a0,0x40(sp)
lw v1,0x1c(sp)
lw gp,0x10(sp)
movn v1,s4,v0
sw v1,0x1c(sp)
li v1,0x2
b 0x0002741c
_movn s8,v1,v0
beq s3,zero,0x00027668
_lw t9,-0x7c0c(gp)
lb s0,0x0(s1)
beq s0,zero,0x000278ec
_lw t9,-0x7ce4(gp)
jalr t9
_or s4,s1,zero
lw gp,0x10(sp)
b 0x00027614
_lw v1,0x0(v0)
lb s0,0x0(s4)
beq s0,zero,0x00027638
_lw t9,-0x7c0c(gp)
andi s0,s0,0xff
sll s0,s0,0x1
addu s0,v1,s0
lhu v0,0x0(s0)
andi v0,v0,0x20
bne v0,zero,0x00027608
_addiu s4,s4,0x1
addiu s4,s4,-0x1
lw t9,-0x7c0c(gp)
jalr t9
_or a0,s4,zero
or a1,s4,zero
lw gp,0x10(sp)
addiu a2,v0,0x1
lw t9,-0x7b4c(gp)
jalr t9
_or a0,s1,zero
li v0,0x1
beq s3,v0,0x000274d0
_lw gp,0x10(sp)
lw t9,-0x7c0c(gp)
jalr t9
_or a0,s1,zero
addiu v0,v0,-0x1
addu s0,s1,v0
sltu v0,s0,s1
bne v0,zero,0x000274d0
_lw gp,0x10(sp)
lw t9,-0x7ce4(gp)
jalr t9
_nop
lw gp,0x10(sp)
b 0x000276b0
_lw v1,0x0(v0)
sb zero,0x0(s0)
addiu s0,s0,-0x1
sltu v0,s0,s1
bne v0,zero,0x000274d0
_nop
lbu v0,0x0(s0)
sll v0,v0,0x1
addu v0,v1,v0
lhu v0,0x0(v0)
andi v0,v0,0x20
bne v0,zero,0x0002769c
_nop
b 0x000274d0
_nop
li v0,0x1
lw s7,0x20(sp)
sb zero,0x3c(sp)
addiu s0,s4,0x1
b 0x0002747c
_sw v0,0x38(sp)
lw s0,0x20(sp)
sb zero,0x3c(sp)
subu v0,s0,s4
or s7,s0,zero
b 0x0002747c
_sw v0,0x38(sp)
lw t9,-0x7c0c(gp)
or a0,s1,zero
sw s1,0x34(sp)
jalr t9
_or s0,s1,zero
addu a2,s1,v0
lw gp,0x10(sp)
sw zero,0x28(sp)
sltu v0,s1,a2
sw zero,0x4(s5)
sb zero,0x24(sp)
sw a2,0x20(sp)
beq v0,zero,0x00027870
_sb zero,0x30(sp)
addiu s8,sp,0x40
lw s7,-0x7df0(gp)
li s6,-0x1
b 0x000277c0
_li s4,0x1
lbu a0,0x0(s0)
srl v1,a0,0x5
sll v1,v1,0x2
addu v1,s7,v1
lw v0,0x0(v1)
srlv v0,v0,a0
andi v0,v0,0x1
beq v0,zero,0x0002783c
_lw t9,-0x7b68(gp)
li v0,0x1
sw v0,0x38(sp)
lb v1,0x0(s0)
lw s0,0x34(sp)
sb v0,0x3c(sp)
sw v1,0x40(sp)
sb v0,0x30(sp)
lw t9,-0x7bf4(gp)
jalr t9
_or a0,v1,zero
beq v0,zero,0x00027870
_lw gp,0x10(sp)
lw v0,0x38(sp)
lw a2,0x20(sp)
sb zero,0x30(sp)
addu s0,s0,v0
sltu v0,s0,a2
beq v0,zero,0x00027870
_sw s0,0x34(sp)
lbu v0,0x24(sp)
beq v0,zero,0x00027750
_nop
lw t9,-0x7e08(gp)
subu a2,a2,s0
or a3,s5,zero
or a1,s0,zero
bal 0x0002c6a0
_or a0,s8,zero
lw gp,0x10(sp)
beq v0,s6,0x0002785c
_sw v0,0x38(sp)
li v1,-0x2
beq v0,v1,0x000278a8
_lw s0,0x34(sp)
beq v0,zero,0x000278c4
_li v0,0x1
lw v1,0x40(sp)
lw t9,-0x7b68(gp)
or a0,s5,zero
sw v1,0x18(sp)
jalr t9
_sb s4,0x3c(sp)
lw gp,0x10(sp)
beq v0,zero,0x0002782c
_lw v1,0x18(sp)
sb zero,0x24(sp)
b 0x00027790
_sb s4,0x30(sp)
b 0x000274d0
_sb zero,0x0(v0)
or a0,s5,zero
jalr t9
_sw a2,0x18(sp)
lw gp,0x10(sp)
beq v0,zero,0x00027930
_lw a2,0x18(sp)
b 0x000277cc
_sb s4,0x24(sp)
li v0,0x1
lw s0,0x34(sp)
sb zero,0x3c(sp)
sw v0,0x38(sp)
sb v0,0x30(sp)
lw t9,-0x7c0c(gp)
jalr t9
_or a0,s0,zero
or a1,s0,zero
lw gp,0x10(sp)
addiu a2,v0,0x1
lw t9,-0x7b4c(gp)
jalr t9
_or a0,s1,zero
li v0,0x1
beq s3,v0,0x000274d0
_lw gp,0x10(sp)
b 0x000273b0
_lw t9,-0x7c0c(gp)
li v0,0x1
sb zero,0x3c(sp)
sb v0,0x30(sp)
lw v0,0x20(sp)
subu v0,v0,s0
b 0x00027870
_sw v0,0x38(sp)
sw v0,0x38(sp)
lb v0,0x0(s0)
bne v0,zero,0x0002790c
_lw v1,0x40(sp)
beq v1,zero,0x0002780c
_lw t9,-0x7b68(gp)
lw t9,-0x7fb4(gp)
addiu t9,t9,0x72f0
bal 0x000272f0
_nop
b 0x00027634
_or s4,s1,zero
lw t9,-0x7b8c(gp)
jalr t9
_nop
lw t9,-0x7e30(gp)
bal 0x000284a0
_nop
lw a3,-0x7e24(gp)
li a2,0xa9
lw a1,-0x7e24(gp)
lw a0,-0x7fc8(gp)
lw t9,-0x7ce0(gp)
addiu a3,a3,-0x7c80
addiu a1,a1,-0x7c90
jalr t9
_addiu a0,a0,0x7cf0
lw a3,-0x7e24(gp)
li a2,0x8e
lw a1,-0x7e24(gp)
lw a0,-0x7fc8(gp)
lw t9,-0x7ce0(gp)
addiu a3,a3,-0x7c80
addiu a1,a1,-0x7c90
jalr t9
_addiu a0,a0,0x7cd8
nop
nop
nop
(translation_unit "/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nbyte * trim2(undefined4 param_1,int param_2)\n\n{\n  bool bVar1;\n  byte *pbVar2;\n  uint uVar3;\n  int iVar4;\n  int *piVar5;\n  int iVar6;\n  undefined4 uVar7;\n  undefined *puVar8;\n  undefined *puVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  undefined *puVar14;\n  char cVar15;\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  puVar14 = PTR___stack_chk_guard_0005b58c;\n  local_2c = *(int *)PTR___stack_chk_guard_0005b58c;\n  pbVar2 = (byte *)(*(code *)PTR_strdup_0005b598)();\n  if (pbVar2 == (byte *)0x0) goto LAB_00027900;\n  uVar3 = (*(code *)PTR___ctype_get_mb_cur_max_0005b534)();\n  pbVar11 = pbVar2;\n  if (uVar3 < 2) {\n    if (param_2 != 0) {\n      uVar3 = (uint)(char)*pbVar2;\n      if (uVar3 != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }\n      goto LAB_00027638;\n    }\n    goto LAB_00027668;\n  }\n  if (param_2 != 0) {\n    local_54 = pbVar2;\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    puVar8 = PTR_is_basic_table_0005b300;\n    pbVar10 = pbVar2 + iVar4;\n    local_60 = 0;\n    local_5c = 0;\n    bVar1 = false;\n    local_58 = 0;\n    pbVar13 = pbVar2;\n    if (pbVar2 < pbVar10) {\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);\n          iVar4 = local_48[0];\n          pbVar13 = local_54;\n          if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }\n          if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n        else {\n          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }\n        local_58 = 1;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4);\n        if (iVar4 == 0) break;\n        local_58 = 0;\n        pbVar13 = pbVar13 + local_50;\n        local_54 = pbVar13;\n      } while (pbVar13 < pbVar10);\n    }\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar13);\n    (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar13,iVar4 + 1);\n    if (param_2 == 1) goto LAB_000274d0;\n  }\n  local_54 = pbVar2;\n  iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n  puVar8 = PTR_is_basic_table_0005b300;\n  pbVar13 = pbVar2 + iVar4;\n  local_60 = 0;\n  local_5c = 0;\n  bVar1 = false;\n  local_58 = 0;\n  if (pbVar2 < pbVar13) {\n    cVar15 = '\0';\n    param_2 = 1;\n    pbVar10 = pbVar2;\nLAB_0002742c:\n    do {\n      local_58 = 0;\n      if (bVar1) {\nLAB_0002752c:\n        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);\n        pbVar12 = local_54;\n        if (local_50 == -1) {\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }\n        else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar10;\n        local_4c = '\x01';\n        pbVar10 = local_54 + 1;\n        pbVar12 = local_54;\n      }\n      local_58 = 1;\n      if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (local_4c != '\0') {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }\n      local_54 = pbVar10;\n    } while (pbVar10 < pbVar13);\n    local_58 = 0;\n    local_54 = pbVar10;\n    if (cVar15 == '\x02') {\n      *local_6c = 0;\n    }\n  }\n  goto LAB_000274d0;\nLAB_0002790c:\n  local_50 = 1;\n  (*(code *)PTR___assert_fail_0005b410)\n            (PTR_LAB_0005b128 + 0x7cf0,PTR_DAT_0005b2cc + -0x7c90,0xa9,PTR_DAT_0005b2cc + -0x7c80);\nLAB_00027930:\n  puVar9 = PTR_DAT_0005b2cc + -0x7c90;\n  puVar8 = PTR_LAB_0005b128 + 0x7cd8;\n  puVar14 = PTR___assert_fail_0005b410;\n  (*(code *)PTR___assert_fail_0005b410)(puVar8);\n  if (puVar9 == (undefined *)0x0) {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }\n  else {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }\n  uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c4c,5);\n  (**(code **)(puVar14 + 0x33ae8))(puVar8,1,*(undefined4 *)(puVar14 + 0x33a10),uVar7,0x7e2);\n  uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c48,5);\n  (**(code **)(puVar14 + 0x33c84))(uVar7,puVar8);\n  if (uStack_74 < 10) {\n                    /* WARNING: Could not recover jumptable at 0x00027a54. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pbVar2 = (byte *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))();\n    return pbVar2;\n  }\n  uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7a3c,5);\n  pbVar2 = (byte *)(**(code **)(puVar14 + 0x33ae8))\n                             (puVar8,1,uVar7,__gp_1,_DAT_000630f4,uRam000630f8,uRam000630fc,\n                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110);\n  return pbVar2;\nLAB_000278dc:\n  local_50 = 1;\n  FUN_000272f0();\nLAB_00027638:\n  iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar11);\n  (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar11,iVar4 + 1);\n  if (param_2 != 1) {\nLAB_00027668:\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    pbVar11 = pbVar2 + iVar4 + -1;\n    if (pbVar2 <= pbVar11) {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n      iVar4 = *piVar5;\n      do {\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar2 <= pbVar11);\n    }\n  }\nLAB_000274d0:\n  if (local_2c == *(int *)puVar14) {\n    return pbVar2;\n  }\n  (*(code *)PTR___stack_chk_fail_0005b564)();\nLAB_00027900:\n                    /* WARNING: Subroutine does not return */\n  xalloc_die();\n}\n\n" comment (function_definition "byte * trim2(undefined4 param_1,int param_2)\n\n{\n  bool bVar1;\n  byte *pbVar2;\n  uint uVar3;\n  int iVar4;\n  int *piVar5;\n  int iVar6;\n  undefined4 uVar7;\n  undefined *puVar8;\n  undefined *puVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  undefined *puVar14;\n  char cVar15;\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  puVar14 = PTR___stack_chk_guard_0005b58c;\n  local_2c = *(int *)PTR___stack_chk_guard_0005b58c;\n  pbVar2 = (byte *)(*(code *)PTR_strdup_0005b598)();\n  if (pbVar2 == (byte *)0x0) goto LAB_00027900;\n  uVar3 = (*(code *)PTR___ctype_get_mb_cur_max_0005b534)();\n  pbVar11 = pbVar2;\n  if (uVar3 < 2) {\n    if (param_2 != 0) {\n      uVar3 = (uint)(char)*pbVar2;\n      if (uVar3 != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }\n      goto LAB_00027638;\n    }\n    goto LAB_00027668;\n  }\n  if (param_2 != 0) {\n    local_54 = pbVar2;\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    puVar8 = PTR_is_basic_table_0005b300;\n    pbVar10 = pbVar2 + iVar4;\n    local_60 = 0;\n    local_5c = 0;\n    bVar1 = false;\n    local_58 = 0;\n    pbVar13 = pbVar2;\n    if (pbVar2 < pbVar10) {\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);\n          iVar4 = local_48[0];\n          pbVar13 = local_54;\n          if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }\n          if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n        else {\n          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }\n        local_58 = 1;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4);\n        if (iVar4 == 0) break;\n        local_58 = 0;\n        pbVar13 = pbVar13 + local_50;\n        local_54 = pbVar13;\n      } while (pbVar13 < pbVar10);\n    }\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar13);\n    (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar13,iVar4 + 1);\n    if (param_2 == 1) goto LAB_000274d0;\n  }\n  local_54 = pbVar2;\n  iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n  puVar8 = PTR_is_basic_table_0005b300;\n  pbVar13 = pbVar2 + iVar4;\n  local_60 = 0;\n  local_5c = 0;\n  bVar1 = false;\n  local_58 = 0;\n  if (pbVar2 < pbVar13) {\n    cVar15 = '\0';\n    param_2 = 1;\n    pbVar10 = pbVar2;\nLAB_0002742c:\n    do {\n      local_58 = 0;\n      if (bVar1) {\nLAB_0002752c:\n        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);\n        pbVar12 = local_54;\n        if (local_50 == -1) {\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }\n        else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar10;\n        local_4c = '\x01';\n        pbVar10 = local_54 + 1;\n        pbVar12 = local_54;\n      }\n      local_58 = 1;\n      if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (local_4c != '\0') {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }\n      local_54 = pbVar10;\n    } while (pbVar10 < pbVar13);\n    local_58 = 0;\n    local_54 = pbVar10;\n    if (cVar15 == '\x02') {\n      *local_6c = 0;\n    }\n  }\n  goto LAB_000274d0;\nLAB_0002790c:\n  local_50 = 1;\n  (*(code *)PTR___assert_fail_0005b410)\n            (PTR_LAB_0005b128 + 0x7cf0,PTR_DAT_0005b2cc + -0x7c90,0xa9,PTR_DAT_0005b2cc + -0x7c80);\nLAB_00027930:\n  puVar9 = PTR_DAT_0005b2cc + -0x7c90;\n  puVar8 = PTR_LAB_0005b128 + 0x7cd8;\n  puVar14 = PTR___assert_fail_0005b410;\n  (*(code *)PTR___assert_fail_0005b410)(puVar8);\n  if (puVar9 == (undefined *)0x0) {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }\n  else {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }\n  uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c4c,5);\n  (**(code **)(puVar14 + 0x33ae8))(puVar8,1,*(undefined4 *)(puVar14 + 0x33a10),uVar7,0x7e2);\n  uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c48,5);\n  (**(code **)(puVar14 + 0x33c84))(uVar7,puVar8);\n  if (uStack_74 < 10) {\n                    /* WARNING: Could not recover jumptable at 0x00027a54. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pbVar2 = (byte *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))();\n    return pbVar2;\n  }\n  uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7a3c,5);\n  pbVar2 = (byte *)(**(code **)(puVar14 + 0x33ae8))\n                             (puVar8,1,uVar7,__gp_1,_DAT_000630f4,uRam000630f8,uRam000630fc,\n                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110);\n  return pbVar2;\nLAB_000278dc:\n  local_50 = 1;\n  FUN_000272f0();\nLAB_00027638:\n  iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar11);\n  (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar11,iVar4 + 1);\n  if (param_2 != 1) {\nLAB_00027668:\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    pbVar11 = pbVar2 + iVar4 + -1;\n    if (pbVar2 <= pbVar11) {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n      iVar4 = *piVar5;\n      do {\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar2 <= pbVar11);\n    }\n  }\nLAB_000274d0:\n  if (local_2c == *(int *)puVar14) {\n    return pbVar2;\n  }\n  (*(code *)PTR___stack_chk_fail_0005b564)();\nLAB_00027900:\n                    /* WARNING: Subroutine does not return */\n  xalloc_die();\n}" type_identifier (pointer_declarator "* trim2(undefined4 param_1,int param_2)" * (function_declarator "trim2(undefined4 param_1,int param_2)" identifier (parameter_list "(undefined4 param_1,int param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) )))) (compound_statement "{\n  bool bVar1;\n  byte *pbVar2;\n  uint uVar3;\n  int iVar4;\n  int *piVar5;\n  int iVar6;\n  undefined4 uVar7;\n  undefined *puVar8;\n  undefined *puVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  undefined *puVar14;\n  char cVar15;\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  puVar14 = PTR___stack_chk_guard_0005b58c;\n  local_2c = *(int *)PTR___stack_chk_guard_0005b58c;\n  pbVar2 = (byte *)(*(code *)PTR_strdup_0005b598)();\n  if (pbVar2 == (byte *)0x0) goto LAB_00027900;\n  uVar3 = (*(code *)PTR___ctype_get_mb_cur_max_0005b534)();\n  pbVar11 = pbVar2;\n  if (uVar3 < 2) {\n    if (param_2 != 0) {\n      uVar3 = (uint)(char)*pbVar2;\n      if (uVar3 != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }\n      goto LAB_00027638;\n    }\n    goto LAB_00027668;\n  }\n  if (param_2 != 0) {\n    local_54 = pbVar2;\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    puVar8 = PTR_is_basic_table_0005b300;\n    pbVar10 = pbVar2 + iVar4;\n    local_60 = 0;\n    local_5c = 0;\n    bVar1 = false;\n    local_58 = 0;\n    pbVar13 = pbVar2;\n    if (pbVar2 < pbVar10) {\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);\n          iVar4 = local_48[0];\n          pbVar13 = local_54;\n          if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }\n          if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n        else {\n          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }\n        local_58 = 1;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4);\n        if (iVar4 == 0) break;\n        local_58 = 0;\n        pbVar13 = pbVar13 + local_50;\n        local_54 = pbVar13;\n      } while (pbVar13 < pbVar10);\n    }\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar13);\n    (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar13,iVar4 + 1);\n    if (param_2 == 1) goto LAB_000274d0;\n  }\n  local_54 = pbVar2;\n  iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n  puVar8 = PTR_is_basic_table_0005b300;\n  pbVar13 = pbVar2 + iVar4;\n  local_60 = 0;\n  local_5c = 0;\n  bVar1 = false;\n  local_58 = 0;\n  if (pbVar2 < pbVar13) {\n    cVar15 = '\0';\n    param_2 = 1;\n    pbVar10 = pbVar2;\nLAB_0002742c:\n    do {\n      local_58 = 0;\n      if (bVar1) {\nLAB_0002752c:\n        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);\n        pbVar12 = local_54;\n        if (local_50 == -1) {\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }\n        else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar10;\n        local_4c = '\x01';\n        pbVar10 = local_54 + 1;\n        pbVar12 = local_54;\n      }\n      local_58 = 1;\n      if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (local_4c != '\0') {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }\n      local_54 = pbVar10;\n    } while (pbVar10 < pbVar13);\n    local_58 = 0;\n    local_54 = pbVar10;\n    if (cVar15 == '\x02') {\n      *local_6c = 0;\n    }\n  }\n  goto LAB_000274d0;\nLAB_0002790c:\n  local_50 = 1;\n  (*(code *)PTR___assert_fail_0005b410)\n            (PTR_LAB_0005b128 + 0x7cf0,PTR_DAT_0005b2cc + -0x7c90,0xa9,PTR_DAT_0005b2cc + -0x7c80);\nLAB_00027930:\n  puVar9 = PTR_DAT_0005b2cc + -0x7c90;\n  puVar8 = PTR_LAB_0005b128 + 0x7cd8;\n  puVar14 = PTR___assert_fail_0005b410;\n  (*(code *)PTR___assert_fail_0005b410)(puVar8);\n  if (puVar9 == (undefined *)0x0) {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }\n  else {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }\n  uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c4c,5);\n  (**(code **)(puVar14 + 0x33ae8))(puVar8,1,*(undefined4 *)(puVar14 + 0x33a10),uVar7,0x7e2);\n  uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c48,5);\n  (**(code **)(puVar14 + 0x33c84))(uVar7,puVar8);\n  if (uStack_74 < 10) {\n                    /* WARNING: Could not recover jumptable at 0x00027a54. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pbVar2 = (byte *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))();\n    return pbVar2;\n  }\n  uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7a3c,5);\n  pbVar2 = (byte *)(**(code **)(puVar14 + 0x33ae8))\n                             (puVar8,1,uVar7,__gp_1,_DAT_000630f4,uRam000630f8,uRam000630fc,\n                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110);\n  return pbVar2;\nLAB_000278dc:\n  local_50 = 1;\n  FUN_000272f0();\nLAB_00027638:\n  iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar11);\n  (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar11,iVar4 + 1);\n  if (param_2 != 1) {\nLAB_00027668:\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    pbVar11 = pbVar2 + iVar4 + -1;\n    if (pbVar2 <= pbVar11) {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n      iVar4 = *piVar5;\n      do {\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar2 <= pbVar11);\n    }\n  }\nLAB_000274d0:\n  if (local_2c == *(int *)puVar14) {\n    return pbVar2;\n  }\n  (*(code *)PTR___stack_chk_fail_0005b564)();\nLAB_00027900:\n                    /* WARNING: Subroutine does not return */\n  xalloc_die();\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "char cVar15;" primitive_type 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 "puVar14 = PTR___stack_chk_guard_0005b58c;" (assignment_expression "puVar14 = PTR___stack_chk_guard_0005b58c" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0005b58c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0005b58c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0005b58c" * (cast_expression "(int *)PTR___stack_chk_guard_0005b58c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar2 = (byte *)(*(code *)PTR_strdup_0005b598)();" (assignment_expression "pbVar2 = (byte *)(*(code *)PTR_strdup_0005b598)()" identifier = (cast_expression "(byte *)(*(code *)PTR_strdup_0005b598)()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strdup_0005b598)()" (parenthesized_expression "(*(code *)PTR_strdup_0005b598)" ( (pointer_expression "*(code *)PTR_strdup_0005b598" * (cast_expression "(code *)PTR_strdup_0005b598" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (if_statement "if (pbVar2 == (byte *)0x0) goto LAB_00027900;" if (parenthesized_expression "(pbVar2 == (byte *)0x0)" ( (binary_expression "pbVar2 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00027900;" goto statement_identifier ;)) (expression_statement "uVar3 = (*(code *)PTR___ctype_get_mb_cur_max_0005b534)();" (assignment_expression "uVar3 = (*(code *)PTR___ctype_get_mb_cur_max_0005b534)()" identifier = (call_expression "(*(code *)PTR___ctype_get_mb_cur_max_0005b534)()" (parenthesized_expression "(*(code *)PTR___ctype_get_mb_cur_max_0005b534)" ( (pointer_expression "*(code *)PTR___ctype_get_mb_cur_max_0005b534" * (cast_expression "(code *)PTR___ctype_get_mb_cur_max_0005b534" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "pbVar11 = pbVar2;" (assignment_expression "pbVar11 = pbVar2" identifier = identifier) ;) (if_statement "if (uVar3 < 2) {\n    if (param_2 != 0) {\n      uVar3 = (uint)(char)*pbVar2;\n      if (uVar3 != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }\n      goto LAB_00027638;\n    }\n    goto LAB_00027668;\n  }" if (parenthesized_expression "(uVar3 < 2)" ( (binary_expression "uVar3 < 2" identifier < number_literal) )) (compound_statement "{\n    if (param_2 != 0) {\n      uVar3 = (uint)(char)*pbVar2;\n      if (uVar3 != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }\n      goto LAB_00027638;\n    }\n    goto LAB_00027668;\n  }" { (if_statement "if (param_2 != 0) {\n      uVar3 = (uint)(char)*pbVar2;\n      if (uVar3 != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }\n      goto LAB_00027638;\n    }" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar3 = (uint)(char)*pbVar2;\n      if (uVar3 != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }\n      goto LAB_00027638;\n    }" { (expression_statement "uVar3 = (uint)(char)*pbVar2;" (assignment_expression "uVar3 = (uint)(char)*pbVar2" identifier = (binary_expression "(uint)(char)*pbVar2" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) * identifier)) ;) (if_statement "if (uVar3 != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }" { (expression_statement "piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_0005b40c)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0005b40c)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0005b40c)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0005b40c" * (cast_expression "(code *)PTR___ctype_b_loc_0005b40c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (do_statement "do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);" do (compound_statement "{\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        }" { (expression_statement "pbVar13 = pbVar11 + 1;" (assignment_expression "pbVar13 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (if_statement "if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;" if (parenthesized_expression "((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0)" ( (binary_expression "(*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20)" ( (binary_expression "*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20" (pointer_expression "*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2)" * (cast_expression "(ushort *)(*piVar5 + (uVar3 & 0xff) * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + (uVar3 & 0xff) * 2)" ( (binary_expression "*piVar5 + (uVar3 & 0xff) * 2" (pointer_expression "*piVar5" * identifier) + (binary_expression "(uVar3 & 0xff) * 2" (parenthesized_expression "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) )) * number_literal)) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar3 = (uint)(char)*pbVar13;" (assignment_expression "uVar3 = (uint)(char)*pbVar13" identifier = (binary_expression "(uint)(char)*pbVar13" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) * identifier)) ;) (expression_statement "pbVar11 = pbVar13;" (assignment_expression "pbVar11 = pbVar13" identifier = identifier) ;) }) while (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) ;) })) (goto_statement "goto LAB_00027638;" goto statement_identifier ;) })) (goto_statement "goto LAB_00027668;" goto statement_identifier ;) })) (if_statement "if (param_2 != 0) {\n    local_54 = pbVar2;\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    puVar8 = PTR_is_basic_table_0005b300;\n    pbVar10 = pbVar2 + iVar4;\n    local_60 = 0;\n    local_5c = 0;\n    bVar1 = false;\n    local_58 = 0;\n    pbVar13 = pbVar2;\n    if (pbVar2 < pbVar10) {\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);\n          iVar4 = local_48[0];\n          pbVar13 = local_54;\n          if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }\n          if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n        else {\n          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }\n        local_58 = 1;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4);\n        if (iVar4 == 0) break;\n        local_58 = 0;\n        pbVar13 = pbVar13 + local_50;\n        local_54 = pbVar13;\n      } while (pbVar13 < pbVar10);\n    }\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar13);\n    (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar13,iVar4 + 1);\n    if (param_2 == 1) goto LAB_000274d0;\n  }" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (compound_statement "{\n    local_54 = pbVar2;\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    puVar8 = PTR_is_basic_table_0005b300;\n    pbVar10 = pbVar2 + iVar4;\n    local_60 = 0;\n    local_5c = 0;\n    bVar1 = false;\n    local_58 = 0;\n    pbVar13 = pbVar2;\n    if (pbVar2 < pbVar10) {\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);\n          iVar4 = local_48[0];\n          pbVar13 = local_54;\n          if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }\n          if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n        else {\n          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }\n        local_58 = 1;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4);\n        if (iVar4 == 0) break;\n        local_58 = 0;\n        pbVar13 = pbVar13 + local_50;\n        local_54 = pbVar13;\n      } while (pbVar13 < pbVar10);\n    }\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar13);\n    (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar13,iVar4 + 1);\n    if (param_2 == 1) goto LAB_000274d0;\n  }" { (expression_statement "local_54 = pbVar2;" (assignment_expression "local_54 = pbVar2" identifier = identifier) ;) (expression_statement "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);" (assignment_expression "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2)" identifier = (call_expression "(*(code *)PTR_strlen_0005b4e4)(pbVar2)" (parenthesized_expression "(*(code *)PTR_strlen_0005b4e4)" ( (pointer_expression "*(code *)PTR_strlen_0005b4e4" * (cast_expression "(code *)PTR_strlen_0005b4e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2)" ( identifier )))) ;) (expression_statement "puVar8 = PTR_is_basic_table_0005b300;" (assignment_expression "puVar8 = PTR_is_basic_table_0005b300" identifier = identifier) ;) (expression_statement "pbVar10 = pbVar2 + iVar4;" (assignment_expression "pbVar10 = pbVar2 + iVar4" identifier = (binary_expression "pbVar2 + iVar4" identifier + identifier)) ;) (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 "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "pbVar13 = pbVar2;" (assignment_expression "pbVar13 = pbVar2" identifier = identifier) ;) (if_statement "if (pbVar2 < pbVar10) {\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);\n          iVar4 = local_48[0];\n          pbVar13 = local_54;\n          if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }\n          if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n        else {\n          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }\n        local_58 = 1;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4);\n        if (iVar4 == 0) break;\n        local_58 = 0;\n        pbVar13 = pbVar13 + local_50;\n        local_54 = pbVar13;\n      } while (pbVar13 < pbVar10);\n    }" if (parenthesized_expression "(pbVar2 < pbVar10)" ( (binary_expression "pbVar2 < pbVar10" identifier < identifier) )) (compound_statement "{\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);\n          iVar4 = local_48[0];\n          pbVar13 = local_54;\n          if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }\n          if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n        else {\n          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }\n        local_58 = 1;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4);\n        if (iVar4 == 0) break;\n        local_58 = 0;\n        pbVar13 = pbVar13 + local_50;\n        local_54 = pbVar13;\n      } while (pbVar13 < pbVar10);\n    }" { (do_statement "do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);\n          iVar4 = local_48[0];\n          pbVar13 = local_54;\n          if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }\n          if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n        else {\n          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }\n        local_58 = 1;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4);\n        if (iVar4 == 0) break;\n        local_58 = 0;\n        pbVar13 = pbVar13 + local_50;\n        local_54 = pbVar13;\n      } while (pbVar13 < pbVar10);" do (compound_statement "{\n        local_58 = 0;\n        if (bVar1) {\nLAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);\n          iVar4 = local_48[0];\n          pbVar13 = local_54;\n          if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }\n          if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n        else {\n          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }\n        local_58 = 1;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4);\n        if (iVar4 == 0) break;\n        local_58 = 0;\n        pbVar13 = pbVar13 + local_50;\n        local_54 = pbVar13;\n      }" { (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (if_statement "if (bVar1) {\nLAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);\n          iVar4 = local_48[0];\n          pbVar13 = local_54;\n          if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }\n          if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n        else {\n          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\nLAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);\n          iVar4 = local_48[0];\n          pbVar13 = local_54;\n          if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }\n          if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }" { (labeled_statement "LAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);" statement_identifier : (expression_statement "local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);" (assignment_expression "local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60)" identifier = (call_expression "rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60)" identifier (argument_list "(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60)" ( identifier , identifier , (binary_expression "(int)pbVar10 - (int)pbVar13" (cast_expression "(int)pbVar10" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier)) , (pointer_expression "&local_60" & identifier) )))) ;)) (expression_statement "iVar4 = local_48[0];" (assignment_expression "iVar4 = local_48[0]" identifier = (subscript_expression "local_48[0]" identifier [ number_literal ])) ;) (expression_statement "pbVar13 = local_54;" (assignment_expression "pbVar13 = local_54" identifier = identifier) ;) (if_statement "if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }" if (parenthesized_expression "(local_50 == -1)" ( (binary_expression "local_50 == -1" identifier == number_literal) )) (compound_statement "{\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }" { (expression_statement "local_4c = '\0';" (assignment_expression "local_4c = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;) (expression_statement "local_58 = 1;" (assignment_expression "local_58 = 1" identifier = number_literal) ;) (break_statement "break;" break ;) })) (if_statement "if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }" if (parenthesized_expression "(local_50 == -2)" ( (binary_expression "local_50 == -2" identifier == number_literal) )) (compound_statement "{\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }" { (expression_statement "local_4c = '\0';" (assignment_expression "local_4c = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_58 = 1;" (assignment_expression "local_58 = 1" identifier = number_literal) ;) (expression_statement "local_50 = (int)pbVar10 - (int)local_54;" (assignment_expression "local_50 = (int)pbVar10 - (int)local_54" identifier = (binary_expression "(int)pbVar10 - (int)local_54" (cast_expression "(int)pbVar10" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (break_statement "break;" break ;) })) (if_statement "if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\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) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }" { (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;) (if_statement "if (*local_54 != 0) goto LAB_0002790c;" if (parenthesized_expression "(*local_54 != 0)" ( (binary_expression "*local_54 != 0" (pointer_expression "*local_54" * identifier) != number_literal) )) (goto_statement "goto LAB_0002790c;" goto statement_identifier ;)) (if_statement "if (local_48[0] != 0) goto LAB_000278dc;" if (parenthesized_expression "(local_48[0] != 0)" ( (binary_expression "local_48[0] != 0" (subscript_expression "local_48[0]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_000278dc;" goto statement_identifier ;)) })) (expression_statement "local_4c = '\x01';" (assignment_expression "local_4c = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);" (assignment_expression "iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60)" identifier = (call_expression "(*(code *)PTR_mbsinit_0005b588)(&local_60)" (parenthesized_expression "(*(code *)PTR_mbsinit_0005b588)" ( (pointer_expression "*(code *)PTR_mbsinit_0005b588" * (cast_expression "(code *)PTR_mbsinit_0005b588" ( (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 *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }" else (compound_statement "{\n          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }" { (if_statement "if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }" if (parenthesized_expression "((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0)" ( (binary_expression "(*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0" (parenthesized_expression "(*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1)" ( (binary_expression "*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1" (binary_expression "*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f)" (pointer_expression "*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4)" * (cast_expression "(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + (uint)(*pbVar13 >> 5) * 4)" ( (binary_expression "puVar8 + (uint)(*pbVar13 >> 5) * 4" identifier + (binary_expression "(uint)(*pbVar13 >> 5) * 4" (call_expression "(uint)(*pbVar13 >> 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*pbVar13 >> 5)" ( (binary_expression "*pbVar13 >> 5" (pointer_expression "*pbVar13" * identifier) >> number_literal) ))) * number_literal)) )))) >> (parenthesized_expression "(*pbVar13 & 0x1f)" ( (binary_expression "*pbVar13 & 0x1f" (pointer_expression "*pbVar13" * identifier) & number_literal) ))) & number_literal) )) == number_literal) )) (compound_statement "{\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }" { (expression_statement "iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);" (assignment_expression "iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60)" identifier = (call_expression "(*(code *)PTR_mbsinit_0005b588)(&local_60)" (parenthesized_expression "(*(code *)PTR_mbsinit_0005b588)" ( (pointer_expression "*(code *)PTR_mbsinit_0005b588" * (cast_expression "(code *)PTR_mbsinit_0005b588" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_60)" ( (pointer_expression "&local_60" & identifier) )))) ;) (if_statement "if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n              bVar1 = true;\n              goto LAB_000277cc;\n            }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (goto_statement "goto LAB_000277cc;" goto statement_identifier ;) })) (goto_statement "goto LAB_00027930;" goto statement_identifier ;) })) (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;) (expression_statement "iVar4 = (int)(char)*pbVar13;" (assignment_expression "iVar4 = (int)(char)*pbVar13" identifier = (cast_expression "(int)(char)*pbVar13" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar13" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar13" * identifier)))) ;) (expression_statement "local_4c = '\x01';" (assignment_expression "local_4c = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "pbVar13 = local_54;" (assignment_expression "pbVar13 = local_54" identifier = identifier) ;) (expression_statement "local_48[0] = iVar4;" (assignment_expression "local_48[0] = iVar4" (subscript_expression "local_48[0]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "local_58 = 1;" (assignment_expression "local_58 = 1" identifier = number_literal) ;) (expression_statement "iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4);" (assignment_expression "iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4)" identifier = (call_expression "(*(code *)PTR_iswspace_0005b4fc)(iVar4)" (parenthesized_expression "(*(code *)PTR_iswspace_0005b4fc)" ( (pointer_expression "*(code *)PTR_iswspace_0005b4fc" * (cast_expression "(code *)PTR_iswspace_0005b4fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar4)" ( identifier )))) ;) (if_statement "if (iVar4 == 0) break;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "pbVar13 = pbVar13 + local_50;" (assignment_expression "pbVar13 = pbVar13 + local_50" identifier = (binary_expression "pbVar13 + local_50" identifier + identifier)) ;) (expression_statement "local_54 = pbVar13;" (assignment_expression "local_54 = pbVar13" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar13 < pbVar10)" ( (binary_expression "pbVar13 < pbVar10" identifier < identifier) )) ;) })) (expression_statement "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar13);" (assignment_expression "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar13)" identifier = (call_expression "(*(code *)PTR_strlen_0005b4e4)(pbVar13)" (parenthesized_expression "(*(code *)PTR_strlen_0005b4e4)" ( (pointer_expression "*(code *)PTR_strlen_0005b4e4" * (cast_expression "(code *)PTR_strlen_0005b4e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar13)" ( identifier )))) ;) (expression_statement "(*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar13,iVar4 + 1);" (call_expression "(*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar13,iVar4 + 1)" (parenthesized_expression "(*(code *)PTR_memmove_0005b5a4)" ( (pointer_expression "*(code *)PTR_memmove_0005b5a4" * (cast_expression "(code *)PTR_memmove_0005b5a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2,pbVar13,iVar4 + 1)" ( identifier , identifier , (binary_expression "iVar4 + 1" identifier + number_literal) ))) ;) (if_statement "if (param_2 == 1) goto LAB_000274d0;" if (parenthesized_expression "(param_2 == 1)" ( (binary_expression "param_2 == 1" identifier == number_literal) )) (goto_statement "goto LAB_000274d0;" goto statement_identifier ;)) })) (expression_statement "local_54 = pbVar2;" (assignment_expression "local_54 = pbVar2" identifier = identifier) ;) (expression_statement "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);" (assignment_expression "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2)" identifier = (call_expression "(*(code *)PTR_strlen_0005b4e4)(pbVar2)" (parenthesized_expression "(*(code *)PTR_strlen_0005b4e4)" ( (pointer_expression "*(code *)PTR_strlen_0005b4e4" * (cast_expression "(code *)PTR_strlen_0005b4e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2)" ( identifier )))) ;) (expression_statement "puVar8 = PTR_is_basic_table_0005b300;" (assignment_expression "puVar8 = PTR_is_basic_table_0005b300" identifier = identifier) ;) (expression_statement "pbVar13 = pbVar2 + iVar4;" (assignment_expression "pbVar13 = pbVar2 + iVar4" identifier = (binary_expression "pbVar2 + iVar4" identifier + identifier)) ;) (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 "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (if_statement "if (pbVar2 < pbVar13) {\n    cVar15 = '\0';\n    param_2 = 1;\n    pbVar10 = pbVar2;\nLAB_0002742c:\n    do {\n      local_58 = 0;\n      if (bVar1) {\nLAB_0002752c:\n        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);\n        pbVar12 = local_54;\n        if (local_50 == -1) {\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }\n        else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar10;\n        local_4c = '\x01';\n        pbVar10 = local_54 + 1;\n        pbVar12 = local_54;\n      }\n      local_58 = 1;\n      if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (local_4c != '\0') {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }\n      local_54 = pbVar10;\n    } while (pbVar10 < pbVar13);\n    local_58 = 0;\n    local_54 = pbVar10;\n    if (cVar15 == '\x02') {\n      *local_6c = 0;\n    }\n  }" if (parenthesized_expression "(pbVar2 < pbVar13)" ( (binary_expression "pbVar2 < pbVar13" identifier < identifier) )) (compound_statement "{\n    cVar15 = '\0';\n    param_2 = 1;\n    pbVar10 = pbVar2;\nLAB_0002742c:\n    do {\n      local_58 = 0;\n      if (bVar1) {\nLAB_0002752c:\n        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);\n        pbVar12 = local_54;\n        if (local_50 == -1) {\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }\n        else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar10;\n        local_4c = '\x01';\n        pbVar10 = local_54 + 1;\n        pbVar12 = local_54;\n      }\n      local_58 = 1;\n      if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (local_4c != '\0') {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }\n      local_54 = pbVar10;\n    } while (pbVar10 < pbVar13);\n    local_58 = 0;\n    local_54 = pbVar10;\n    if (cVar15 == '\x02') {\n      *local_6c = 0;\n    }\n  }" { (expression_statement "cVar15 = '\0';" (assignment_expression "cVar15 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "param_2 = 1;" (assignment_expression "param_2 = 1" identifier = number_literal) ;) (expression_statement "pbVar10 = pbVar2;" (assignment_expression "pbVar10 = pbVar2" identifier = identifier) ;) (labeled_statement "LAB_0002742c:\n    do {\n      local_58 = 0;\n      if (bVar1) {\nLAB_0002752c:\n        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);\n        pbVar12 = local_54;\n        if (local_50 == -1) {\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }\n        else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar10;\n        local_4c = '\x01';\n        pbVar10 = local_54 + 1;\n        pbVar12 = local_54;\n      }\n      local_58 = 1;\n      if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (local_4c != '\0') {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }\n      local_54 = pbVar10;\n    } while (pbVar10 < pbVar13);" statement_identifier : (do_statement "do {\n      local_58 = 0;\n      if (bVar1) {\nLAB_0002752c:\n        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);\n        pbVar12 = local_54;\n        if (local_50 == -1) {\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }\n        else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar10;\n        local_4c = '\x01';\n        pbVar10 = local_54 + 1;\n        pbVar12 = local_54;\n      }\n      local_58 = 1;\n      if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (local_4c != '\0') {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }\n      local_54 = pbVar10;\n    } while (pbVar10 < pbVar13);" do (compound_statement "{\n      local_58 = 0;\n      if (bVar1) {\nLAB_0002752c:\n        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);\n        pbVar12 = local_54;\n        if (local_50 == -1) {\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }\n        else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar10;\n        local_4c = '\x01';\n        pbVar10 = local_54 + 1;\n        pbVar12 = local_54;\n      }\n      local_58 = 1;\n      if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (local_4c != '\0') {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }\n      local_54 = pbVar10;\n    }" { (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (if_statement "if (bVar1) {\nLAB_0002752c:\n        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);\n        pbVar12 = local_54;\n        if (local_50 == -1) {\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }\n        else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar10;\n        local_4c = '\x01';\n        pbVar10 = local_54 + 1;\n        pbVar12 = local_54;\n      }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\nLAB_0002752c:\n        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);\n        pbVar12 = local_54;\n        if (local_50 == -1) {\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }\n        else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }\n      }" { (labeled_statement "LAB_0002752c:\n        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);" statement_identifier : (expression_statement "local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);" (assignment_expression "local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60)" identifier = (call_expression "rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60)" identifier (argument_list "(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60)" ( identifier , identifier , (binary_expression "(int)pbVar13 - (int)pbVar10" (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar10" ( (type_descriptor "int" primitive_type) ) identifier)) , (pointer_expression "&local_60" & identifier) )))) ;)) (expression_statement "pbVar12 = local_54;" (assignment_expression "pbVar12 = local_54" identifier = identifier) ;) (if_statement "if (local_50 == -1) {\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }\n        else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }" if (parenthesized_expression "(local_50 == -1)" ( (binary_expression "local_50 == -1" identifier == number_literal) )) (compound_statement "{\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }" { (expression_statement "local_4c = '\0';" (assignment_expression "local_4c = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pbVar10 = local_54 + 1;" (assignment_expression "pbVar10 = local_54 + 1" identifier = (binary_expression "local_54 + 1" identifier + number_literal)) ;) (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;) }) (else_clause "else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }" else (if_statement "if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }" if (parenthesized_expression "(local_50 == -2)" ( (binary_expression "local_50 == -2" identifier == number_literal) )) (compound_statement "{\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }" { (expression_statement "local_4c = '\0';" (assignment_expression "local_4c = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_50 = (int)pbVar13 - (int)local_54;" (assignment_expression "local_50 = (int)pbVar13 - (int)local_54" identifier = (binary_expression "(int)pbVar13 - (int)local_54" (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pbVar10 = pbVar13;" (assignment_expression "pbVar10 = pbVar13" identifier = identifier) ;) }) (else_clause "else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }" else (compound_statement "{\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }" { (if_statement "if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\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) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }" { (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;) (if_statement "if (*local_54 != 0) goto LAB_0002790c;" if (parenthesized_expression "(*local_54 != 0)" ( (binary_expression "*local_54 != 0" (pointer_expression "*local_54" * identifier) != number_literal) )) (goto_statement "goto LAB_0002790c;" goto statement_identifier ;)) (if_statement "if (local_48[0] != 0) goto LAB_000278dc;" if (parenthesized_expression "(local_48[0] != 0)" ( (binary_expression "local_48[0] != 0" (subscript_expression "local_48[0]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_000278dc;" goto statement_identifier ;)) })) (expression_statement "local_4c = '\x01';" (assignment_expression "local_4c = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "pbVar10 = local_54 + local_50;" (assignment_expression "pbVar10 = local_54 + local_50" identifier = (binary_expression "local_54 + local_50" identifier + identifier)) ;) (expression_statement "iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);" (assignment_expression "iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60)" identifier = (call_expression "(*(code *)PTR_mbsinit_0005b588)(&local_60)" (parenthesized_expression "(*(code *)PTR_mbsinit_0005b588)" ( (pointer_expression "*(code *)PTR_mbsinit_0005b588" * (cast_expression "(code *)PTR_mbsinit_0005b588" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_60)" ( (pointer_expression "&local_60" & identifier) )))) ;) (if_statement "if (iVar4 != 0) {\n            bVar1 = false;\n          }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 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 *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar10;\n        local_4c = '\x01';\n        pbVar10 = local_54 + 1;\n        pbVar12 = local_54;\n      }" else (compound_statement "{\n        if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar10;\n        local_4c = '\x01';\n        pbVar10 = local_54 + 1;\n        pbVar12 = local_54;\n      }" { (if_statement "if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }" if (parenthesized_expression "((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0)" ( (binary_expression "(*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0" (parenthesized_expression "(*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1)" ( (binary_expression "*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1" (binary_expression "*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f)" (pointer_expression "*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4)" * (cast_expression "(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + (uint)(*pbVar10 >> 5) * 4)" ( (binary_expression "puVar8 + (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          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }" { (expression_statement "iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);" (assignment_expression "iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60)" identifier = (call_expression "(*(code *)PTR_mbsinit_0005b588)(&local_60)" (parenthesized_expression "(*(code *)PTR_mbsinit_0005b588)" ( (pointer_expression "*(code *)PTR_mbsinit_0005b588" * (cast_expression "(code *)PTR_mbsinit_0005b588" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_60)" ( (pointer_expression "&local_60" & identifier) )))) ;) (if_statement "if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n            bVar1 = true;\n            goto LAB_0002752c;\n          }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (goto_statement "goto LAB_0002752c;" goto statement_identifier ;) })) (goto_statement "goto LAB_00027930;" goto statement_identifier ;) })) (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;) (expression_statement "local_48[0] = (int)(char)*pbVar10;" (assignment_expression "local_48[0] = (int)(char)*pbVar10" (subscript_expression "local_48[0]" identifier [ number_literal ]) = (cast_expression "(int)(char)*pbVar10" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar10" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar10" * identifier)))) ;) (expression_statement "local_4c = '\x01';" (assignment_expression "local_4c = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "pbVar10 = local_54 + 1;" (assignment_expression "pbVar10 = local_54 + 1" identifier = (binary_expression "local_54 + 1" identifier + number_literal)) ;) (expression_statement "pbVar12 = local_54;" (assignment_expression "pbVar12 = local_54" identifier = identifier) ;) }))) (expression_statement "local_58 = 1;" (assignment_expression "local_58 = 1" identifier = number_literal) ;) (if_statement "if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (local_4c != '\0') {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }" if (parenthesized_expression "(cVar15 == '\0')" ( (binary_expression "cVar15 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        cVar15 = '\x01';\n        if (local_4c != '\0') {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }\n      }" { (expression_statement "cVar15 = '\x01';" (assignment_expression "cVar15 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (if_statement "if (local_4c != '\0') {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }" if (parenthesized_expression "(local_4c != '\0')" ( (binary_expression "local_4c != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }" { (expression_statement "iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);" (assignment_expression "iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0])" identifier = (call_expression "(*(code *)PTR_iswspace_0005b4fc)(local_48[0])" (parenthesized_expression "(*(code *)PTR_iswspace_0005b4fc)" ( (pointer_expression "*(code *)PTR_iswspace_0005b4fc" * (cast_expression "(code *)PTR_iswspace_0005b4fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_48[0])" ( (subscript_expression "local_48[0]" identifier [ number_literal ]) )))) ;) (expression_statement "cVar15 = iVar4 == 0;" (assignment_expression "cVar15 = iVar4 == 0" identifier = (binary_expression "iVar4 == 0" identifier == number_literal)) ;) })) }) (else_clause "else if (cVar15 == '\x01') {\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }" else (if_statement "if (cVar15 == '\x01') {\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }" if (parenthesized_expression "(cVar15 == '\x01')" ( (binary_expression "cVar15 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }" { (if_statement "if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }" if (parenthesized_expression "((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0))" ( (binary_expression "(local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)" (parenthesized_expression "(local_4c != '\0')" ( (binary_expression "local_4c != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)" ( (comma_expression "iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0" (assignment_expression "iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0])" identifier = (call_expression "(*(code *)PTR_iswspace_0005b4fc)(local_48[0])" (parenthesized_expression "(*(code *)PTR_iswspace_0005b4fc)" ( (pointer_expression "*(code *)PTR_iswspace_0005b4fc" * (cast_expression "(code *)PTR_iswspace_0005b4fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_48[0])" ( (subscript_expression "local_48[0]" identifier [ number_literal ]) )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }" { (expression_statement "cVar15 = '\x02';" (assignment_expression "cVar15 = '\x02'" identifier = (char_literal "'\x02'" ' escape_sequence ')) ;) (expression_statement "local_6c = pbVar12;" (assignment_expression "local_6c = pbVar12" identifier = identifier) ;) })) }) (else_clause "else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }" else (compound_statement "{\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }" { (if_statement "if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }" if (parenthesized_expression "((cVar15 == '\x02') && (local_4c != '\0'))" ( (binary_expression "(cVar15 == '\x02') && (local_4c != '\0')" (parenthesized_expression "(cVar15 == '\x02')" ( (binary_expression "cVar15 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) && (parenthesized_expression "(local_4c != '\0')" ( (binary_expression "local_4c != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }" { (expression_statement "iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);" (assignment_expression "iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0])" identifier = (call_expression "(*(code *)PTR_iswspace_0005b4fc)(local_48[0])" (parenthesized_expression "(*(code *)PTR_iswspace_0005b4fc)" ( (pointer_expression "*(code *)PTR_iswspace_0005b4fc" * (cast_expression "(code *)PTR_iswspace_0005b4fc" ( (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 (iVar4 == 0) {\n            cVar15 = '\x01';\n          }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n            cVar15 = '\x01';\n          }" { (expression_statement "cVar15 = '\x01';" (assignment_expression "cVar15 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) })) (expression_statement "local_54 = pbVar10;" (assignment_expression "local_54 = pbVar10" identifier = identifier) ;) (if_statement "if (pbVar13 <= pbVar10) break;" if (parenthesized_expression "(pbVar13 <= pbVar10)" ( (binary_expression "pbVar13 <= pbVar10" identifier <= identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_0002742c;" goto statement_identifier ;) })) (expression_statement "cVar15 = '\x01';" (assignment_expression "cVar15 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) }))))) (expression_statement "local_54 = pbVar10;" (assignment_expression "local_54 = pbVar10" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar10 < pbVar13)" ( (binary_expression "pbVar10 < pbVar13" identifier < identifier) )) ;)) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_54 = pbVar10;" (assignment_expression "local_54 = pbVar10" identifier = identifier) ;) (if_statement "if (cVar15 == '\x02') {\n      *local_6c = 0;\n    }" if (parenthesized_expression "(cVar15 == '\x02')" ( (binary_expression "cVar15 == '\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) ;) })) })) (goto_statement "goto LAB_000274d0;" goto statement_identifier ;) (labeled_statement "LAB_0002790c:\n  local_50 = 1;" statement_identifier : (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;)) (expression_statement "(*(code *)PTR___assert_fail_0005b410)\n            (PTR_LAB_0005b128 + 0x7cf0,PTR_DAT_0005b2cc + -0x7c90,0xa9,PTR_DAT_0005b2cc + -0x7c80);" (call_expression "(*(code *)PTR___assert_fail_0005b410)\n            (PTR_LAB_0005b128 + 0x7cf0,PTR_DAT_0005b2cc + -0x7c90,0xa9,PTR_DAT_0005b2cc + -0x7c80)" (parenthesized_expression "(*(code *)PTR___assert_fail_0005b410)" ( (pointer_expression "*(code *)PTR___assert_fail_0005b410" * (cast_expression "(code *)PTR___assert_fail_0005b410" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_0005b128 + 0x7cf0,PTR_DAT_0005b2cc + -0x7c90,0xa9,PTR_DAT_0005b2cc + -0x7c80)" ( (binary_expression "PTR_LAB_0005b128 + 0x7cf0" identifier + number_literal) , (binary_expression "PTR_DAT_0005b2cc + -0x7c90" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0005b2cc + -0x7c80" identifier + number_literal) ))) ;) (labeled_statement "LAB_00027930:\n  puVar9 = PTR_DAT_0005b2cc + -0x7c90;" statement_identifier : (expression_statement "puVar9 = PTR_DAT_0005b2cc + -0x7c90;" (assignment_expression "puVar9 = PTR_DAT_0005b2cc + -0x7c90" identifier = (binary_expression "PTR_DAT_0005b2cc + -0x7c90" identifier + number_literal)) ;)) (expression_statement "puVar8 = PTR_LAB_0005b128 + 0x7cd8;" (assignment_expression "puVar8 = PTR_LAB_0005b128 + 0x7cd8" identifier = (binary_expression "PTR_LAB_0005b128 + 0x7cd8" identifier + number_literal)) ;) (expression_statement "puVar14 = PTR___assert_fail_0005b410;" (assignment_expression "puVar14 = PTR___assert_fail_0005b410" identifier = identifier) ;) (expression_statement "(*(code *)PTR___assert_fail_0005b410)(puVar8);" (call_expression "(*(code *)PTR___assert_fail_0005b410)(puVar8)" (parenthesized_expression "(*(code *)PTR___assert_fail_0005b410)" ( (pointer_expression "*(code *)PTR___assert_fail_0005b410" * (cast_expression "(code *)PTR___assert_fail_0005b410" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))) ;) (if_statement "if (puVar9 == (undefined *)0x0) {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }\n  else {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }" if (parenthesized_expression "(puVar9 == (undefined *)0x0)" ( (binary_expression "puVar9 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(puVar14 + 0x33ae8))();\n  }" { (expression_statement "(**(code **)(puVar14 + 0x33ae8))();" (call_expression "(**(code **)(puVar14 + 0x33ae8))()" (parenthesized_expression "(**(code **)(puVar14 + 0x33ae8))" ( (pointer_expression "**(code **)(puVar14 + 0x33ae8)" * (pointer_expression "*(code **)(puVar14 + 0x33ae8)" * (cast_expression "(code **)(puVar14 + 0x33ae8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x33ae8)" ( (binary_expression "puVar14 + 0x33ae8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }" else (compound_statement "{\n    (**(code **)(puVar14 + 0x33ae8))();\n  }" { (expression_statement "(**(code **)(puVar14 + 0x33ae8))();" (call_expression "(**(code **)(puVar14 + 0x33ae8))()" (parenthesized_expression "(**(code **)(puVar14 + 0x33ae8))" ( (pointer_expression "**(code **)(puVar14 + 0x33ae8)" * (pointer_expression "*(code **)(puVar14 + 0x33ae8)" * (cast_expression "(code **)(puVar14 + 0x33ae8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x33ae8)" ( (binary_expression "puVar14 + 0x33ae8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) (expression_statement "uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c4c,5);" (assignment_expression "uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c4c,5)" identifier = (call_expression "(**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c4c,5)" (parenthesized_expression "(**(code **)(puVar14 + 0x33c08))" ( (pointer_expression "**(code **)(puVar14 + 0x33c08)" * (pointer_expression "*(code **)(puVar14 + 0x33c08)" * (cast_expression "(code **)(puVar14 + 0x33c08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x33c08)" ( (binary_expression "puVar14 + 0x33c08" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar14 + 0x3396c) + -0x7c4c,5)" ( number_literal , (binary_expression "*(int *)(puVar14 + 0x3396c) + -0x7c4c" (pointer_expression "*(int *)(puVar14 + 0x3396c)" * (cast_expression "(int *)(puVar14 + 0x3396c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x3396c)" ( (binary_expression "puVar14 + 0x3396c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar14 + 0x33ae8))(puVar8,1,*(undefined4 *)(puVar14 + 0x33a10),uVar7,0x7e2);" (call_expression "(**(code **)(puVar14 + 0x33ae8))(puVar8,1,*(undefined4 *)(puVar14 + 0x33a10),uVar7,0x7e2)" (parenthesized_expression "(**(code **)(puVar14 + 0x33ae8))" ( (pointer_expression "**(code **)(puVar14 + 0x33ae8)" * (pointer_expression "*(code **)(puVar14 + 0x33ae8)" * (cast_expression "(code **)(puVar14 + 0x33ae8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x33ae8)" ( (binary_expression "puVar14 + 0x33ae8" identifier + number_literal) ))))) )) (argument_list "(puVar8,1,*(undefined4 *)(puVar14 + 0x33a10),uVar7,0x7e2)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(puVar14 + 0x33a10)" * (cast_expression "(undefined4 *)(puVar14 + 0x33a10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x33a10)" ( (binary_expression "puVar14 + 0x33a10" identifier + number_literal) )))) , identifier , number_literal ))) ;) (expression_statement "uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c48,5);" (assignment_expression "uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c48,5)" identifier = (call_expression "(**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c48,5)" (parenthesized_expression "(**(code **)(puVar14 + 0x33c08))" ( (pointer_expression "**(code **)(puVar14 + 0x33c08)" * (pointer_expression "*(code **)(puVar14 + 0x33c08)" * (cast_expression "(code **)(puVar14 + 0x33c08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x33c08)" ( (binary_expression "puVar14 + 0x33c08" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar14 + 0x3396c) + -0x7c48,5)" ( number_literal , (binary_expression "*(int *)(puVar14 + 0x3396c) + -0x7c48" (pointer_expression "*(int *)(puVar14 + 0x3396c)" * (cast_expression "(int *)(puVar14 + 0x3396c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x3396c)" ( (binary_expression "puVar14 + 0x3396c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar14 + 0x33c84))(uVar7,puVar8);" (call_expression "(**(code **)(puVar14 + 0x33c84))(uVar7,puVar8)" (parenthesized_expression "(**(code **)(puVar14 + 0x33c84))" ( (pointer_expression "**(code **)(puVar14 + 0x33c84)" * (pointer_expression "*(code **)(puVar14 + 0x33c84)" * (cast_expression "(code **)(puVar14 + 0x33c84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x33c84)" ( (binary_expression "puVar14 + 0x33c84" identifier + number_literal) ))))) )) (argument_list "(uVar7,puVar8)" ( identifier , identifier ))) ;) (if_statement "if (uStack_74 < 10) {\n                    /* WARNING: Could not recover jumptable at 0x00027a54. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pbVar2 = (byte *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))();\n    return pbVar2;\n  }" if (parenthesized_expression "(uStack_74 < 10)" ( (binary_expression "uStack_74 < 10" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00027a54. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pbVar2 = (byte *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))();\n    return pbVar2;\n  }" { comment comment (expression_statement "pbVar2 = (byte *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))();" (assignment_expression "pbVar2 = (byte *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))()" identifier = (cast_expression "(byte *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))()" (parenthesized_expression "(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))" ( (pointer_expression "*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790)" * (cast_expression "(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790)" ( (binary_expression "puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790" (binary_expression "puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4)" * (cast_expression "(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4)" ( (binary_expression "*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4" (binary_expression "*(int *)(puVar14 + 0x3396c) + -0x7950" (pointer_expression "*(int *)(puVar14 + 0x3396c)" * (cast_expression "(int *)(puVar14 + 0x3396c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x3396c)" ( (binary_expression "puVar14 + 0x3396c" identifier + number_literal) )))) + number_literal) + (binary_expression "uStack_74 * 4" identifier * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pbVar2;" return identifier ;) })) (expression_statement "uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7a3c,5);" (assignment_expression "uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7a3c,5)" identifier = (call_expression "(**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7a3c,5)" (parenthesized_expression "(**(code **)(puVar14 + 0x33c08))" ( (pointer_expression "**(code **)(puVar14 + 0x33c08)" * (pointer_expression "*(code **)(puVar14 + 0x33c08)" * (cast_expression "(code **)(puVar14 + 0x33c08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x33c08)" ( (binary_expression "puVar14 + 0x33c08" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar14 + 0x3396c) + -0x7a3c,5)" ( number_literal , (binary_expression "*(int *)(puVar14 + 0x3396c) + -0x7a3c" (pointer_expression "*(int *)(puVar14 + 0x3396c)" * (cast_expression "(int *)(puVar14 + 0x3396c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x3396c)" ( (binary_expression "puVar14 + 0x3396c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "pbVar2 = (byte *)(**(code **)(puVar14 + 0x33ae8))\n                             (puVar8,1,uVar7,__gp_1,_DAT_000630f4,uRam000630f8,uRam000630fc,\n                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110);" (assignment_expression "pbVar2 = (byte *)(**(code **)(puVar14 + 0x33ae8))\n                             (puVar8,1,uVar7,__gp_1,_DAT_000630f4,uRam000630f8,uRam000630fc,\n                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110)" identifier = (cast_expression "(byte *)(**(code **)(puVar14 + 0x33ae8))\n                             (puVar8,1,uVar7,__gp_1,_DAT_000630f4,uRam000630f8,uRam000630fc,\n                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar14 + 0x33ae8))\n                             (puVar8,1,uVar7,__gp_1,_DAT_000630f4,uRam000630f8,uRam000630fc,\n                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110)" (parenthesized_expression "(**(code **)(puVar14 + 0x33ae8))" ( (pointer_expression "**(code **)(puVar14 + 0x33ae8)" * (pointer_expression "*(code **)(puVar14 + 0x33ae8)" * (cast_expression "(code **)(puVar14 + 0x33ae8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x33ae8)" ( (binary_expression "puVar14 + 0x33ae8" identifier + number_literal) ))))) )) (argument_list "(puVar8,1,uVar7,__gp_1,_DAT_000630f4,uRam000630f8,uRam000630fc,\n                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110)" ( identifier , number_literal , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier ))))) ;) (return_statement "return pbVar2;" return identifier ;) (labeled_statement "LAB_000278dc:\n  local_50 = 1;" statement_identifier : (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;)) (expression_statement "FUN_000272f0();" (call_expression "FUN_000272f0()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_00027638:\n  iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar11);" statement_identifier : (expression_statement "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar11);" (assignment_expression "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar11)" identifier = (call_expression "(*(code *)PTR_strlen_0005b4e4)(pbVar11)" (parenthesized_expression "(*(code *)PTR_strlen_0005b4e4)" ( (pointer_expression "*(code *)PTR_strlen_0005b4e4" * (cast_expression "(code *)PTR_strlen_0005b4e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar11)" ( identifier )))) ;)) (expression_statement "(*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar11,iVar4 + 1);" (call_expression "(*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar11,iVar4 + 1)" (parenthesized_expression "(*(code *)PTR_memmove_0005b5a4)" ( (pointer_expression "*(code *)PTR_memmove_0005b5a4" * (cast_expression "(code *)PTR_memmove_0005b5a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2,pbVar11,iVar4 + 1)" ( identifier , identifier , (binary_expression "iVar4 + 1" identifier + number_literal) ))) ;) (if_statement "if (param_2 != 1) {\nLAB_00027668:\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    pbVar11 = pbVar2 + iVar4 + -1;\n    if (pbVar2 <= pbVar11) {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n      iVar4 = *piVar5;\n      do {\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar2 <= pbVar11);\n    }\n  }" if (parenthesized_expression "(param_2 != 1)" ( (binary_expression "param_2 != 1" identifier != number_literal) )) (compound_statement "{\nLAB_00027668:\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    pbVar11 = pbVar2 + iVar4 + -1;\n    if (pbVar2 <= pbVar11) {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n      iVar4 = *piVar5;\n      do {\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar2 <= pbVar11);\n    }\n  }" { (labeled_statement "LAB_00027668:\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);" statement_identifier : (expression_statement "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);" (assignment_expression "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2)" identifier = (call_expression "(*(code *)PTR_strlen_0005b4e4)(pbVar2)" (parenthesized_expression "(*(code *)PTR_strlen_0005b4e4)" ( (pointer_expression "*(code *)PTR_strlen_0005b4e4" * (cast_expression "(code *)PTR_strlen_0005b4e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2)" ( identifier )))) ;)) (expression_statement "pbVar11 = pbVar2 + iVar4 + -1;" (assignment_expression "pbVar11 = pbVar2 + iVar4 + -1" identifier = (binary_expression "pbVar2 + iVar4 + -1" (binary_expression "pbVar2 + iVar4" identifier + identifier) + number_literal)) ;) (if_statement "if (pbVar2 <= pbVar11) {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n      iVar4 = *piVar5;\n      do {\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar2 <= pbVar11);\n    }" if (parenthesized_expression "(pbVar2 <= pbVar11)" ( (binary_expression "pbVar2 <= pbVar11" identifier <= identifier) )) (compound_statement "{\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n      iVar4 = *piVar5;\n      do {\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar2 <= pbVar11);\n    }" { (expression_statement "piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_0005b40c)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0005b40c)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0005b40c)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0005b40c" * (cast_expression "(code *)PTR___ctype_b_loc_0005b40c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar4 = *piVar5;" (assignment_expression "iVar4 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (do_statement "do {\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar2 <= pbVar11);" do (compound_statement "{\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      }" { (if_statement "if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;" if (parenthesized_expression "((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0)" ( (binary_expression "(*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20)" ( (binary_expression "*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20" (pointer_expression "*(ushort *)(iVar4 + (uint)*pbVar11 * 2)" * (cast_expression "(ushort *)(iVar4 + (uint)*pbVar11 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + (uint)*pbVar11 * 2)" ( (binary_expression "iVar4 + (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 "(pbVar2 <= pbVar11)" ( (binary_expression "pbVar2 <= pbVar11" identifier <= identifier) )) ;) })) })) (labeled_statement "LAB_000274d0:\n  if (local_2c == *(int *)puVar14) {\n    return pbVar2;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar14) {\n    return pbVar2;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar14)" ( (binary_expression "local_2c == *(int *)puVar14" identifier == (pointer_expression "*(int *)puVar14" * (cast_expression "(int *)puVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return pbVar2;\n  }" { (return_statement "return pbVar2;" return identifier ;) }))) (expression_statement "(*(code *)PTR___stack_chk_fail_0005b564)();" (call_expression "(*(code *)PTR___stack_chk_fail_0005b564)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0005b564)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0005b564" * (cast_expression "(code *)PTR___stack_chk_fail_0005b564" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_00027900:\n                    /* WARNING: Subroutine does not return */\n  xalloc_die();" statement_identifier : comment (expression_statement "xalloc_die();" (call_expression "xalloc_die()" identifier (argument_list "()" ( ))) ;)) })))
(translation_unit "/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nchar * trim2(char *s,int how)\n\n{\n  int iVar1;\n  byte *pbVar2;\n  uint uVar3;\n  int iVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  wchar_t wVar8;\n  mbiter_multi *iter;\n  undefined *puVar9;\n  undefined *puVar10;\n  byte *s_00;\n  byte *pbVar11;\n  mbstate_t *ps;\n  wchar_t *pwVar12;\n  byte *pbVar13;\n  undefined *puVar14;\n  char cVar15;\n  uint uStack_74;\n  char *local_6c;\n  mbi_iterator_t i;\n  \n  puVar14 = PTR___stack_chk_guard_0005b58c;\n  iVar1 = *(int *)PTR___stack_chk_guard_0005b58c;\n  pbVar2 = (byte *)(*(code *)PTR_strdup_0005b598)();\n  if (pbVar2 == (byte *)0x0) goto LAB_00027900;\n  uVar3 = (*(code *)PTR___ctype_get_mb_cur_max_0005b534)();\n  pbVar11 = pbVar2;\n  if (uVar3 < 2) {\n    if (how != 0) {\n      uVar3 = (uint)(char)*pbVar2;\n      if (uVar3 != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }\n      goto LAB_00027638;\n    }\n    goto LAB_00027668;\n  }\n  ps = &i.state;\n  if (how != 0) {\n    i.cur.ptr = (char *)pbVar2;\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    puVar9 = PTR_is_basic_table_0005b300;\n    i.limit = (char *)(pbVar2 + iVar4);\n    i.state.__count = 0;\n    i.state.__value.__wch = 0;\n    i.in_shift = false;\n    i.next_done = false;\n    pbVar13 = pbVar2;\n    if (pbVar2 < i.limit) {\n      pwVar12 = &i.cur.wc;\n      do {\n        pcVar7 = i.limit;\n        i.next_done = false;\n        if (i.in_shift == false) {\n          if ((*(uint *)(puVar9 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n            if (iVar4 != 0) {\n              i.in_shift = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          i.cur.bytes = 1;\n          wVar8 = (wchar_t)(char)*pbVar13;\n          i.cur.wc_valid = true;\n          pbVar13 = (byte *)i.cur.ptr;\n          i.cur.wc = wVar8;\n        }\n        else {\nLAB_000277cc:\n          iter = (mbiter_multi *)pwVar12;\n          i.cur.bytes = rpl_mbrtowc(pwVar12,(char *)pbVar13,(int)pcVar7 - (int)pbVar13,ps);\n          wVar8 = i.cur.wc;\n          pbVar13 = (byte *)i.cur.ptr;\n          if (i.cur.bytes == 0xffffffff) {\n            i.cur.wc_valid = false;\n            i.cur.bytes = 1;\n            i.next_done = true;\n            break;\n          }\n          if (i.cur.bytes == 0xfffffffe) {\n            i.cur.wc_valid = false;\n            i.next_done = true;\n            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n            break;\n          }\n          if (i.cur.bytes == 0) {\n            i.cur.bytes = 1;\n            if (*i.cur.ptr != '\0') goto LAB_0002790c;\n            if (i.cur.wc != 0) goto LAB_000278dc;\n          }\n          i.cur.wc_valid = true;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = false;\n          }\n        }\n        i.next_done = true;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(wVar8);\n        if (iVar4 == 0) break;\n        i.next_done = false;\n        pbVar13 = pbVar13 + i.cur.bytes;\n        i.cur.ptr = (char *)pbVar13;\n      } while (pbVar13 < i.limit);\n    }\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar13);\n    (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar13,iVar4 + 1);\n    if (how == 1) goto LAB_000274d0;\n  }\n  i.cur.ptr = (char *)pbVar2;\n  iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n  puVar9 = PTR_is_basic_table_0005b300;\n  pbVar13 = pbVar2 + iVar4;\n  i.state.__count = 0;\n  i.state.__value.__wch = 0;\n  i.in_shift = false;\n  i.next_done = false;\n  i.limit = (char *)pbVar13;\n  if (pbVar2 < pbVar13) {\n    cVar15 = '\0';\n    pwVar12 = &i.cur.wc;\n    how = 1;\n    s_00 = pbVar2;\nLAB_0002742c:\n    do {\n      i.next_done = false;\n      if (i.in_shift == false) {\n        if ((*(uint *)(puVar9 + (uint)(*s_00 >> 5) * 4) >> (*s_00 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        i.cur.bytes = 1;\n        i.cur.wc = (wchar_t)(char)*s_00;\n        i.cur.wc_valid = true;\n        s_00 = (byte *)(i.cur.ptr + 1);\n        pcVar7 = i.cur.ptr;\n      }\n      else {\nLAB_0002752c:\n        iter = (mbiter_multi *)pwVar12;\n        i.cur.bytes = rpl_mbrtowc(pwVar12,(char *)s_00,(int)pbVar13 - (int)s_00,ps);\n        pcVar7 = i.cur.ptr;\n        if (i.cur.bytes == 0xffffffff) {\n          i.cur.wc_valid = false;\n          s_00 = (byte *)(i.cur.ptr + 1);\n          i.cur.bytes = 1;\n        }\n        else if (i.cur.bytes == 0xfffffffe) {\n          i.cur.wc_valid = false;\n          i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n          s_00 = (byte *)i.limit;\n        }\n        else {\n          if (i.cur.bytes == 0) {\n            i.cur.bytes = 1;\n            if (*i.cur.ptr != '\0') goto LAB_0002790c;\n            if (i.cur.wc != 0) goto LAB_000278dc;\n          }\n          i.cur.wc_valid = true;\n          s_00 = (byte *)(i.cur.ptr + i.cur.bytes);\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = false;\n          }\n        }\n      }\n      pbVar13 = (byte *)i.limit;\n      i.next_done = true;\n      if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (i.cur.wc_valid != false) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((i.cur.wc_valid != false) &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pcVar7;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (i.cur.wc_valid != false)) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          i.cur.ptr = (char *)s_00;\n          if (pbVar13 <= s_00) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }\n      i.cur.ptr = (char *)s_00;\n    } while (s_00 < pbVar13);\n    i.next_done = false;\n    i.cur.ptr = (char *)s_00;\n    if (cVar15 == '\x02') {\n      *local_6c = '\0';\n    }\n  }\n  goto LAB_000274d0;\nLAB_0002790c:\n  i.cur.bytes = 1;\n  (*(code *)PTR___assert_fail_0005b410)\n            (PTR_LAB_0005b128 + 0x7cf0,PTR_DAT_0005b2cc + -0x7c90,0xa9,PTR_DAT_0005b2cc + -0x7c80);\nLAB_00027930:\n  puVar10 = PTR_DAT_0005b2cc + -0x7c90;\n  puVar9 = PTR_LAB_0005b128 + 0x7cd8;\n  puVar14 = PTR___assert_fail_0005b410;\n  (*(code *)PTR___assert_fail_0005b410)(puVar9);\n  if (puVar10 == (undefined *)0x0) {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }\n  else {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }\n  uVar6 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c4c,5);\n  (**(code **)(puVar14 + 0x33ae8))(puVar9,1,*(undefined4 *)(puVar14 + 0x33a10),uVar6,0x7e2);\n  uVar6 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c48,5);\n  (**(code **)(puVar14 + 0x33c84))(uVar6,puVar9);\n  if (uStack_74 < 10) {\n                    /* WARNING: Could not recover jumptable at 0x00027a54. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pcVar7 = (char *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))();\n    return pcVar7;\n  }\n  uVar6 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7a3c,5);\n  pcVar7 = (char *)(**(code **)(puVar14 + 0x33ae8))\n                             (puVar9,1,uVar6,__gp,_DAT_000630f4,uRam000630f8,uRam000630fc,\n                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110);\n  return pcVar7;\nLAB_000278dc:\n  i.cur.bytes = 1;\n  mbiter_multi_next(iter);\nLAB_00027638:\n  iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar11);\n  (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar11,iVar4 + 1);\n  if (how != 1) {\nLAB_00027668:\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    pbVar11 = pbVar2 + iVar4 + -1;\n    if (pbVar2 <= pbVar11) {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n      iVar4 = *piVar5;\n      do {\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar2 <= pbVar11);\n    }\n  }\nLAB_000274d0:\n  if (iVar1 == *(int *)puVar14) {\n    return (char *)pbVar2;\n  }\n  (*(code *)PTR___stack_chk_fail_0005b564)();\nLAB_00027900:\n                    /* WARNING: Subroutine does not return */\n  xalloc_die();\n}\n\n" comment (function_definition "char * trim2(char *s,int how)\n\n{\n  int iVar1;\n  byte *pbVar2;\n  uint uVar3;\n  int iVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  wchar_t wVar8;\n  mbiter_multi *iter;\n  undefined *puVar9;\n  undefined *puVar10;\n  byte *s_00;\n  byte *pbVar11;\n  mbstate_t *ps;\n  wchar_t *pwVar12;\n  byte *pbVar13;\n  undefined *puVar14;\n  char cVar15;\n  uint uStack_74;\n  char *local_6c;\n  mbi_iterator_t i;\n  \n  puVar14 = PTR___stack_chk_guard_0005b58c;\n  iVar1 = *(int *)PTR___stack_chk_guard_0005b58c;\n  pbVar2 = (byte *)(*(code *)PTR_strdup_0005b598)();\n  if (pbVar2 == (byte *)0x0) goto LAB_00027900;\n  uVar3 = (*(code *)PTR___ctype_get_mb_cur_max_0005b534)();\n  pbVar11 = pbVar2;\n  if (uVar3 < 2) {\n    if (how != 0) {\n      uVar3 = (uint)(char)*pbVar2;\n      if (uVar3 != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }\n      goto LAB_00027638;\n    }\n    goto LAB_00027668;\n  }\n  ps = &i.state;\n  if (how != 0) {\n    i.cur.ptr = (char *)pbVar2;\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    puVar9 = PTR_is_basic_table_0005b300;\n    i.limit = (char *)(pbVar2 + iVar4);\n    i.state.__count = 0;\n    i.state.__value.__wch = 0;\n    i.in_shift = false;\n    i.next_done = false;\n    pbVar13 = pbVar2;\n    if (pbVar2 < i.limit) {\n      pwVar12 = &i.cur.wc;\n      do {\n        pcVar7 = i.limit;\n        i.next_done = false;\n        if (i.in_shift == false) {\n          if ((*(uint *)(puVar9 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n            if (iVar4 != 0) {\n              i.in_shift = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          i.cur.bytes = 1;\n          wVar8 = (wchar_t)(char)*pbVar13;\n          i.cur.wc_valid = true;\n          pbVar13 = (byte *)i.cur.ptr;\n          i.cur.wc = wVar8;\n        }\n        else {\nLAB_000277cc:\n          iter = (mbiter_multi *)pwVar12;\n          i.cur.bytes = rpl_mbrtowc(pwVar12,(char *)pbVar13,(int)pcVar7 - (int)pbVar13,ps);\n          wVar8 = i.cur.wc;\n          pbVar13 = (byte *)i.cur.ptr;\n          if (i.cur.bytes == 0xffffffff) {\n            i.cur.wc_valid = false;\n            i.cur.bytes = 1;\n            i.next_done = true;\n            break;\n          }\n          if (i.cur.bytes == 0xfffffffe) {\n            i.cur.wc_valid = false;\n            i.next_done = true;\n            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n            break;\n          }\n          if (i.cur.bytes == 0) {\n            i.cur.bytes = 1;\n            if (*i.cur.ptr != '\0') goto LAB_0002790c;\n            if (i.cur.wc != 0) goto LAB_000278dc;\n          }\n          i.cur.wc_valid = true;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = false;\n          }\n        }\n        i.next_done = true;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(wVar8);\n        if (iVar4 == 0) break;\n        i.next_done = false;\n        pbVar13 = pbVar13 + i.cur.bytes;\n        i.cur.ptr = (char *)pbVar13;\n      } while (pbVar13 < i.limit);\n    }\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar13);\n    (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar13,iVar4 + 1);\n    if (how == 1) goto LAB_000274d0;\n  }\n  i.cur.ptr = (char *)pbVar2;\n  iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n  puVar9 = PTR_is_basic_table_0005b300;\n  pbVar13 = pbVar2 + iVar4;\n  i.state.__count = 0;\n  i.state.__value.__wch = 0;\n  i.in_shift = false;\n  i.next_done = false;\n  i.limit = (char *)pbVar13;\n  if (pbVar2 < pbVar13) {\n    cVar15 = '\0';\n    pwVar12 = &i.cur.wc;\n    how = 1;\n    s_00 = pbVar2;\nLAB_0002742c:\n    do {\n      i.next_done = false;\n      if (i.in_shift == false) {\n        if ((*(uint *)(puVar9 + (uint)(*s_00 >> 5) * 4) >> (*s_00 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        i.cur.bytes = 1;\n        i.cur.wc = (wchar_t)(char)*s_00;\n        i.cur.wc_valid = true;\n        s_00 = (byte *)(i.cur.ptr + 1);\n        pcVar7 = i.cur.ptr;\n      }\n      else {\nLAB_0002752c:\n        iter = (mbiter_multi *)pwVar12;\n        i.cur.bytes = rpl_mbrtowc(pwVar12,(char *)s_00,(int)pbVar13 - (int)s_00,ps);\n        pcVar7 = i.cur.ptr;\n        if (i.cur.bytes == 0xffffffff) {\n          i.cur.wc_valid = false;\n          s_00 = (byte *)(i.cur.ptr + 1);\n          i.cur.bytes = 1;\n        }\n        else if (i.cur.bytes == 0xfffffffe) {\n          i.cur.wc_valid = false;\n          i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n          s_00 = (byte *)i.limit;\n        }\n        else {\n          if (i.cur.bytes == 0) {\n            i.cur.bytes = 1;\n            if (*i.cur.ptr != '\0') goto LAB_0002790c;\n            if (i.cur.wc != 0) goto LAB_000278dc;\n          }\n          i.cur.wc_valid = true;\n          s_00 = (byte *)(i.cur.ptr + i.cur.bytes);\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = false;\n          }\n        }\n      }\n      pbVar13 = (byte *)i.limit;\n      i.next_done = true;\n      if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (i.cur.wc_valid != false) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((i.cur.wc_valid != false) &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pcVar7;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (i.cur.wc_valid != false)) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          i.cur.ptr = (char *)s_00;\n          if (pbVar13 <= s_00) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }\n      i.cur.ptr = (char *)s_00;\n    } while (s_00 < pbVar13);\n    i.next_done = false;\n    i.cur.ptr = (char *)s_00;\n    if (cVar15 == '\x02') {\n      *local_6c = '\0';\n    }\n  }\n  goto LAB_000274d0;\nLAB_0002790c:\n  i.cur.bytes = 1;\n  (*(code *)PTR___assert_fail_0005b410)\n            (PTR_LAB_0005b128 + 0x7cf0,PTR_DAT_0005b2cc + -0x7c90,0xa9,PTR_DAT_0005b2cc + -0x7c80);\nLAB_00027930:\n  puVar10 = PTR_DAT_0005b2cc + -0x7c90;\n  puVar9 = PTR_LAB_0005b128 + 0x7cd8;\n  puVar14 = PTR___assert_fail_0005b410;\n  (*(code *)PTR___assert_fail_0005b410)(puVar9);\n  if (puVar10 == (undefined *)0x0) {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }\n  else {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }\n  uVar6 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c4c,5);\n  (**(code **)(puVar14 + 0x33ae8))(puVar9,1,*(undefined4 *)(puVar14 + 0x33a10),uVar6,0x7e2);\n  uVar6 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c48,5);\n  (**(code **)(puVar14 + 0x33c84))(uVar6,puVar9);\n  if (uStack_74 < 10) {\n                    /* WARNING: Could not recover jumptable at 0x00027a54. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pcVar7 = (char *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))();\n    return pcVar7;\n  }\n  uVar6 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7a3c,5);\n  pcVar7 = (char *)(**(code **)(puVar14 + 0x33ae8))\n                             (puVar9,1,uVar6,__gp,_DAT_000630f4,uRam000630f8,uRam000630fc,\n                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110);\n  return pcVar7;\nLAB_000278dc:\n  i.cur.bytes = 1;\n  mbiter_multi_next(iter);\nLAB_00027638:\n  iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar11);\n  (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar11,iVar4 + 1);\n  if (how != 1) {\nLAB_00027668:\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    pbVar11 = pbVar2 + iVar4 + -1;\n    if (pbVar2 <= pbVar11) {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n      iVar4 = *piVar5;\n      do {\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar2 <= pbVar11);\n    }\n  }\nLAB_000274d0:\n  if (iVar1 == *(int *)puVar14) {\n    return (char *)pbVar2;\n  }\n  (*(code *)PTR___stack_chk_fail_0005b564)();\nLAB_00027900:\n                    /* WARNING: Subroutine does not return */\n  xalloc_die();\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  int iVar1;\n  byte *pbVar2;\n  uint uVar3;\n  int iVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  wchar_t wVar8;\n  mbiter_multi *iter;\n  undefined *puVar9;\n  undefined *puVar10;\n  byte *s_00;\n  byte *pbVar11;\n  mbstate_t *ps;\n  wchar_t *pwVar12;\n  byte *pbVar13;\n  undefined *puVar14;\n  char cVar15;\n  uint uStack_74;\n  char *local_6c;\n  mbi_iterator_t i;\n  \n  puVar14 = PTR___stack_chk_guard_0005b58c;\n  iVar1 = *(int *)PTR___stack_chk_guard_0005b58c;\n  pbVar2 = (byte *)(*(code *)PTR_strdup_0005b598)();\n  if (pbVar2 == (byte *)0x0) goto LAB_00027900;\n  uVar3 = (*(code *)PTR___ctype_get_mb_cur_max_0005b534)();\n  pbVar11 = pbVar2;\n  if (uVar3 < 2) {\n    if (how != 0) {\n      uVar3 = (uint)(char)*pbVar2;\n      if (uVar3 != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }\n      goto LAB_00027638;\n    }\n    goto LAB_00027668;\n  }\n  ps = &i.state;\n  if (how != 0) {\n    i.cur.ptr = (char *)pbVar2;\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    puVar9 = PTR_is_basic_table_0005b300;\n    i.limit = (char *)(pbVar2 + iVar4);\n    i.state.__count = 0;\n    i.state.__value.__wch = 0;\n    i.in_shift = false;\n    i.next_done = false;\n    pbVar13 = pbVar2;\n    if (pbVar2 < i.limit) {\n      pwVar12 = &i.cur.wc;\n      do {\n        pcVar7 = i.limit;\n        i.next_done = false;\n        if (i.in_shift == false) {\n          if ((*(uint *)(puVar9 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n            if (iVar4 != 0) {\n              i.in_shift = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          i.cur.bytes = 1;\n          wVar8 = (wchar_t)(char)*pbVar13;\n          i.cur.wc_valid = true;\n          pbVar13 = (byte *)i.cur.ptr;\n          i.cur.wc = wVar8;\n        }\n        else {\nLAB_000277cc:\n          iter = (mbiter_multi *)pwVar12;\n          i.cur.bytes = rpl_mbrtowc(pwVar12,(char *)pbVar13,(int)pcVar7 - (int)pbVar13,ps);\n          wVar8 = i.cur.wc;\n          pbVar13 = (byte *)i.cur.ptr;\n          if (i.cur.bytes == 0xffffffff) {\n            i.cur.wc_valid = false;\n            i.cur.bytes = 1;\n            i.next_done = true;\n            break;\n          }\n          if (i.cur.bytes == 0xfffffffe) {\n            i.cur.wc_valid = false;\n            i.next_done = true;\n            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n            break;\n          }\n          if (i.cur.bytes == 0) {\n            i.cur.bytes = 1;\n            if (*i.cur.ptr != '\0') goto LAB_0002790c;\n            if (i.cur.wc != 0) goto LAB_000278dc;\n          }\n          i.cur.wc_valid = true;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = false;\n          }\n        }\n        i.next_done = true;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(wVar8);\n        if (iVar4 == 0) break;\n        i.next_done = false;\n        pbVar13 = pbVar13 + i.cur.bytes;\n        i.cur.ptr = (char *)pbVar13;\n      } while (pbVar13 < i.limit);\n    }\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar13);\n    (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar13,iVar4 + 1);\n    if (how == 1) goto LAB_000274d0;\n  }\n  i.cur.ptr = (char *)pbVar2;\n  iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n  puVar9 = PTR_is_basic_table_0005b300;\n  pbVar13 = pbVar2 + iVar4;\n  i.state.__count = 0;\n  i.state.__value.__wch = 0;\n  i.in_shift = false;\n  i.next_done = false;\n  i.limit = (char *)pbVar13;\n  if (pbVar2 < pbVar13) {\n    cVar15 = '\0';\n    pwVar12 = &i.cur.wc;\n    how = 1;\n    s_00 = pbVar2;\nLAB_0002742c:\n    do {\n      i.next_done = false;\n      if (i.in_shift == false) {\n        if ((*(uint *)(puVar9 + (uint)(*s_00 >> 5) * 4) >> (*s_00 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        i.cur.bytes = 1;\n        i.cur.wc = (wchar_t)(char)*s_00;\n        i.cur.wc_valid = true;\n        s_00 = (byte *)(i.cur.ptr + 1);\n        pcVar7 = i.cur.ptr;\n      }\n      else {\nLAB_0002752c:\n        iter = (mbiter_multi *)pwVar12;\n        i.cur.bytes = rpl_mbrtowc(pwVar12,(char *)s_00,(int)pbVar13 - (int)s_00,ps);\n        pcVar7 = i.cur.ptr;\n        if (i.cur.bytes == 0xffffffff) {\n          i.cur.wc_valid = false;\n          s_00 = (byte *)(i.cur.ptr + 1);\n          i.cur.bytes = 1;\n        }\n        else if (i.cur.bytes == 0xfffffffe) {\n          i.cur.wc_valid = false;\n          i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n          s_00 = (byte *)i.limit;\n        }\n        else {\n          if (i.cur.bytes == 0) {\n            i.cur.bytes = 1;\n            if (*i.cur.ptr != '\0') goto LAB_0002790c;\n            if (i.cur.wc != 0) goto LAB_000278dc;\n          }\n          i.cur.wc_valid = true;\n          s_00 = (byte *)(i.cur.ptr + i.cur.bytes);\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = false;\n          }\n        }\n      }\n      pbVar13 = (byte *)i.limit;\n      i.next_done = true;\n      if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (i.cur.wc_valid != false) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((i.cur.wc_valid != false) &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pcVar7;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (i.cur.wc_valid != false)) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          i.cur.ptr = (char *)s_00;\n          if (pbVar13 <= s_00) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }\n      i.cur.ptr = (char *)s_00;\n    } while (s_00 < pbVar13);\n    i.next_done = false;\n    i.cur.ptr = (char *)s_00;\n    if (cVar15 == '\x02') {\n      *local_6c = '\0';\n    }\n  }\n  goto LAB_000274d0;\nLAB_0002790c:\n  i.cur.bytes = 1;\n  (*(code *)PTR___assert_fail_0005b410)\n            (PTR_LAB_0005b128 + 0x7cf0,PTR_DAT_0005b2cc + -0x7c90,0xa9,PTR_DAT_0005b2cc + -0x7c80);\nLAB_00027930:\n  puVar10 = PTR_DAT_0005b2cc + -0x7c90;\n  puVar9 = PTR_LAB_0005b128 + 0x7cd8;\n  puVar14 = PTR___assert_fail_0005b410;\n  (*(code *)PTR___assert_fail_0005b410)(puVar9);\n  if (puVar10 == (undefined *)0x0) {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }\n  else {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }\n  uVar6 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c4c,5);\n  (**(code **)(puVar14 + 0x33ae8))(puVar9,1,*(undefined4 *)(puVar14 + 0x33a10),uVar6,0x7e2);\n  uVar6 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c48,5);\n  (**(code **)(puVar14 + 0x33c84))(uVar6,puVar9);\n  if (uStack_74 < 10) {\n                    /* WARNING: Could not recover jumptable at 0x00027a54. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pcVar7 = (char *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))();\n    return pcVar7;\n  }\n  uVar6 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7a3c,5);\n  pcVar7 = (char *)(**(code **)(puVar14 + 0x33ae8))\n                             (puVar9,1,uVar6,__gp,_DAT_000630f4,uRam000630f8,uRam000630fc,\n                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110);\n  return pcVar7;\nLAB_000278dc:\n  i.cur.bytes = 1;\n  mbiter_multi_next(iter);\nLAB_00027638:\n  iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar11);\n  (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar11,iVar4 + 1);\n  if (how != 1) {\nLAB_00027668:\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    pbVar11 = pbVar2 + iVar4 + -1;\n    if (pbVar2 <= pbVar11) {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n      iVar4 = *piVar5;\n      do {\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar2 <= pbVar11);\n    }\n  }\nLAB_000274d0:\n  if (iVar1 == *(int *)puVar14) {\n    return (char *)pbVar2;\n  }\n  (*(code *)PTR___stack_chk_fail_0005b564)();\nLAB_00027900:\n                    /* WARNING: Subroutine does not return */\n  xalloc_die();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "wchar_t wVar8;" type_identifier identifier ;) (declaration "mbiter_multi *iter;" type_identifier (pointer_declarator "*iter" * identifier) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "byte *s_00;" type_identifier (pointer_declarator "*s_00" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "mbstate_t *ps;" type_identifier (pointer_declarator "*ps" * identifier) ;) (declaration "wchar_t *pwVar12;" type_identifier (pointer_declarator "*pwVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "char cVar15;" primitive_type 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 "puVar14 = PTR___stack_chk_guard_0005b58c;" (assignment_expression "puVar14 = PTR___stack_chk_guard_0005b58c" identifier = identifier) ;) (expression_statement "iVar1 = *(int *)PTR___stack_chk_guard_0005b58c;" (assignment_expression "iVar1 = *(int *)PTR___stack_chk_guard_0005b58c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0005b58c" * (cast_expression "(int *)PTR___stack_chk_guard_0005b58c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar2 = (byte *)(*(code *)PTR_strdup_0005b598)();" (assignment_expression "pbVar2 = (byte *)(*(code *)PTR_strdup_0005b598)()" identifier = (cast_expression "(byte *)(*(code *)PTR_strdup_0005b598)()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strdup_0005b598)()" (parenthesized_expression "(*(code *)PTR_strdup_0005b598)" ( (pointer_expression "*(code *)PTR_strdup_0005b598" * (cast_expression "(code *)PTR_strdup_0005b598" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (if_statement "if (pbVar2 == (byte *)0x0) goto LAB_00027900;" if (parenthesized_expression "(pbVar2 == (byte *)0x0)" ( (binary_expression "pbVar2 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00027900;" goto statement_identifier ;)) (expression_statement "uVar3 = (*(code *)PTR___ctype_get_mb_cur_max_0005b534)();" (assignment_expression "uVar3 = (*(code *)PTR___ctype_get_mb_cur_max_0005b534)()" identifier = (call_expression "(*(code *)PTR___ctype_get_mb_cur_max_0005b534)()" (parenthesized_expression "(*(code *)PTR___ctype_get_mb_cur_max_0005b534)" ( (pointer_expression "*(code *)PTR___ctype_get_mb_cur_max_0005b534" * (cast_expression "(code *)PTR___ctype_get_mb_cur_max_0005b534" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "pbVar11 = pbVar2;" (assignment_expression "pbVar11 = pbVar2" identifier = identifier) ;) (if_statement "if (uVar3 < 2) {\n    if (how != 0) {\n      uVar3 = (uint)(char)*pbVar2;\n      if (uVar3 != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }\n      goto LAB_00027638;\n    }\n    goto LAB_00027668;\n  }" if (parenthesized_expression "(uVar3 < 2)" ( (binary_expression "uVar3 < 2" identifier < number_literal) )) (compound_statement "{\n    if (how != 0) {\n      uVar3 = (uint)(char)*pbVar2;\n      if (uVar3 != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }\n      goto LAB_00027638;\n    }\n    goto LAB_00027668;\n  }" { (if_statement "if (how != 0) {\n      uVar3 = (uint)(char)*pbVar2;\n      if (uVar3 != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }\n      goto LAB_00027638;\n    }" if (parenthesized_expression "(how != 0)" ( (binary_expression "how != 0" identifier != number_literal) )) (compound_statement "{\n      uVar3 = (uint)(char)*pbVar2;\n      if (uVar3 != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }\n      goto LAB_00027638;\n    }" { (expression_statement "uVar3 = (uint)(char)*pbVar2;" (assignment_expression "uVar3 = (uint)(char)*pbVar2" identifier = (binary_expression "(uint)(char)*pbVar2" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) * identifier)) ;) (if_statement "if (uVar3 != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }" { (expression_statement "piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_0005b40c)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0005b40c)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0005b40c)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0005b40c" * (cast_expression "(code *)PTR___ctype_b_loc_0005b40c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (do_statement "do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);" do (compound_statement "{\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        }" { (expression_statement "pbVar13 = pbVar11 + 1;" (assignment_expression "pbVar13 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (if_statement "if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;" if (parenthesized_expression "((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0)" ( (binary_expression "(*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20)" ( (binary_expression "*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20" (pointer_expression "*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2)" * (cast_expression "(ushort *)(*piVar5 + (uVar3 & 0xff) * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + (uVar3 & 0xff) * 2)" ( (binary_expression "*piVar5 + (uVar3 & 0xff) * 2" (pointer_expression "*piVar5" * identifier) + (binary_expression "(uVar3 & 0xff) * 2" (parenthesized_expression "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) )) * number_literal)) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar3 = (uint)(char)*pbVar13;" (assignment_expression "uVar3 = (uint)(char)*pbVar13" identifier = (binary_expression "(uint)(char)*pbVar13" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) * identifier)) ;) (expression_statement "pbVar11 = pbVar13;" (assignment_expression "pbVar11 = pbVar13" identifier = identifier) ;) }) while (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) ;) })) (goto_statement "goto LAB_00027638;" goto statement_identifier ;) })) (goto_statement "goto LAB_00027668;" goto statement_identifier ;) })) (expression_statement "ps = &i.state;" (assignment_expression "ps = &i.state" identifier = (pointer_expression "&i.state" & (field_expression "i.state" identifier . field_identifier))) ;) (if_statement "if (how != 0) {\n    i.cur.ptr = (char *)pbVar2;\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    puVar9 = PTR_is_basic_table_0005b300;\n    i.limit = (char *)(pbVar2 + iVar4);\n    i.state.__count = 0;\n    i.state.__value.__wch = 0;\n    i.in_shift = false;\n    i.next_done = false;\n    pbVar13 = pbVar2;\n    if (pbVar2 < i.limit) {\n      pwVar12 = &i.cur.wc;\n      do {\n        pcVar7 = i.limit;\n        i.next_done = false;\n        if (i.in_shift == false) {\n          if ((*(uint *)(puVar9 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n            if (iVar4 != 0) {\n              i.in_shift = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          i.cur.bytes = 1;\n          wVar8 = (wchar_t)(char)*pbVar13;\n          i.cur.wc_valid = true;\n          pbVar13 = (byte *)i.cur.ptr;\n          i.cur.wc = wVar8;\n        }\n        else {\nLAB_000277cc:\n          iter = (mbiter_multi *)pwVar12;\n          i.cur.bytes = rpl_mbrtowc(pwVar12,(char *)pbVar13,(int)pcVar7 - (int)pbVar13,ps);\n          wVar8 = i.cur.wc;\n          pbVar13 = (byte *)i.cur.ptr;\n          if (i.cur.bytes == 0xffffffff) {\n            i.cur.wc_valid = false;\n            i.cur.bytes = 1;\n            i.next_done = true;\n            break;\n          }\n          if (i.cur.bytes == 0xfffffffe) {\n            i.cur.wc_valid = false;\n            i.next_done = true;\n            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n            break;\n          }\n          if (i.cur.bytes == 0) {\n            i.cur.bytes = 1;\n            if (*i.cur.ptr != '\0') goto LAB_0002790c;\n            if (i.cur.wc != 0) goto LAB_000278dc;\n          }\n          i.cur.wc_valid = true;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = false;\n          }\n        }\n        i.next_done = true;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(wVar8);\n        if (iVar4 == 0) break;\n        i.next_done = false;\n        pbVar13 = pbVar13 + i.cur.bytes;\n        i.cur.ptr = (char *)pbVar13;\n      } while (pbVar13 < i.limit);\n    }\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar13);\n    (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar13,iVar4 + 1);\n    if (how == 1) goto LAB_000274d0;\n  }" if (parenthesized_expression "(how != 0)" ( (binary_expression "how != 0" identifier != number_literal) )) (compound_statement "{\n    i.cur.ptr = (char *)pbVar2;\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    puVar9 = PTR_is_basic_table_0005b300;\n    i.limit = (char *)(pbVar2 + iVar4);\n    i.state.__count = 0;\n    i.state.__value.__wch = 0;\n    i.in_shift = false;\n    i.next_done = false;\n    pbVar13 = pbVar2;\n    if (pbVar2 < i.limit) {\n      pwVar12 = &i.cur.wc;\n      do {\n        pcVar7 = i.limit;\n        i.next_done = false;\n        if (i.in_shift == false) {\n          if ((*(uint *)(puVar9 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n            if (iVar4 != 0) {\n              i.in_shift = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          i.cur.bytes = 1;\n          wVar8 = (wchar_t)(char)*pbVar13;\n          i.cur.wc_valid = true;\n          pbVar13 = (byte *)i.cur.ptr;\n          i.cur.wc = wVar8;\n        }\n        else {\nLAB_000277cc:\n          iter = (mbiter_multi *)pwVar12;\n          i.cur.bytes = rpl_mbrtowc(pwVar12,(char *)pbVar13,(int)pcVar7 - (int)pbVar13,ps);\n          wVar8 = i.cur.wc;\n          pbVar13 = (byte *)i.cur.ptr;\n          if (i.cur.bytes == 0xffffffff) {\n            i.cur.wc_valid = false;\n            i.cur.bytes = 1;\n            i.next_done = true;\n            break;\n          }\n          if (i.cur.bytes == 0xfffffffe) {\n            i.cur.wc_valid = false;\n            i.next_done = true;\n            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n            break;\n          }\n          if (i.cur.bytes == 0) {\n            i.cur.bytes = 1;\n            if (*i.cur.ptr != '\0') goto LAB_0002790c;\n            if (i.cur.wc != 0) goto LAB_000278dc;\n          }\n          i.cur.wc_valid = true;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = false;\n          }\n        }\n        i.next_done = true;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(wVar8);\n        if (iVar4 == 0) break;\n        i.next_done = false;\n        pbVar13 = pbVar13 + i.cur.bytes;\n        i.cur.ptr = (char *)pbVar13;\n      } while (pbVar13 < i.limit);\n    }\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar13);\n    (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar13,iVar4 + 1);\n    if (how == 1) goto LAB_000274d0;\n  }" { (expression_statement "i.cur.ptr = (char *)pbVar2;" (assignment_expression "i.cur.ptr = (char *)pbVar2" (field_expression "i.cur.ptr" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = (cast_expression "(char *)pbVar2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);" (assignment_expression "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2)" identifier = (call_expression "(*(code *)PTR_strlen_0005b4e4)(pbVar2)" (parenthesized_expression "(*(code *)PTR_strlen_0005b4e4)" ( (pointer_expression "*(code *)PTR_strlen_0005b4e4" * (cast_expression "(code *)PTR_strlen_0005b4e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2)" ( identifier )))) ;) (expression_statement "puVar9 = PTR_is_basic_table_0005b300;" (assignment_expression "puVar9 = PTR_is_basic_table_0005b300" identifier = identifier) ;) (expression_statement "i.limit = (char *)(pbVar2 + iVar4);" (assignment_expression "i.limit = (char *)(pbVar2 + iVar4)" (field_expression "i.limit" identifier . field_identifier) = (cast_expression "(char *)(pbVar2 + iVar4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar2 + iVar4)" ( (binary_expression "pbVar2 + iVar4" identifier + identifier) )))) ;) (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.in_shift = false;" (assignment_expression "i.in_shift = false" (field_expression "i.in_shift" identifier . field_identifier) = false) ;) (expression_statement "i.next_done = false;" (assignment_expression "i.next_done = false" (field_expression "i.next_done" identifier . field_identifier) = false) ;) (expression_statement "pbVar13 = pbVar2;" (assignment_expression "pbVar13 = pbVar2" identifier = identifier) ;) (if_statement "if (pbVar2 < i.limit) {\n      pwVar12 = &i.cur.wc;\n      do {\n        pcVar7 = i.limit;\n        i.next_done = false;\n        if (i.in_shift == false) {\n          if ((*(uint *)(puVar9 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n            if (iVar4 != 0) {\n              i.in_shift = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          i.cur.bytes = 1;\n          wVar8 = (wchar_t)(char)*pbVar13;\n          i.cur.wc_valid = true;\n          pbVar13 = (byte *)i.cur.ptr;\n          i.cur.wc = wVar8;\n        }\n        else {\nLAB_000277cc:\n          iter = (mbiter_multi *)pwVar12;\n          i.cur.bytes = rpl_mbrtowc(pwVar12,(char *)pbVar13,(int)pcVar7 - (int)pbVar13,ps);\n          wVar8 = i.cur.wc;\n          pbVar13 = (byte *)i.cur.ptr;\n          if (i.cur.bytes == 0xffffffff) {\n            i.cur.wc_valid = false;\n            i.cur.bytes = 1;\n            i.next_done = true;\n            break;\n          }\n          if (i.cur.bytes == 0xfffffffe) {\n            i.cur.wc_valid = false;\n            i.next_done = true;\n            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n            break;\n          }\n          if (i.cur.bytes == 0) {\n            i.cur.bytes = 1;\n            if (*i.cur.ptr != '\0') goto LAB_0002790c;\n            if (i.cur.wc != 0) goto LAB_000278dc;\n          }\n          i.cur.wc_valid = true;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = false;\n          }\n        }\n        i.next_done = true;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(wVar8);\n        if (iVar4 == 0) break;\n        i.next_done = false;\n        pbVar13 = pbVar13 + i.cur.bytes;\n        i.cur.ptr = (char *)pbVar13;\n      } while (pbVar13 < i.limit);\n    }" if (parenthesized_expression "(pbVar2 < i.limit)" ( (binary_expression "pbVar2 < i.limit" identifier < (field_expression "i.limit" identifier . field_identifier)) )) (compound_statement "{\n      pwVar12 = &i.cur.wc;\n      do {\n        pcVar7 = i.limit;\n        i.next_done = false;\n        if (i.in_shift == false) {\n          if ((*(uint *)(puVar9 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n            if (iVar4 != 0) {\n              i.in_shift = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          i.cur.bytes = 1;\n          wVar8 = (wchar_t)(char)*pbVar13;\n          i.cur.wc_valid = true;\n          pbVar13 = (byte *)i.cur.ptr;\n          i.cur.wc = wVar8;\n        }\n        else {\nLAB_000277cc:\n          iter = (mbiter_multi *)pwVar12;\n          i.cur.bytes = rpl_mbrtowc(pwVar12,(char *)pbVar13,(int)pcVar7 - (int)pbVar13,ps);\n          wVar8 = i.cur.wc;\n          pbVar13 = (byte *)i.cur.ptr;\n          if (i.cur.bytes == 0xffffffff) {\n            i.cur.wc_valid = false;\n            i.cur.bytes = 1;\n            i.next_done = true;\n            break;\n          }\n          if (i.cur.bytes == 0xfffffffe) {\n            i.cur.wc_valid = false;\n            i.next_done = true;\n            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n            break;\n          }\n          if (i.cur.bytes == 0) {\n            i.cur.bytes = 1;\n            if (*i.cur.ptr != '\0') goto LAB_0002790c;\n            if (i.cur.wc != 0) goto LAB_000278dc;\n          }\n          i.cur.wc_valid = true;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = false;\n          }\n        }\n        i.next_done = true;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(wVar8);\n        if (iVar4 == 0) break;\n        i.next_done = false;\n        pbVar13 = pbVar13 + i.cur.bytes;\n        i.cur.ptr = (char *)pbVar13;\n      } while (pbVar13 < i.limit);\n    }" { (expression_statement "pwVar12 = &i.cur.wc;" (assignment_expression "pwVar12 = &i.cur.wc" identifier = (pointer_expression "&i.cur.wc" & (field_expression "i.cur.wc" (field_expression "i.cur" identifier . field_identifier) . field_identifier))) ;) (do_statement "do {\n        pcVar7 = i.limit;\n        i.next_done = false;\n        if (i.in_shift == false) {\n          if ((*(uint *)(puVar9 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n            if (iVar4 != 0) {\n              i.in_shift = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          i.cur.bytes = 1;\n          wVar8 = (wchar_t)(char)*pbVar13;\n          i.cur.wc_valid = true;\n          pbVar13 = (byte *)i.cur.ptr;\n          i.cur.wc = wVar8;\n        }\n        else {\nLAB_000277cc:\n          iter = (mbiter_multi *)pwVar12;\n          i.cur.bytes = rpl_mbrtowc(pwVar12,(char *)pbVar13,(int)pcVar7 - (int)pbVar13,ps);\n          wVar8 = i.cur.wc;\n          pbVar13 = (byte *)i.cur.ptr;\n          if (i.cur.bytes == 0xffffffff) {\n            i.cur.wc_valid = false;\n            i.cur.bytes = 1;\n            i.next_done = true;\n            break;\n          }\n          if (i.cur.bytes == 0xfffffffe) {\n            i.cur.wc_valid = false;\n            i.next_done = true;\n            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n            break;\n          }\n          if (i.cur.bytes == 0) {\n            i.cur.bytes = 1;\n            if (*i.cur.ptr != '\0') goto LAB_0002790c;\n            if (i.cur.wc != 0) goto LAB_000278dc;\n          }\n          i.cur.wc_valid = true;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = false;\n          }\n        }\n        i.next_done = true;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(wVar8);\n        if (iVar4 == 0) break;\n        i.next_done = false;\n        pbVar13 = pbVar13 + i.cur.bytes;\n        i.cur.ptr = (char *)pbVar13;\n      } while (pbVar13 < i.limit);" do (compound_statement "{\n        pcVar7 = i.limit;\n        i.next_done = false;\n        if (i.in_shift == false) {\n          if ((*(uint *)(puVar9 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n            if (iVar4 != 0) {\n              i.in_shift = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          i.cur.bytes = 1;\n          wVar8 = (wchar_t)(char)*pbVar13;\n          i.cur.wc_valid = true;\n          pbVar13 = (byte *)i.cur.ptr;\n          i.cur.wc = wVar8;\n        }\n        else {\nLAB_000277cc:\n          iter = (mbiter_multi *)pwVar12;\n          i.cur.bytes = rpl_mbrtowc(pwVar12,(char *)pbVar13,(int)pcVar7 - (int)pbVar13,ps);\n          wVar8 = i.cur.wc;\n          pbVar13 = (byte *)i.cur.ptr;\n          if (i.cur.bytes == 0xffffffff) {\n            i.cur.wc_valid = false;\n            i.cur.bytes = 1;\n            i.next_done = true;\n            break;\n          }\n          if (i.cur.bytes == 0xfffffffe) {\n            i.cur.wc_valid = false;\n            i.next_done = true;\n            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n            break;\n          }\n          if (i.cur.bytes == 0) {\n            i.cur.bytes = 1;\n            if (*i.cur.ptr != '\0') goto LAB_0002790c;\n            if (i.cur.wc != 0) goto LAB_000278dc;\n          }\n          i.cur.wc_valid = true;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = false;\n          }\n        }\n        i.next_done = true;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(wVar8);\n        if (iVar4 == 0) break;\n        i.next_done = false;\n        pbVar13 = pbVar13 + i.cur.bytes;\n        i.cur.ptr = (char *)pbVar13;\n      }" { (expression_statement "pcVar7 = i.limit;" (assignment_expression "pcVar7 = 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 *)(puVar9 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n            if (iVar4 != 0) {\n              i.in_shift = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          i.cur.bytes = 1;\n          wVar8 = (wchar_t)(char)*pbVar13;\n          i.cur.wc_valid = true;\n          pbVar13 = (byte *)i.cur.ptr;\n          i.cur.wc = wVar8;\n        }\n        else {\nLAB_000277cc:\n          iter = (mbiter_multi *)pwVar12;\n          i.cur.bytes = rpl_mbrtowc(pwVar12,(char *)pbVar13,(int)pcVar7 - (int)pbVar13,ps);\n          wVar8 = i.cur.wc;\n          pbVar13 = (byte *)i.cur.ptr;\n          if (i.cur.bytes == 0xffffffff) {\n            i.cur.wc_valid = false;\n            i.cur.bytes = 1;\n            i.next_done = true;\n            break;\n          }\n          if (i.cur.bytes == 0xfffffffe) {\n            i.cur.wc_valid = false;\n            i.next_done = true;\n            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n            break;\n          }\n          if (i.cur.bytes == 0) {\n            i.cur.bytes = 1;\n            if (*i.cur.ptr != '\0') goto LAB_0002790c;\n            if (i.cur.wc != 0) goto LAB_000278dc;\n          }\n          i.cur.wc_valid = true;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = false;\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 *)(puVar9 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n            if (iVar4 != 0) {\n              i.in_shift = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          i.cur.bytes = 1;\n          wVar8 = (wchar_t)(char)*pbVar13;\n          i.cur.wc_valid = true;\n          pbVar13 = (byte *)i.cur.ptr;\n          i.cur.wc = wVar8;\n        }" { (if_statement "if ((*(uint *)(puVar9 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n            if (iVar4 != 0) {\n              i.in_shift = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }" if (parenthesized_expression "((*(uint *)(puVar9 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0)" ( (binary_expression "(*(uint *)(puVar9 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0" (parenthesized_expression "(*(uint *)(puVar9 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1)" ( (binary_expression "*(uint *)(puVar9 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1" (binary_expression "*(uint *)(puVar9 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f)" (pointer_expression "*(uint *)(puVar9 + (uint)(*pbVar13 >> 5) * 4)" * (cast_expression "(uint *)(puVar9 + (uint)(*pbVar13 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + (uint)(*pbVar13 >> 5) * 4)" ( (binary_expression "puVar9 + (uint)(*pbVar13 >> 5) * 4" identifier + (binary_expression "(uint)(*pbVar13 >> 5) * 4" (call_expression "(uint)(*pbVar13 >> 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*pbVar13 >> 5)" ( (binary_expression "*pbVar13 >> 5" (pointer_expression "*pbVar13" * identifier) >> number_literal) ))) * number_literal)) )))) >> (parenthesized_expression "(*pbVar13 & 0x1f)" ( (binary_expression "*pbVar13 & 0x1f" (pointer_expression "*pbVar13" * identifier) & number_literal) ))) & number_literal) )) == number_literal) )) (compound_statement "{\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n            if (iVar4 != 0) {\n              i.in_shift = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }" { (expression_statement "iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);" (assignment_expression "iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps)" identifier = (call_expression "(*(code *)PTR_mbsinit_0005b588)(ps)" (parenthesized_expression "(*(code *)PTR_mbsinit_0005b588)" ( (pointer_expression "*(code *)PTR_mbsinit_0005b588" * (cast_expression "(code *)PTR_mbsinit_0005b588" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ps)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) {\n              i.in_shift = true;\n              goto LAB_000277cc;\n            }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n              i.in_shift = true;\n              goto LAB_000277cc;\n            }" { (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_000277cc;" goto statement_identifier ;) })) (goto_statement "goto LAB_00027930;" 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 "wVar8 = (wchar_t)(char)*pbVar13;" (assignment_expression "wVar8 = (wchar_t)(char)*pbVar13" identifier = (binary_expression "(wchar_t)(char)*pbVar13" (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 "pbVar13 = (byte *)i.cur.ptr;" (assignment_expression "pbVar13 = (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 "i.cur.wc = wVar8;" (assignment_expression "i.cur.wc = wVar8" (field_expression "i.cur.wc" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = identifier) ;) }) (else_clause "else {\nLAB_000277cc:\n          iter = (mbiter_multi *)pwVar12;\n          i.cur.bytes = rpl_mbrtowc(pwVar12,(char *)pbVar13,(int)pcVar7 - (int)pbVar13,ps);\n          wVar8 = i.cur.wc;\n          pbVar13 = (byte *)i.cur.ptr;\n          if (i.cur.bytes == 0xffffffff) {\n            i.cur.wc_valid = false;\n            i.cur.bytes = 1;\n            i.next_done = true;\n            break;\n          }\n          if (i.cur.bytes == 0xfffffffe) {\n            i.cur.wc_valid = false;\n            i.next_done = true;\n            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n            break;\n          }\n          if (i.cur.bytes == 0) {\n            i.cur.bytes = 1;\n            if (*i.cur.ptr != '\0') goto LAB_0002790c;\n            if (i.cur.wc != 0) goto LAB_000278dc;\n          }\n          i.cur.wc_valid = true;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = false;\n          }\n        }" else (compound_statement "{\nLAB_000277cc:\n          iter = (mbiter_multi *)pwVar12;\n          i.cur.bytes = rpl_mbrtowc(pwVar12,(char *)pbVar13,(int)pcVar7 - (int)pbVar13,ps);\n          wVar8 = i.cur.wc;\n          pbVar13 = (byte *)i.cur.ptr;\n          if (i.cur.bytes == 0xffffffff) {\n            i.cur.wc_valid = false;\n            i.cur.bytes = 1;\n            i.next_done = true;\n            break;\n          }\n          if (i.cur.bytes == 0xfffffffe) {\n            i.cur.wc_valid = false;\n            i.next_done = true;\n            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n            break;\n          }\n          if (i.cur.bytes == 0) {\n            i.cur.bytes = 1;\n            if (*i.cur.ptr != '\0') goto LAB_0002790c;\n            if (i.cur.wc != 0) goto LAB_000278dc;\n          }\n          i.cur.wc_valid = true;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = false;\n          }\n        }" { (labeled_statement "LAB_000277cc:\n          iter = (mbiter_multi *)pwVar12;" statement_identifier : (expression_statement "iter = (mbiter_multi *)pwVar12;" (assignment_expression "iter = (mbiter_multi *)pwVar12" identifier = (cast_expression "(mbiter_multi *)pwVar12" ( (type_descriptor "mbiter_multi *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "i.cur.bytes = rpl_mbrtowc(pwVar12,(char *)pbVar13,(int)pcVar7 - (int)pbVar13,ps);" (assignment_expression "i.cur.bytes = rpl_mbrtowc(pwVar12,(char *)pbVar13,(int)pcVar7 - (int)pbVar13,ps)" (field_expression "i.cur.bytes" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = (call_expression "rpl_mbrtowc(pwVar12,(char *)pbVar13,(int)pcVar7 - (int)pbVar13,ps)" identifier (argument_list "(pwVar12,(char *)pbVar13,(int)pcVar7 - (int)pbVar13,ps)" ( identifier , (cast_expression "(char *)pbVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "(int)pcVar7 - (int)pbVar13" (cast_expression "(int)pcVar7" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier )))) ;) (expression_statement "wVar8 = i.cur.wc;" (assignment_expression "wVar8 = i.cur.wc" identifier = (field_expression "i.cur.wc" (field_expression "i.cur" identifier . field_identifier) . field_identifier)) ;) (expression_statement "pbVar13 = (byte *)i.cur.ptr;" (assignment_expression "pbVar13 = (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))) ;) (if_statement "if (i.cur.bytes == 0xffffffff) {\n            i.cur.wc_valid = false;\n            i.cur.bytes = 1;\n            i.next_done = true;\n            break;\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.wc_valid = false;\n            i.cur.bytes = 1;\n            i.next_done = true;\n            break;\n          }" { (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) ;) (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.next_done = true;" (assignment_expression "i.next_done = true" (field_expression "i.next_done" identifier . field_identifier) = true) ;) (break_statement "break;" break ;) })) (if_statement "if (i.cur.bytes == 0xfffffffe) {\n            i.cur.wc_valid = false;\n            i.next_done = true;\n            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n            break;\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.wc_valid = false;\n            i.next_done = true;\n            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n            break;\n          }" { (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) ;) (expression_statement "i.next_done = true;" (assignment_expression "i.next_done = true" (field_expression "i.next_done" identifier . field_identifier) = true) ;) (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)))) ;) (break_statement "break;" break ;) })) (if_statement "if (i.cur.bytes == 0) {\n            i.cur.bytes = 1;\n            if (*i.cur.ptr != '\0') goto LAB_0002790c;\n            if (i.cur.wc != 0) goto LAB_000278dc;\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') goto LAB_0002790c;\n            if (i.cur.wc != 0) goto LAB_000278dc;\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') goto LAB_0002790c;" 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 ')) )) (goto_statement "goto LAB_0002790c;" goto statement_identifier ;)) (if_statement "if (i.cur.wc != 0) goto LAB_000278dc;" 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) )) (goto_statement "goto LAB_000278dc;" goto statement_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 "iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);" (assignment_expression "iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps)" identifier = (call_expression "(*(code *)PTR_mbsinit_0005b588)(ps)" (parenthesized_expression "(*(code *)PTR_mbsinit_0005b588)" ( (pointer_expression "*(code *)PTR_mbsinit_0005b588" * (cast_expression "(code *)PTR_mbsinit_0005b588" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ps)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) {\n            i.in_shift = false;\n          }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 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 "iVar4 = (*(code *)PTR_iswspace_0005b4fc)(wVar8);" (assignment_expression "iVar4 = (*(code *)PTR_iswspace_0005b4fc)(wVar8)" identifier = (call_expression "(*(code *)PTR_iswspace_0005b4fc)(wVar8)" (parenthesized_expression "(*(code *)PTR_iswspace_0005b4fc)" ( (pointer_expression "*(code *)PTR_iswspace_0005b4fc" * (cast_expression "(code *)PTR_iswspace_0005b4fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(wVar8)" ( identifier )))) ;) (if_statement "if (iVar4 == 0) break;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "i.next_done = false;" (assignment_expression "i.next_done = false" (field_expression "i.next_done" identifier . field_identifier) = false) ;) (expression_statement "pbVar13 = pbVar13 + i.cur.bytes;" (assignment_expression "pbVar13 = pbVar13 + i.cur.bytes" identifier = (binary_expression "pbVar13 + i.cur.bytes" identifier + (field_expression "i.cur.bytes" (field_expression "i.cur" identifier . field_identifier) . field_identifier))) ;) (expression_statement "i.cur.ptr = (char *)pbVar13;" (assignment_expression "i.cur.ptr = (char *)pbVar13" (field_expression "i.cur.ptr" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = (cast_expression "(char *)pbVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(pbVar13 < i.limit)" ( (binary_expression "pbVar13 < i.limit" identifier < (field_expression "i.limit" identifier . field_identifier)) )) ;) })) (expression_statement "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar13);" (assignment_expression "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar13)" identifier = (call_expression "(*(code *)PTR_strlen_0005b4e4)(pbVar13)" (parenthesized_expression "(*(code *)PTR_strlen_0005b4e4)" ( (pointer_expression "*(code *)PTR_strlen_0005b4e4" * (cast_expression "(code *)PTR_strlen_0005b4e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar13)" ( identifier )))) ;) (expression_statement "(*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar13,iVar4 + 1);" (call_expression "(*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar13,iVar4 + 1)" (parenthesized_expression "(*(code *)PTR_memmove_0005b5a4)" ( (pointer_expression "*(code *)PTR_memmove_0005b5a4" * (cast_expression "(code *)PTR_memmove_0005b5a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2,pbVar13,iVar4 + 1)" ( identifier , identifier , (binary_expression "iVar4 + 1" identifier + number_literal) ))) ;) (if_statement "if (how == 1) goto LAB_000274d0;" if (parenthesized_expression "(how == 1)" ( (binary_expression "how == 1" identifier == number_literal) )) (goto_statement "goto LAB_000274d0;" goto statement_identifier ;)) })) (expression_statement "i.cur.ptr = (char *)pbVar2;" (assignment_expression "i.cur.ptr = (char *)pbVar2" (field_expression "i.cur.ptr" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = (cast_expression "(char *)pbVar2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);" (assignment_expression "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2)" identifier = (call_expression "(*(code *)PTR_strlen_0005b4e4)(pbVar2)" (parenthesized_expression "(*(code *)PTR_strlen_0005b4e4)" ( (pointer_expression "*(code *)PTR_strlen_0005b4e4" * (cast_expression "(code *)PTR_strlen_0005b4e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2)" ( identifier )))) ;) (expression_statement "puVar9 = PTR_is_basic_table_0005b300;" (assignment_expression "puVar9 = PTR_is_basic_table_0005b300" identifier = identifier) ;) (expression_statement "pbVar13 = pbVar2 + iVar4;" (assignment_expression "pbVar13 = pbVar2 + iVar4" identifier = (binary_expression "pbVar2 + iVar4" identifier + identifier)) ;) (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.in_shift = false;" (assignment_expression "i.in_shift = false" (field_expression "i.in_shift" identifier . field_identifier) = false) ;) (expression_statement "i.next_done = false;" (assignment_expression "i.next_done = false" (field_expression "i.next_done" identifier . field_identifier) = false) ;) (expression_statement "i.limit = (char *)pbVar13;" (assignment_expression "i.limit = (char *)pbVar13" (field_expression "i.limit" identifier . field_identifier) = (cast_expression "(char *)pbVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pbVar2 < pbVar13) {\n    cVar15 = '\0';\n    pwVar12 = &i.cur.wc;\n    how = 1;\n    s_00 = pbVar2;\nLAB_0002742c:\n    do {\n      i.next_done = false;\n      if (i.in_shift == false) {\n        if ((*(uint *)(puVar9 + (uint)(*s_00 >> 5) * 4) >> (*s_00 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        i.cur.bytes = 1;\n        i.cur.wc = (wchar_t)(char)*s_00;\n        i.cur.wc_valid = true;\n        s_00 = (byte *)(i.cur.ptr + 1);\n        pcVar7 = i.cur.ptr;\n      }\n      else {\nLAB_0002752c:\n        iter = (mbiter_multi *)pwVar12;\n        i.cur.bytes = rpl_mbrtowc(pwVar12,(char *)s_00,(int)pbVar13 - (int)s_00,ps);\n        pcVar7 = i.cur.ptr;\n        if (i.cur.bytes == 0xffffffff) {\n          i.cur.wc_valid = false;\n          s_00 = (byte *)(i.cur.ptr + 1);\n          i.cur.bytes = 1;\n        }\n        else if (i.cur.bytes == 0xfffffffe) {\n          i.cur.wc_valid = false;\n          i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n          s_00 = (byte *)i.limit;\n        }\n        else {\n          if (i.cur.bytes == 0) {\n            i.cur.bytes = 1;\n            if (*i.cur.ptr != '\0') goto LAB_0002790c;\n            if (i.cur.wc != 0) goto LAB_000278dc;\n          }\n          i.cur.wc_valid = true;\n          s_00 = (byte *)(i.cur.ptr + i.cur.bytes);\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = false;\n          }\n        }\n      }\n      pbVar13 = (byte *)i.limit;\n      i.next_done = true;\n      if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (i.cur.wc_valid != false) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((i.cur.wc_valid != false) &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pcVar7;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (i.cur.wc_valid != false)) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          i.cur.ptr = (char *)s_00;\n          if (pbVar13 <= s_00) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }\n      i.cur.ptr = (char *)s_00;\n    } while (s_00 < pbVar13);\n    i.next_done = false;\n    i.cur.ptr = (char *)s_00;\n    if (cVar15 == '\x02') {\n      *local_6c = '\0';\n    }\n  }" if (parenthesized_expression "(pbVar2 < pbVar13)" ( (binary_expression "pbVar2 < pbVar13" identifier < identifier) )) (compound_statement "{\n    cVar15 = '\0';\n    pwVar12 = &i.cur.wc;\n    how = 1;\n    s_00 = pbVar2;\nLAB_0002742c:\n    do {\n      i.next_done = false;\n      if (i.in_shift == false) {\n        if ((*(uint *)(puVar9 + (uint)(*s_00 >> 5) * 4) >> (*s_00 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        i.cur.bytes = 1;\n        i.cur.wc = (wchar_t)(char)*s_00;\n        i.cur.wc_valid = true;\n        s_00 = (byte *)(i.cur.ptr + 1);\n        pcVar7 = i.cur.ptr;\n      }\n      else {\nLAB_0002752c:\n        iter = (mbiter_multi *)pwVar12;\n        i.cur.bytes = rpl_mbrtowc(pwVar12,(char *)s_00,(int)pbVar13 - (int)s_00,ps);\n        pcVar7 = i.cur.ptr;\n        if (i.cur.bytes == 0xffffffff) {\n          i.cur.wc_valid = false;\n          s_00 = (byte *)(i.cur.ptr + 1);\n          i.cur.bytes = 1;\n        }\n        else if (i.cur.bytes == 0xfffffffe) {\n          i.cur.wc_valid = false;\n          i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n          s_00 = (byte *)i.limit;\n        }\n        else {\n          if (i.cur.bytes == 0) {\n            i.cur.bytes = 1;\n            if (*i.cur.ptr != '\0') goto LAB_0002790c;\n            if (i.cur.wc != 0) goto LAB_000278dc;\n          }\n          i.cur.wc_valid = true;\n          s_00 = (byte *)(i.cur.ptr + i.cur.bytes);\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = false;\n          }\n        }\n      }\n      pbVar13 = (byte *)i.limit;\n      i.next_done = true;\n      if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (i.cur.wc_valid != false) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((i.cur.wc_valid != false) &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pcVar7;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (i.cur.wc_valid != false)) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          i.cur.ptr = (char *)s_00;\n          if (pbVar13 <= s_00) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }\n      i.cur.ptr = (char *)s_00;\n    } while (s_00 < pbVar13);\n    i.next_done = false;\n    i.cur.ptr = (char *)s_00;\n    if (cVar15 == '\x02') {\n      *local_6c = '\0';\n    }\n  }" { (expression_statement "cVar15 = '\0';" (assignment_expression "cVar15 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pwVar12 = &i.cur.wc;" (assignment_expression "pwVar12 = &i.cur.wc" identifier = (pointer_expression "&i.cur.wc" & (field_expression "i.cur.wc" (field_expression "i.cur" identifier . field_identifier) . field_identifier))) ;) (expression_statement "how = 1;" (assignment_expression "how = 1" identifier = number_literal) ;) (expression_statement "s_00 = pbVar2;" (assignment_expression "s_00 = pbVar2" identifier = identifier) ;) (labeled_statement "LAB_0002742c:\n    do {\n      i.next_done = false;\n      if (i.in_shift == false) {\n        if ((*(uint *)(puVar9 + (uint)(*s_00 >> 5) * 4) >> (*s_00 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        i.cur.bytes = 1;\n        i.cur.wc = (wchar_t)(char)*s_00;\n        i.cur.wc_valid = true;\n        s_00 = (byte *)(i.cur.ptr + 1);\n        pcVar7 = i.cur.ptr;\n      }\n      else {\nLAB_0002752c:\n        iter = (mbiter_multi *)pwVar12;\n        i.cur.bytes = rpl_mbrtowc(pwVar12,(char *)s_00,(int)pbVar13 - (int)s_00,ps);\n        pcVar7 = i.cur.ptr;\n        if (i.cur.bytes == 0xffffffff) {\n          i.cur.wc_valid = false;\n          s_00 = (byte *)(i.cur.ptr + 1);\n          i.cur.bytes = 1;\n        }\n        else if (i.cur.bytes == 0xfffffffe) {\n          i.cur.wc_valid = false;\n          i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n          s_00 = (byte *)i.limit;\n        }\n        else {\n          if (i.cur.bytes == 0) {\n            i.cur.bytes = 1;\n            if (*i.cur.ptr != '\0') goto LAB_0002790c;\n            if (i.cur.wc != 0) goto LAB_000278dc;\n          }\n          i.cur.wc_valid = true;\n          s_00 = (byte *)(i.cur.ptr + i.cur.bytes);\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = false;\n          }\n        }\n      }\n      pbVar13 = (byte *)i.limit;\n      i.next_done = true;\n      if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (i.cur.wc_valid != false) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((i.cur.wc_valid != false) &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pcVar7;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (i.cur.wc_valid != false)) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          i.cur.ptr = (char *)s_00;\n          if (pbVar13 <= s_00) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }\n      i.cur.ptr = (char *)s_00;\n    } while (s_00 < pbVar13);" statement_identifier : (do_statement "do {\n      i.next_done = false;\n      if (i.in_shift == false) {\n        if ((*(uint *)(puVar9 + (uint)(*s_00 >> 5) * 4) >> (*s_00 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        i.cur.bytes = 1;\n        i.cur.wc = (wchar_t)(char)*s_00;\n        i.cur.wc_valid = true;\n        s_00 = (byte *)(i.cur.ptr + 1);\n        pcVar7 = i.cur.ptr;\n      }\n      else {\nLAB_0002752c:\n        iter = (mbiter_multi *)pwVar12;\n        i.cur.bytes = rpl_mbrtowc(pwVar12,(char *)s_00,(int)pbVar13 - (int)s_00,ps);\n        pcVar7 = i.cur.ptr;\n        if (i.cur.bytes == 0xffffffff) {\n          i.cur.wc_valid = false;\n          s_00 = (byte *)(i.cur.ptr + 1);\n          i.cur.bytes = 1;\n        }\n        else if (i.cur.bytes == 0xfffffffe) {\n          i.cur.wc_valid = false;\n          i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n          s_00 = (byte *)i.limit;\n        }\n        else {\n          if (i.cur.bytes == 0) {\n            i.cur.bytes = 1;\n            if (*i.cur.ptr != '\0') goto LAB_0002790c;\n            if (i.cur.wc != 0) goto LAB_000278dc;\n          }\n          i.cur.wc_valid = true;\n          s_00 = (byte *)(i.cur.ptr + i.cur.bytes);\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = false;\n          }\n        }\n      }\n      pbVar13 = (byte *)i.limit;\n      i.next_done = true;\n      if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (i.cur.wc_valid != false) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((i.cur.wc_valid != false) &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pcVar7;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (i.cur.wc_valid != false)) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          i.cur.ptr = (char *)s_00;\n          if (pbVar13 <= s_00) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }\n      i.cur.ptr = (char *)s_00;\n    } while (s_00 < pbVar13);" do (compound_statement "{\n      i.next_done = false;\n      if (i.in_shift == false) {\n        if ((*(uint *)(puVar9 + (uint)(*s_00 >> 5) * 4) >> (*s_00 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        i.cur.bytes = 1;\n        i.cur.wc = (wchar_t)(char)*s_00;\n        i.cur.wc_valid = true;\n        s_00 = (byte *)(i.cur.ptr + 1);\n        pcVar7 = i.cur.ptr;\n      }\n      else {\nLAB_0002752c:\n        iter = (mbiter_multi *)pwVar12;\n        i.cur.bytes = rpl_mbrtowc(pwVar12,(char *)s_00,(int)pbVar13 - (int)s_00,ps);\n        pcVar7 = i.cur.ptr;\n        if (i.cur.bytes == 0xffffffff) {\n          i.cur.wc_valid = false;\n          s_00 = (byte *)(i.cur.ptr + 1);\n          i.cur.bytes = 1;\n        }\n        else if (i.cur.bytes == 0xfffffffe) {\n          i.cur.wc_valid = false;\n          i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n          s_00 = (byte *)i.limit;\n        }\n        else {\n          if (i.cur.bytes == 0) {\n            i.cur.bytes = 1;\n            if (*i.cur.ptr != '\0') goto LAB_0002790c;\n            if (i.cur.wc != 0) goto LAB_000278dc;\n          }\n          i.cur.wc_valid = true;\n          s_00 = (byte *)(i.cur.ptr + i.cur.bytes);\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = false;\n          }\n        }\n      }\n      pbVar13 = (byte *)i.limit;\n      i.next_done = true;\n      if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (i.cur.wc_valid != false) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((i.cur.wc_valid != false) &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pcVar7;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (i.cur.wc_valid != false)) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          i.cur.ptr = (char *)s_00;\n          if (pbVar13 <= s_00) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }\n      i.cur.ptr = (char *)s_00;\n    }" { (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 *)(puVar9 + (uint)(*s_00 >> 5) * 4) >> (*s_00 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        i.cur.bytes = 1;\n        i.cur.wc = (wchar_t)(char)*s_00;\n        i.cur.wc_valid = true;\n        s_00 = (byte *)(i.cur.ptr + 1);\n        pcVar7 = i.cur.ptr;\n      }\n      else {\nLAB_0002752c:\n        iter = (mbiter_multi *)pwVar12;\n        i.cur.bytes = rpl_mbrtowc(pwVar12,(char *)s_00,(int)pbVar13 - (int)s_00,ps);\n        pcVar7 = i.cur.ptr;\n        if (i.cur.bytes == 0xffffffff) {\n          i.cur.wc_valid = false;\n          s_00 = (byte *)(i.cur.ptr + 1);\n          i.cur.bytes = 1;\n        }\n        else if (i.cur.bytes == 0xfffffffe) {\n          i.cur.wc_valid = false;\n          i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n          s_00 = (byte *)i.limit;\n        }\n        else {\n          if (i.cur.bytes == 0) {\n            i.cur.bytes = 1;\n            if (*i.cur.ptr != '\0') goto LAB_0002790c;\n            if (i.cur.wc != 0) goto LAB_000278dc;\n          }\n          i.cur.wc_valid = true;\n          s_00 = (byte *)(i.cur.ptr + i.cur.bytes);\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 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 *)(puVar9 + (uint)(*s_00 >> 5) * 4) >> (*s_00 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        i.cur.bytes = 1;\n        i.cur.wc = (wchar_t)(char)*s_00;\n        i.cur.wc_valid = true;\n        s_00 = (byte *)(i.cur.ptr + 1);\n        pcVar7 = i.cur.ptr;\n      }" { (if_statement "if ((*(uint *)(puVar9 + (uint)(*s_00 >> 5) * 4) >> (*s_00 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }" if (parenthesized_expression "((*(uint *)(puVar9 + (uint)(*s_00 >> 5) * 4) >> (*s_00 & 0x1f) & 1) == 0)" ( (binary_expression "(*(uint *)(puVar9 + (uint)(*s_00 >> 5) * 4) >> (*s_00 & 0x1f) & 1) == 0" (parenthesized_expression "(*(uint *)(puVar9 + (uint)(*s_00 >> 5) * 4) >> (*s_00 & 0x1f) & 1)" ( (binary_expression "*(uint *)(puVar9 + (uint)(*s_00 >> 5) * 4) >> (*s_00 & 0x1f) & 1" (binary_expression "*(uint *)(puVar9 + (uint)(*s_00 >> 5) * 4) >> (*s_00 & 0x1f)" (pointer_expression "*(uint *)(puVar9 + (uint)(*s_00 >> 5) * 4)" * (cast_expression "(uint *)(puVar9 + (uint)(*s_00 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + (uint)(*s_00 >> 5) * 4)" ( (binary_expression "puVar9 + (uint)(*s_00 >> 5) * 4" identifier + (binary_expression "(uint)(*s_00 >> 5) * 4" (call_expression "(uint)(*s_00 >> 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*s_00 >> 5)" ( (binary_expression "*s_00 >> 5" (pointer_expression "*s_00" * identifier) >> number_literal) ))) * number_literal)) )))) >> (parenthesized_expression "(*s_00 & 0x1f)" ( (binary_expression "*s_00 & 0x1f" (pointer_expression "*s_00" * identifier) & number_literal) ))) & number_literal) )) == number_literal) )) (compound_statement "{\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }" { (expression_statement "iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);" (assignment_expression "iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps)" identifier = (call_expression "(*(code *)PTR_mbsinit_0005b588)(ps)" (parenthesized_expression "(*(code *)PTR_mbsinit_0005b588)" ( (pointer_expression "*(code *)PTR_mbsinit_0005b588" * (cast_expression "(code *)PTR_mbsinit_0005b588" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ps)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) {\n            i.in_shift = true;\n            goto LAB_0002752c;\n          }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n            i.in_shift = true;\n            goto LAB_0002752c;\n          }" { (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_0002752c;" goto statement_identifier ;) })) (goto_statement "goto LAB_00027930;" 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)*s_00;" (assignment_expression "i.cur.wc = (wchar_t)(char)*s_00" (field_expression "i.cur.wc" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = (binary_expression "(wchar_t)(char)*s_00" (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 "s_00 = (byte *)(i.cur.ptr + 1);" (assignment_expression "s_00 = (byte *)(i.cur.ptr + 1)" identifier = (cast_expression "(byte *)(i.cur.ptr + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(i.cur.ptr + 1)" ( (binary_expression "i.cur.ptr + 1" (field_expression "i.cur.ptr" (field_expression "i.cur" identifier . field_identifier) . field_identifier) + number_literal) )))) ;) (expression_statement "pcVar7 = i.cur.ptr;" (assignment_expression "pcVar7 = i.cur.ptr" identifier = (field_expression "i.cur.ptr" (field_expression "i.cur" identifier . field_identifier) . field_identifier)) ;) }) (else_clause "else {\nLAB_0002752c:\n        iter = (mbiter_multi *)pwVar12;\n        i.cur.bytes = rpl_mbrtowc(pwVar12,(char *)s_00,(int)pbVar13 - (int)s_00,ps);\n        pcVar7 = i.cur.ptr;\n        if (i.cur.bytes == 0xffffffff) {\n          i.cur.wc_valid = false;\n          s_00 = (byte *)(i.cur.ptr + 1);\n          i.cur.bytes = 1;\n        }\n        else if (i.cur.bytes == 0xfffffffe) {\n          i.cur.wc_valid = false;\n          i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n          s_00 = (byte *)i.limit;\n        }\n        else {\n          if (i.cur.bytes == 0) {\n            i.cur.bytes = 1;\n            if (*i.cur.ptr != '\0') goto LAB_0002790c;\n            if (i.cur.wc != 0) goto LAB_000278dc;\n          }\n          i.cur.wc_valid = true;\n          s_00 = (byte *)(i.cur.ptr + i.cur.bytes);\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = false;\n          }\n        }\n      }" else (compound_statement "{\nLAB_0002752c:\n        iter = (mbiter_multi *)pwVar12;\n        i.cur.bytes = rpl_mbrtowc(pwVar12,(char *)s_00,(int)pbVar13 - (int)s_00,ps);\n        pcVar7 = i.cur.ptr;\n        if (i.cur.bytes == 0xffffffff) {\n          i.cur.wc_valid = false;\n          s_00 = (byte *)(i.cur.ptr + 1);\n          i.cur.bytes = 1;\n        }\n        else if (i.cur.bytes == 0xfffffffe) {\n          i.cur.wc_valid = false;\n          i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n          s_00 = (byte *)i.limit;\n        }\n        else {\n          if (i.cur.bytes == 0) {\n            i.cur.bytes = 1;\n            if (*i.cur.ptr != '\0') goto LAB_0002790c;\n            if (i.cur.wc != 0) goto LAB_000278dc;\n          }\n          i.cur.wc_valid = true;\n          s_00 = (byte *)(i.cur.ptr + i.cur.bytes);\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = false;\n          }\n        }\n      }" { (labeled_statement "LAB_0002752c:\n        iter = (mbiter_multi *)pwVar12;" statement_identifier : (expression_statement "iter = (mbiter_multi *)pwVar12;" (assignment_expression "iter = (mbiter_multi *)pwVar12" identifier = (cast_expression "(mbiter_multi *)pwVar12" ( (type_descriptor "mbiter_multi *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "i.cur.bytes = rpl_mbrtowc(pwVar12,(char *)s_00,(int)pbVar13 - (int)s_00,ps);" (assignment_expression "i.cur.bytes = rpl_mbrtowc(pwVar12,(char *)s_00,(int)pbVar13 - (int)s_00,ps)" (field_expression "i.cur.bytes" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = (call_expression "rpl_mbrtowc(pwVar12,(char *)s_00,(int)pbVar13 - (int)s_00,ps)" identifier (argument_list "(pwVar12,(char *)s_00,(int)pbVar13 - (int)s_00,ps)" ( identifier , (cast_expression "(char *)s_00" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "(int)pbVar13 - (int)s_00" (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)s_00" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier )))) ;) (expression_statement "pcVar7 = i.cur.ptr;" (assignment_expression "pcVar7 = i.cur.ptr" identifier = (field_expression "i.cur.ptr" (field_expression "i.cur" identifier . field_identifier) . field_identifier)) ;) (if_statement "if (i.cur.bytes == 0xffffffff) {\n          i.cur.wc_valid = false;\n          s_00 = (byte *)(i.cur.ptr + 1);\n          i.cur.bytes = 1;\n        }\n        else if (i.cur.bytes == 0xfffffffe) {\n          i.cur.wc_valid = false;\n          i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n          s_00 = (byte *)i.limit;\n        }\n        else {\n          if (i.cur.bytes == 0) {\n            i.cur.bytes = 1;\n            if (*i.cur.ptr != '\0') goto LAB_0002790c;\n            if (i.cur.wc != 0) goto LAB_000278dc;\n          }\n          i.cur.wc_valid = true;\n          s_00 = (byte *)(i.cur.ptr + i.cur.bytes);\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 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.wc_valid = false;\n          s_00 = (byte *)(i.cur.ptr + 1);\n          i.cur.bytes = 1;\n        }" { (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) ;) (expression_statement "s_00 = (byte *)(i.cur.ptr + 1);" (assignment_expression "s_00 = (byte *)(i.cur.ptr + 1)" identifier = (cast_expression "(byte *)(i.cur.ptr + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(i.cur.ptr + 1)" ( (binary_expression "i.cur.ptr + 1" (field_expression "i.cur.ptr" (field_expression "i.cur" identifier . field_identifier) . field_identifier) + number_literal) )))) ;) (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) ;) }) (else_clause "else if (i.cur.bytes == 0xfffffffe) {\n          i.cur.wc_valid = false;\n          i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n          s_00 = (byte *)i.limit;\n        }\n        else {\n          if (i.cur.bytes == 0) {\n            i.cur.bytes = 1;\n            if (*i.cur.ptr != '\0') goto LAB_0002790c;\n            if (i.cur.wc != 0) goto LAB_000278dc;\n          }\n          i.cur.wc_valid = true;\n          s_00 = (byte *)(i.cur.ptr + i.cur.bytes);\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 0) {\n            i.in_shift = false;\n          }\n        }" else (if_statement "if (i.cur.bytes == 0xfffffffe) {\n          i.cur.wc_valid = false;\n          i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n          s_00 = (byte *)i.limit;\n        }\n        else {\n          if (i.cur.bytes == 0) {\n            i.cur.bytes = 1;\n            if (*i.cur.ptr != '\0') goto LAB_0002790c;\n            if (i.cur.wc != 0) goto LAB_000278dc;\n          }\n          i.cur.wc_valid = true;\n          s_00 = (byte *)(i.cur.ptr + i.cur.bytes);\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 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.wc_valid = false;\n          i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n          s_00 = (byte *)i.limit;\n        }" { (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) ;) (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 "s_00 = (byte *)i.limit;" (assignment_expression "s_00 = (byte *)i.limit" identifier = (cast_expression "(byte *)i.limit" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "i.limit" identifier . field_identifier))) ;) }) (else_clause "else {\n          if (i.cur.bytes == 0) {\n            i.cur.bytes = 1;\n            if (*i.cur.ptr != '\0') goto LAB_0002790c;\n            if (i.cur.wc != 0) goto LAB_000278dc;\n          }\n          i.cur.wc_valid = true;\n          s_00 = (byte *)(i.cur.ptr + i.cur.bytes);\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 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') goto LAB_0002790c;\n            if (i.cur.wc != 0) goto LAB_000278dc;\n          }\n          i.cur.wc_valid = true;\n          s_00 = (byte *)(i.cur.ptr + i.cur.bytes);\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);\n          if (iVar4 != 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') goto LAB_0002790c;\n            if (i.cur.wc != 0) goto LAB_000278dc;\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') goto LAB_0002790c;\n            if (i.cur.wc != 0) goto LAB_000278dc;\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') goto LAB_0002790c;" 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 ')) )) (goto_statement "goto LAB_0002790c;" goto statement_identifier ;)) (if_statement "if (i.cur.wc != 0) goto LAB_000278dc;" 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) )) (goto_statement "goto LAB_000278dc;" goto statement_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 "s_00 = (byte *)(i.cur.ptr + i.cur.bytes);" (assignment_expression "s_00 = (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 "iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps);" (assignment_expression "iVar4 = (*(code *)PTR_mbsinit_0005b588)(ps)" identifier = (call_expression "(*(code *)PTR_mbsinit_0005b588)(ps)" (parenthesized_expression "(*(code *)PTR_mbsinit_0005b588)" ( (pointer_expression "*(code *)PTR_mbsinit_0005b588" * (cast_expression "(code *)PTR_mbsinit_0005b588" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ps)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) {\n            i.in_shift = false;\n          }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 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 "pbVar13 = (byte *)i.limit;" (assignment_expression "pbVar13 = (byte *)i.limit" identifier = (cast_expression "(byte *)i.limit" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "i.limit" 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 (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (i.cur.wc_valid != false) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((i.cur.wc_valid != false) &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pcVar7;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (i.cur.wc_valid != false)) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          i.cur.ptr = (char *)s_00;\n          if (pbVar13 <= s_00) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }" if (parenthesized_expression "(cVar15 == '\0')" ( (binary_expression "cVar15 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        cVar15 = '\x01';\n        if (i.cur.wc_valid != false) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc);\n          cVar15 = iVar4 == 0;\n        }\n      }" { (expression_statement "cVar15 = '\x01';" (assignment_expression "cVar15 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (if_statement "if (i.cur.wc_valid != false) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc);\n          cVar15 = iVar4 == 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          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc);\n          cVar15 = iVar4 == 0;\n        }" { (expression_statement "iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc);" (assignment_expression "iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc)" identifier = (call_expression "(*(code *)PTR_iswspace_0005b4fc)(i.cur.wc)" (parenthesized_expression "(*(code *)PTR_iswspace_0005b4fc)" ( (pointer_expression "*(code *)PTR_iswspace_0005b4fc" * (cast_expression "(code *)PTR_iswspace_0005b4fc" ( (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 "cVar15 = iVar4 == 0;" (assignment_expression "cVar15 = iVar4 == 0" identifier = (binary_expression "iVar4 == 0" identifier == number_literal)) ;) })) }) (else_clause "else if (cVar15 == '\x01') {\n        if ((i.cur.wc_valid != false) &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pcVar7;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (i.cur.wc_valid != false)) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          i.cur.ptr = (char *)s_00;\n          if (pbVar13 <= s_00) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }" else (if_statement "if (cVar15 == '\x01') {\n        if ((i.cur.wc_valid != false) &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pcVar7;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (i.cur.wc_valid != false)) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          i.cur.ptr = (char *)s_00;\n          if (pbVar13 <= s_00) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }" if (parenthesized_expression "(cVar15 == '\x01')" ( (binary_expression "cVar15 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n        if ((i.cur.wc_valid != false) &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pcVar7;\n        }\n      }" { (if_statement "if ((i.cur.wc_valid != false) &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pcVar7;\n        }" if (parenthesized_expression "((i.cur.wc_valid != false) &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc), iVar4 != 0))" ( (binary_expression "(i.cur.wc_valid != false) &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc), iVar4 != 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 "(iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc), iVar4 != 0)" ( (comma_expression "iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc), iVar4 != 0" (assignment_expression "iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc)" identifier = (call_expression "(*(code *)PTR_iswspace_0005b4fc)(i.cur.wc)" (parenthesized_expression "(*(code *)PTR_iswspace_0005b4fc)" ( (pointer_expression "*(code *)PTR_iswspace_0005b4fc" * (cast_expression "(code *)PTR_iswspace_0005b4fc" ( (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 "iVar4 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          cVar15 = '\x02';\n          local_6c = pcVar7;\n        }" { (expression_statement "cVar15 = '\x02';" (assignment_expression "cVar15 = '\x02'" identifier = (char_literal "'\x02'" ' escape_sequence ')) ;) (expression_statement "local_6c = pcVar7;" (assignment_expression "local_6c = pcVar7" identifier = identifier) ;) })) }) (else_clause "else {\n        if ((cVar15 == '\x02') && (i.cur.wc_valid != false)) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          i.cur.ptr = (char *)s_00;\n          if (pbVar13 <= s_00) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }" else (compound_statement "{\n        if ((cVar15 == '\x02') && (i.cur.wc_valid != false)) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          i.cur.ptr = (char *)s_00;\n          if (pbVar13 <= s_00) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }" { (if_statement "if ((cVar15 == '\x02') && (i.cur.wc_valid != false)) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          i.cur.ptr = (char *)s_00;\n          if (pbVar13 <= s_00) break;\n          goto LAB_0002742c;\n        }" if (parenthesized_expression "((cVar15 == '\x02') && (i.cur.wc_valid != false))" ( (binary_expression "(cVar15 == '\x02') && (i.cur.wc_valid != false)" (parenthesized_expression "(cVar15 == '\x02')" ( (binary_expression "cVar15 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) && (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          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          i.cur.ptr = (char *)s_00;\n          if (pbVar13 <= s_00) break;\n          goto LAB_0002742c;\n        }" { (expression_statement "iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc);" (assignment_expression "iVar4 = (*(code *)PTR_iswspace_0005b4fc)(i.cur.wc)" identifier = (call_expression "(*(code *)PTR_iswspace_0005b4fc)(i.cur.wc)" (parenthesized_expression "(*(code *)PTR_iswspace_0005b4fc)" ( (pointer_expression "*(code *)PTR_iswspace_0005b4fc" * (cast_expression "(code *)PTR_iswspace_0005b4fc" ( (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 (iVar4 == 0) {\n            cVar15 = '\x01';\n          }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n            cVar15 = '\x01';\n          }" { (expression_statement "cVar15 = '\x01';" (assignment_expression "cVar15 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) })) (expression_statement "i.cur.ptr = (char *)s_00;" (assignment_expression "i.cur.ptr = (char *)s_00" (field_expression "i.cur.ptr" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = (cast_expression "(char *)s_00" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pbVar13 <= s_00) break;" if (parenthesized_expression "(pbVar13 <= s_00)" ( (binary_expression "pbVar13 <= s_00" identifier <= identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_0002742c;" goto statement_identifier ;) })) (expression_statement "cVar15 = '\x01';" (assignment_expression "cVar15 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) }))))) (expression_statement "i.cur.ptr = (char *)s_00;" (assignment_expression "i.cur.ptr = (char *)s_00" (field_expression "i.cur.ptr" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = (cast_expression "(char *)s_00" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(s_00 < pbVar13)" ( (binary_expression "s_00 < pbVar13" identifier < 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 *)s_00;" (assignment_expression "i.cur.ptr = (char *)s_00" (field_expression "i.cur.ptr" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = (cast_expression "(char *)s_00" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (cVar15 == '\x02') {\n      *local_6c = '\0';\n    }" if (parenthesized_expression "(cVar15 == '\x02')" ( (binary_expression "cVar15 == '\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 ')) ;) })) })) (goto_statement "goto LAB_000274d0;" goto statement_identifier ;) (labeled_statement "LAB_0002790c:\n  i.cur.bytes = 1;" 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 "(*(code *)PTR___assert_fail_0005b410)\n            (PTR_LAB_0005b128 + 0x7cf0,PTR_DAT_0005b2cc + -0x7c90,0xa9,PTR_DAT_0005b2cc + -0x7c80);" (call_expression "(*(code *)PTR___assert_fail_0005b410)\n            (PTR_LAB_0005b128 + 0x7cf0,PTR_DAT_0005b2cc + -0x7c90,0xa9,PTR_DAT_0005b2cc + -0x7c80)" (parenthesized_expression "(*(code *)PTR___assert_fail_0005b410)" ( (pointer_expression "*(code *)PTR___assert_fail_0005b410" * (cast_expression "(code *)PTR___assert_fail_0005b410" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_0005b128 + 0x7cf0,PTR_DAT_0005b2cc + -0x7c90,0xa9,PTR_DAT_0005b2cc + -0x7c80)" ( (binary_expression "PTR_LAB_0005b128 + 0x7cf0" identifier + number_literal) , (binary_expression "PTR_DAT_0005b2cc + -0x7c90" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0005b2cc + -0x7c80" identifier + number_literal) ))) ;) (labeled_statement "LAB_00027930:\n  puVar10 = PTR_DAT_0005b2cc + -0x7c90;" statement_identifier : (expression_statement "puVar10 = PTR_DAT_0005b2cc + -0x7c90;" (assignment_expression "puVar10 = PTR_DAT_0005b2cc + -0x7c90" identifier = (binary_expression "PTR_DAT_0005b2cc + -0x7c90" identifier + number_literal)) ;)) (expression_statement "puVar9 = PTR_LAB_0005b128 + 0x7cd8;" (assignment_expression "puVar9 = PTR_LAB_0005b128 + 0x7cd8" identifier = (binary_expression "PTR_LAB_0005b128 + 0x7cd8" identifier + number_literal)) ;) (expression_statement "puVar14 = PTR___assert_fail_0005b410;" (assignment_expression "puVar14 = PTR___assert_fail_0005b410" identifier = identifier) ;) (expression_statement "(*(code *)PTR___assert_fail_0005b410)(puVar9);" (call_expression "(*(code *)PTR___assert_fail_0005b410)(puVar9)" (parenthesized_expression "(*(code *)PTR___assert_fail_0005b410)" ( (pointer_expression "*(code *)PTR___assert_fail_0005b410" * (cast_expression "(code *)PTR___assert_fail_0005b410" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar9)" ( identifier ))) ;) (if_statement "if (puVar10 == (undefined *)0x0) {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }\n  else {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }" if (parenthesized_expression "(puVar10 == (undefined *)0x0)" ( (binary_expression "puVar10 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(puVar14 + 0x33ae8))();\n  }" { (expression_statement "(**(code **)(puVar14 + 0x33ae8))();" (call_expression "(**(code **)(puVar14 + 0x33ae8))()" (parenthesized_expression "(**(code **)(puVar14 + 0x33ae8))" ( (pointer_expression "**(code **)(puVar14 + 0x33ae8)" * (pointer_expression "*(code **)(puVar14 + 0x33ae8)" * (cast_expression "(code **)(puVar14 + 0x33ae8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x33ae8)" ( (binary_expression "puVar14 + 0x33ae8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }" else (compound_statement "{\n    (**(code **)(puVar14 + 0x33ae8))();\n  }" { (expression_statement "(**(code **)(puVar14 + 0x33ae8))();" (call_expression "(**(code **)(puVar14 + 0x33ae8))()" (parenthesized_expression "(**(code **)(puVar14 + 0x33ae8))" ( (pointer_expression "**(code **)(puVar14 + 0x33ae8)" * (pointer_expression "*(code **)(puVar14 + 0x33ae8)" * (cast_expression "(code **)(puVar14 + 0x33ae8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x33ae8)" ( (binary_expression "puVar14 + 0x33ae8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) (expression_statement "uVar6 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c4c,5);" (assignment_expression "uVar6 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c4c,5)" identifier = (call_expression "(**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c4c,5)" (parenthesized_expression "(**(code **)(puVar14 + 0x33c08))" ( (pointer_expression "**(code **)(puVar14 + 0x33c08)" * (pointer_expression "*(code **)(puVar14 + 0x33c08)" * (cast_expression "(code **)(puVar14 + 0x33c08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x33c08)" ( (binary_expression "puVar14 + 0x33c08" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar14 + 0x3396c) + -0x7c4c,5)" ( number_literal , (binary_expression "*(int *)(puVar14 + 0x3396c) + -0x7c4c" (pointer_expression "*(int *)(puVar14 + 0x3396c)" * (cast_expression "(int *)(puVar14 + 0x3396c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x3396c)" ( (binary_expression "puVar14 + 0x3396c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar14 + 0x33ae8))(puVar9,1,*(undefined4 *)(puVar14 + 0x33a10),uVar6,0x7e2);" (call_expression "(**(code **)(puVar14 + 0x33ae8))(puVar9,1,*(undefined4 *)(puVar14 + 0x33a10),uVar6,0x7e2)" (parenthesized_expression "(**(code **)(puVar14 + 0x33ae8))" ( (pointer_expression "**(code **)(puVar14 + 0x33ae8)" * (pointer_expression "*(code **)(puVar14 + 0x33ae8)" * (cast_expression "(code **)(puVar14 + 0x33ae8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x33ae8)" ( (binary_expression "puVar14 + 0x33ae8" identifier + number_literal) ))))) )) (argument_list "(puVar9,1,*(undefined4 *)(puVar14 + 0x33a10),uVar6,0x7e2)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(puVar14 + 0x33a10)" * (cast_expression "(undefined4 *)(puVar14 + 0x33a10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x33a10)" ( (binary_expression "puVar14 + 0x33a10" identifier + number_literal) )))) , identifier , number_literal ))) ;) (expression_statement "uVar6 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c48,5);" (assignment_expression "uVar6 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c48,5)" identifier = (call_expression "(**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c48,5)" (parenthesized_expression "(**(code **)(puVar14 + 0x33c08))" ( (pointer_expression "**(code **)(puVar14 + 0x33c08)" * (pointer_expression "*(code **)(puVar14 + 0x33c08)" * (cast_expression "(code **)(puVar14 + 0x33c08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x33c08)" ( (binary_expression "puVar14 + 0x33c08" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar14 + 0x3396c) + -0x7c48,5)" ( number_literal , (binary_expression "*(int *)(puVar14 + 0x3396c) + -0x7c48" (pointer_expression "*(int *)(puVar14 + 0x3396c)" * (cast_expression "(int *)(puVar14 + 0x3396c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x3396c)" ( (binary_expression "puVar14 + 0x3396c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar14 + 0x33c84))(uVar6,puVar9);" (call_expression "(**(code **)(puVar14 + 0x33c84))(uVar6,puVar9)" (parenthesized_expression "(**(code **)(puVar14 + 0x33c84))" ( (pointer_expression "**(code **)(puVar14 + 0x33c84)" * (pointer_expression "*(code **)(puVar14 + 0x33c84)" * (cast_expression "(code **)(puVar14 + 0x33c84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x33c84)" ( (binary_expression "puVar14 + 0x33c84" identifier + number_literal) ))))) )) (argument_list "(uVar6,puVar9)" ( identifier , identifier ))) ;) (if_statement "if (uStack_74 < 10) {\n                    /* WARNING: Could not recover jumptable at 0x00027a54. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pcVar7 = (char *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))();\n    return pcVar7;\n  }" if (parenthesized_expression "(uStack_74 < 10)" ( (binary_expression "uStack_74 < 10" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00027a54. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pcVar7 = (char *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))();\n    return pcVar7;\n  }" { comment comment (expression_statement "pcVar7 = (char *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))();" (assignment_expression "pcVar7 = (char *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))()" identifier = (cast_expression "(char *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))()" (parenthesized_expression "(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))" ( (pointer_expression "*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790)" * (cast_expression "(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790)" ( (binary_expression "puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790" (binary_expression "puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4)" * (cast_expression "(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4)" ( (binary_expression "*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4" (binary_expression "*(int *)(puVar14 + 0x3396c) + -0x7950" (pointer_expression "*(int *)(puVar14 + 0x3396c)" * (cast_expression "(int *)(puVar14 + 0x3396c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x3396c)" ( (binary_expression "puVar14 + 0x3396c" identifier + number_literal) )))) + number_literal) + (binary_expression "uStack_74 * 4" identifier * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pcVar7;" return identifier ;) })) (expression_statement "uVar6 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7a3c,5);" (assignment_expression "uVar6 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7a3c,5)" identifier = (call_expression "(**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7a3c,5)" (parenthesized_expression "(**(code **)(puVar14 + 0x33c08))" ( (pointer_expression "**(code **)(puVar14 + 0x33c08)" * (pointer_expression "*(code **)(puVar14 + 0x33c08)" * (cast_expression "(code **)(puVar14 + 0x33c08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x33c08)" ( (binary_expression "puVar14 + 0x33c08" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar14 + 0x3396c) + -0x7a3c,5)" ( number_literal , (binary_expression "*(int *)(puVar14 + 0x3396c) + -0x7a3c" (pointer_expression "*(int *)(puVar14 + 0x3396c)" * (cast_expression "(int *)(puVar14 + 0x3396c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x3396c)" ( (binary_expression "puVar14 + 0x3396c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "pcVar7 = (char *)(**(code **)(puVar14 + 0x33ae8))\n                             (puVar9,1,uVar6,__gp,_DAT_000630f4,uRam000630f8,uRam000630fc,\n                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110);" (assignment_expression "pcVar7 = (char *)(**(code **)(puVar14 + 0x33ae8))\n                             (puVar9,1,uVar6,__gp,_DAT_000630f4,uRam000630f8,uRam000630fc,\n                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110)" identifier = (cast_expression "(char *)(**(code **)(puVar14 + 0x33ae8))\n                             (puVar9,1,uVar6,__gp,_DAT_000630f4,uRam000630f8,uRam000630fc,\n                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar14 + 0x33ae8))\n                             (puVar9,1,uVar6,__gp,_DAT_000630f4,uRam000630f8,uRam000630fc,\n                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110)" (parenthesized_expression "(**(code **)(puVar14 + 0x33ae8))" ( (pointer_expression "**(code **)(puVar14 + 0x33ae8)" * (pointer_expression "*(code **)(puVar14 + 0x33ae8)" * (cast_expression "(code **)(puVar14 + 0x33ae8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x33ae8)" ( (binary_expression "puVar14 + 0x33ae8" identifier + number_literal) ))))) )) (argument_list "(puVar9,1,uVar6,__gp,_DAT_000630f4,uRam000630f8,uRam000630fc,\n                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110)" ( identifier , number_literal , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier ))))) ;) (return_statement "return pcVar7;" return identifier ;) (labeled_statement "LAB_000278dc:\n  i.cur.bytes = 1;" 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 "mbiter_multi_next(iter);" (call_expression "mbiter_multi_next(iter)" identifier (argument_list "(iter)" ( identifier ))) ;) (labeled_statement "LAB_00027638:\n  iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar11);" statement_identifier : (expression_statement "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar11);" (assignment_expression "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar11)" identifier = (call_expression "(*(code *)PTR_strlen_0005b4e4)(pbVar11)" (parenthesized_expression "(*(code *)PTR_strlen_0005b4e4)" ( (pointer_expression "*(code *)PTR_strlen_0005b4e4" * (cast_expression "(code *)PTR_strlen_0005b4e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar11)" ( identifier )))) ;)) (expression_statement "(*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar11,iVar4 + 1);" (call_expression "(*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar11,iVar4 + 1)" (parenthesized_expression "(*(code *)PTR_memmove_0005b5a4)" ( (pointer_expression "*(code *)PTR_memmove_0005b5a4" * (cast_expression "(code *)PTR_memmove_0005b5a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2,pbVar11,iVar4 + 1)" ( identifier , identifier , (binary_expression "iVar4 + 1" identifier + number_literal) ))) ;) (if_statement "if (how != 1) {\nLAB_00027668:\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    pbVar11 = pbVar2 + iVar4 + -1;\n    if (pbVar2 <= pbVar11) {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n      iVar4 = *piVar5;\n      do {\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar2 <= pbVar11);\n    }\n  }" if (parenthesized_expression "(how != 1)" ( (binary_expression "how != 1" identifier != number_literal) )) (compound_statement "{\nLAB_00027668:\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    pbVar11 = pbVar2 + iVar4 + -1;\n    if (pbVar2 <= pbVar11) {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n      iVar4 = *piVar5;\n      do {\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar2 <= pbVar11);\n    }\n  }" { (labeled_statement "LAB_00027668:\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);" statement_identifier : (expression_statement "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);" (assignment_expression "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2)" identifier = (call_expression "(*(code *)PTR_strlen_0005b4e4)(pbVar2)" (parenthesized_expression "(*(code *)PTR_strlen_0005b4e4)" ( (pointer_expression "*(code *)PTR_strlen_0005b4e4" * (cast_expression "(code *)PTR_strlen_0005b4e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2)" ( identifier )))) ;)) (expression_statement "pbVar11 = pbVar2 + iVar4 + -1;" (assignment_expression "pbVar11 = pbVar2 + iVar4 + -1" identifier = (binary_expression "pbVar2 + iVar4 + -1" (binary_expression "pbVar2 + iVar4" identifier + identifier) + number_literal)) ;) (if_statement "if (pbVar2 <= pbVar11) {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n      iVar4 = *piVar5;\n      do {\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar2 <= pbVar11);\n    }" if (parenthesized_expression "(pbVar2 <= pbVar11)" ( (binary_expression "pbVar2 <= pbVar11" identifier <= identifier) )) (compound_statement "{\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n      iVar4 = *piVar5;\n      do {\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar2 <= pbVar11);\n    }" { (expression_statement "piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_0005b40c)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0005b40c)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0005b40c)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0005b40c" * (cast_expression "(code *)PTR___ctype_b_loc_0005b40c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar4 = *piVar5;" (assignment_expression "iVar4 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (do_statement "do {\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar2 <= pbVar11);" do (compound_statement "{\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      }" { (if_statement "if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;" if (parenthesized_expression "((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0)" ( (binary_expression "(*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20)" ( (binary_expression "*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20" (pointer_expression "*(ushort *)(iVar4 + (uint)*pbVar11 * 2)" * (cast_expression "(ushort *)(iVar4 + (uint)*pbVar11 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + (uint)*pbVar11 * 2)" ( (binary_expression "iVar4 + (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 "(pbVar2 <= pbVar11)" ( (binary_expression "pbVar2 <= pbVar11" identifier <= identifier) )) ;) })) })) (labeled_statement "LAB_000274d0:\n  if (iVar1 == *(int *)puVar14) {\n    return (char *)pbVar2;\n  }" statement_identifier : (if_statement "if (iVar1 == *(int *)puVar14) {\n    return (char *)pbVar2;\n  }" if (parenthesized_expression "(iVar1 == *(int *)puVar14)" ( (binary_expression "iVar1 == *(int *)puVar14" identifier == (pointer_expression "*(int *)puVar14" * (cast_expression "(int *)puVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return (char *)pbVar2;\n  }" { (return_statement "return (char *)pbVar2;" return (cast_expression "(char *)pbVar2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ;) }))) (expression_statement "(*(code *)PTR___stack_chk_fail_0005b564)();" (call_expression "(*(code *)PTR___stack_chk_fail_0005b564)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0005b564)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0005b564" * (cast_expression "(code *)PTR___stack_chk_fail_0005b564" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_00027900:\n                    /* WARNING: Subroutine does not return */\n  xalloc_die();" statement_identifier : comment (expression_statement "xalloc_die();" (call_expression "xalloc_die()" identifier (argument_list "()" ( ))) ;)) })))
(translation_unit "byte * trim2(undefined4 param_1,int param_2)\n\n{\n  bool bVar1;\n  byte *pbVar2;\n  uint uVar3;\n  int iVar4;\n  int *piVar5;\n  int iVar6;\n  undefined4 uVar7;\n  undefined *puVar8;\n  undefined *puVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  undefined *puVar14;\n  char cVar15;\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  puVar14 = PTR___stack_chk_guard_0005b58c;\n  local_2c = *(int *)PTR___stack_chk_guard_0005b58c;\n  pbVar2 = (byte *)(*(code *)PTR_strdup_0005b598)();\n  if (pbVar2 == (byte *)0x0) goto LAB_00027900;\n  uVar3 = (*(code *)PTR___ctype_get_mb_cur_max_0005b534)();\n  pbVar11 = pbVar2;\n  if (uVar3 < 2) {\n    if (param_2 != 0) {\n      uVar3 = (uint)(char)*pbVar2;\n      if (uVar3 != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }\n      goto LAB_00027638;\n    }\n    goto LAB_00027668;\n  }\n  if (param_2 != 0) {\n    local_54 = pbVar2;\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    puVar8 = PTR_is_basic_table_0005b300;\n    pbVar10 = pbVar2 + iVar4;\n    local_60 = 0;\n    local_5c = 0;\n    bVar1 = false;\n    local_58 = 0;\n    pbVar13 = pbVar2;\n    if (pbVar2 < pbVar10) {\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);\n          iVar4 = local_48[0];\n          pbVar13 = local_54;\n          if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }\n          if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n        else {\n          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }\n        local_58 = 1;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4);\n        if (iVar4 == 0) break;\n        local_58 = 0;\n        pbVar13 = pbVar13 + local_50;\n        local_54 = pbVar13;\n      } while (pbVar13 < pbVar10);\n    }\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar13);\n    (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar13,iVar4 + 1);\n    if (param_2 == 1) goto LAB_000274d0;\n  }\n  local_54 = pbVar2;\n  iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n  puVar8 = PTR_is_basic_table_0005b300;\n  pbVar13 = pbVar2 + iVar4;\n  local_60 = 0;\n  local_5c = 0;\n  bVar1 = false;\n  local_58 = 0;\n  if (pbVar2 < pbVar13) {\n    cVar15 = '\0';\n    param_2 = 1;\n    pbVar10 = pbVar2;\nLAB_0002742c:\n    do {\n      local_58 = 0;\n      if (bVar1) {\nLAB_0002752c:\n        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);\n        pbVar12 = local_54;\n        if (local_50 == -1) {\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }\n        else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar10;\n        local_4c = '\x01';\n        pbVar10 = local_54 + 1;\n        pbVar12 = local_54;\n      }\n      local_58 = 1;\n      if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (local_4c != '\0') {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }\n      local_54 = pbVar10;\n    } while (pbVar10 < pbVar13);\n    local_58 = 0;\n    local_54 = pbVar10;\n    if (cVar15 == '\x02') {\n      *local_6c = 0;\n    }\n  }\n  goto LAB_000274d0;\nLAB_0002790c:\n  local_50 = 1;\n  (*(code *)PTR___assert_fail_0005b410)\n            (PTR_LAB_0005b128 + 0x7cf0,PTR_DAT_0005b2cc + -0x7c90,0xa9,PTR_DAT_0005b2cc + -0x7c80);\nLAB_00027930:\n  puVar9 = PTR_DAT_0005b2cc + -0x7c90;\n  puVar8 = PTR_LAB_0005b128 + 0x7cd8;\n  puVar14 = PTR___assert_fail_0005b410;\n  (*(code *)PTR___assert_fail_0005b410)(puVar8);\n  if (puVar9 == (undefined *)0x0) {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }\n  else {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }\n  uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c4c,5);\n  (**(code **)(puVar14 + 0x33ae8))(puVar8,1,*(undefined4 *)(puVar14 + 0x33a10),uVar7,0x7e2);\n  uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c48,5);\n  (**(code **)(puVar14 + 0x33c84))(uVar7,puVar8);\n  if (uStack_74 < 10) {\n                    \n                    \n    pbVar2 = (byte *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))();\n    return pbVar2;\n  }\n  uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7a3c,5);\n  pbVar2 = (byte *)(**(code **)(puVar14 + 0x33ae8))\n                             (puVar8,1,uVar7,__gp_1,_DAT_000630f4,uRam000630f8,uRam000630fc,\n                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110);\n  return pbVar2;\nLAB_000278dc:\n  local_50 = 1;\n  FUN_000272f0();\nLAB_00027638:\n  iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar11);\n  (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar11,iVar4 + 1);\n  if (param_2 != 1) {\nLAB_00027668:\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    pbVar11 = pbVar2 + iVar4 + -1;\n    if (pbVar2 <= pbVar11) {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n      iVar4 = *piVar5;\n      do {\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar2 <= pbVar11);\n    }\n  }\nLAB_000274d0:\n  if (local_2c == *(int *)puVar14) {\n    return pbVar2;\n  }\n  (*(code *)PTR___stack_chk_fail_0005b564)();\nLAB_00027900:\n                    \n  xalloc_die();\n}\n\n" (function_definition "byte * trim2(undefined4 param_1,int param_2)\n\n{\n  bool bVar1;\n  byte *pbVar2;\n  uint uVar3;\n  int iVar4;\n  int *piVar5;\n  int iVar6;\n  undefined4 uVar7;\n  undefined *puVar8;\n  undefined *puVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  undefined *puVar14;\n  char cVar15;\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  puVar14 = PTR___stack_chk_guard_0005b58c;\n  local_2c = *(int *)PTR___stack_chk_guard_0005b58c;\n  pbVar2 = (byte *)(*(code *)PTR_strdup_0005b598)();\n  if (pbVar2 == (byte *)0x0) goto LAB_00027900;\n  uVar3 = (*(code *)PTR___ctype_get_mb_cur_max_0005b534)();\n  pbVar11 = pbVar2;\n  if (uVar3 < 2) {\n    if (param_2 != 0) {\n      uVar3 = (uint)(char)*pbVar2;\n      if (uVar3 != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }\n      goto LAB_00027638;\n    }\n    goto LAB_00027668;\n  }\n  if (param_2 != 0) {\n    local_54 = pbVar2;\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    puVar8 = PTR_is_basic_table_0005b300;\n    pbVar10 = pbVar2 + iVar4;\n    local_60 = 0;\n    local_5c = 0;\n    bVar1 = false;\n    local_58 = 0;\n    pbVar13 = pbVar2;\n    if (pbVar2 < pbVar10) {\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);\n          iVar4 = local_48[0];\n          pbVar13 = local_54;\n          if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }\n          if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n        else {\n          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }\n        local_58 = 1;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4);\n        if (iVar4 == 0) break;\n        local_58 = 0;\n        pbVar13 = pbVar13 + local_50;\n        local_54 = pbVar13;\n      } while (pbVar13 < pbVar10);\n    }\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar13);\n    (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar13,iVar4 + 1);\n    if (param_2 == 1) goto LAB_000274d0;\n  }\n  local_54 = pbVar2;\n  iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n  puVar8 = PTR_is_basic_table_0005b300;\n  pbVar13 = pbVar2 + iVar4;\n  local_60 = 0;\n  local_5c = 0;\n  bVar1 = false;\n  local_58 = 0;\n  if (pbVar2 < pbVar13) {\n    cVar15 = '\0';\n    param_2 = 1;\n    pbVar10 = pbVar2;\nLAB_0002742c:\n    do {\n      local_58 = 0;\n      if (bVar1) {\nLAB_0002752c:\n        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);\n        pbVar12 = local_54;\n        if (local_50 == -1) {\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }\n        else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar10;\n        local_4c = '\x01';\n        pbVar10 = local_54 + 1;\n        pbVar12 = local_54;\n      }\n      local_58 = 1;\n      if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (local_4c != '\0') {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }\n      local_54 = pbVar10;\n    } while (pbVar10 < pbVar13);\n    local_58 = 0;\n    local_54 = pbVar10;\n    if (cVar15 == '\x02') {\n      *local_6c = 0;\n    }\n  }\n  goto LAB_000274d0;\nLAB_0002790c:\n  local_50 = 1;\n  (*(code *)PTR___assert_fail_0005b410)\n            (PTR_LAB_0005b128 + 0x7cf0,PTR_DAT_0005b2cc + -0x7c90,0xa9,PTR_DAT_0005b2cc + -0x7c80);\nLAB_00027930:\n  puVar9 = PTR_DAT_0005b2cc + -0x7c90;\n  puVar8 = PTR_LAB_0005b128 + 0x7cd8;\n  puVar14 = PTR___assert_fail_0005b410;\n  (*(code *)PTR___assert_fail_0005b410)(puVar8);\n  if (puVar9 == (undefined *)0x0) {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }\n  else {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }\n  uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c4c,5);\n  (**(code **)(puVar14 + 0x33ae8))(puVar8,1,*(undefined4 *)(puVar14 + 0x33a10),uVar7,0x7e2);\n  uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c48,5);\n  (**(code **)(puVar14 + 0x33c84))(uVar7,puVar8);\n  if (uStack_74 < 10) {\n                    \n                    \n    pbVar2 = (byte *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))();\n    return pbVar2;\n  }\n  uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7a3c,5);\n  pbVar2 = (byte *)(**(code **)(puVar14 + 0x33ae8))\n                             (puVar8,1,uVar7,__gp_1,_DAT_000630f4,uRam000630f8,uRam000630fc,\n                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110);\n  return pbVar2;\nLAB_000278dc:\n  local_50 = 1;\n  FUN_000272f0();\nLAB_00027638:\n  iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar11);\n  (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar11,iVar4 + 1);\n  if (param_2 != 1) {\nLAB_00027668:\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    pbVar11 = pbVar2 + iVar4 + -1;\n    if (pbVar2 <= pbVar11) {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n      iVar4 = *piVar5;\n      do {\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar2 <= pbVar11);\n    }\n  }\nLAB_000274d0:\n  if (local_2c == *(int *)puVar14) {\n    return pbVar2;\n  }\n  (*(code *)PTR___stack_chk_fail_0005b564)();\nLAB_00027900:\n                    \n  xalloc_die();\n}" type_identifier (pointer_declarator "* trim2(undefined4 param_1,int param_2)" * (function_declarator "trim2(undefined4 param_1,int param_2)" identifier (parameter_list "(undefined4 param_1,int param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) )))) (compound_statement "{\n  bool bVar1;\n  byte *pbVar2;\n  uint uVar3;\n  int iVar4;\n  int *piVar5;\n  int iVar6;\n  undefined4 uVar7;\n  undefined *puVar8;\n  undefined *puVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  undefined *puVar14;\n  char cVar15;\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  puVar14 = PTR___stack_chk_guard_0005b58c;\n  local_2c = *(int *)PTR___stack_chk_guard_0005b58c;\n  pbVar2 = (byte *)(*(code *)PTR_strdup_0005b598)();\n  if (pbVar2 == (byte *)0x0) goto LAB_00027900;\n  uVar3 = (*(code *)PTR___ctype_get_mb_cur_max_0005b534)();\n  pbVar11 = pbVar2;\n  if (uVar3 < 2) {\n    if (param_2 != 0) {\n      uVar3 = (uint)(char)*pbVar2;\n      if (uVar3 != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }\n      goto LAB_00027638;\n    }\n    goto LAB_00027668;\n  }\n  if (param_2 != 0) {\n    local_54 = pbVar2;\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    puVar8 = PTR_is_basic_table_0005b300;\n    pbVar10 = pbVar2 + iVar4;\n    local_60 = 0;\n    local_5c = 0;\n    bVar1 = false;\n    local_58 = 0;\n    pbVar13 = pbVar2;\n    if (pbVar2 < pbVar10) {\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);\n          iVar4 = local_48[0];\n          pbVar13 = local_54;\n          if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }\n          if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n        else {\n          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }\n        local_58 = 1;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4);\n        if (iVar4 == 0) break;\n        local_58 = 0;\n        pbVar13 = pbVar13 + local_50;\n        local_54 = pbVar13;\n      } while (pbVar13 < pbVar10);\n    }\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar13);\n    (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar13,iVar4 + 1);\n    if (param_2 == 1) goto LAB_000274d0;\n  }\n  local_54 = pbVar2;\n  iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n  puVar8 = PTR_is_basic_table_0005b300;\n  pbVar13 = pbVar2 + iVar4;\n  local_60 = 0;\n  local_5c = 0;\n  bVar1 = false;\n  local_58 = 0;\n  if (pbVar2 < pbVar13) {\n    cVar15 = '\0';\n    param_2 = 1;\n    pbVar10 = pbVar2;\nLAB_0002742c:\n    do {\n      local_58 = 0;\n      if (bVar1) {\nLAB_0002752c:\n        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);\n        pbVar12 = local_54;\n        if (local_50 == -1) {\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }\n        else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar10;\n        local_4c = '\x01';\n        pbVar10 = local_54 + 1;\n        pbVar12 = local_54;\n      }\n      local_58 = 1;\n      if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (local_4c != '\0') {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }\n      local_54 = pbVar10;\n    } while (pbVar10 < pbVar13);\n    local_58 = 0;\n    local_54 = pbVar10;\n    if (cVar15 == '\x02') {\n      *local_6c = 0;\n    }\n  }\n  goto LAB_000274d0;\nLAB_0002790c:\n  local_50 = 1;\n  (*(code *)PTR___assert_fail_0005b410)\n            (PTR_LAB_0005b128 + 0x7cf0,PTR_DAT_0005b2cc + -0x7c90,0xa9,PTR_DAT_0005b2cc + -0x7c80);\nLAB_00027930:\n  puVar9 = PTR_DAT_0005b2cc + -0x7c90;\n  puVar8 = PTR_LAB_0005b128 + 0x7cd8;\n  puVar14 = PTR___assert_fail_0005b410;\n  (*(code *)PTR___assert_fail_0005b410)(puVar8);\n  if (puVar9 == (undefined *)0x0) {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }\n  else {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }\n  uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c4c,5);\n  (**(code **)(puVar14 + 0x33ae8))(puVar8,1,*(undefined4 *)(puVar14 + 0x33a10),uVar7,0x7e2);\n  uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c48,5);\n  (**(code **)(puVar14 + 0x33c84))(uVar7,puVar8);\n  if (uStack_74 < 10) {\n                    \n                    \n    pbVar2 = (byte *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))();\n    return pbVar2;\n  }\n  uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7a3c,5);\n  pbVar2 = (byte *)(**(code **)(puVar14 + 0x33ae8))\n                             (puVar8,1,uVar7,__gp_1,_DAT_000630f4,uRam000630f8,uRam000630fc,\n                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110);\n  return pbVar2;\nLAB_000278dc:\n  local_50 = 1;\n  FUN_000272f0();\nLAB_00027638:\n  iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar11);\n  (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar11,iVar4 + 1);\n  if (param_2 != 1) {\nLAB_00027668:\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    pbVar11 = pbVar2 + iVar4 + -1;\n    if (pbVar2 <= pbVar11) {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n      iVar4 = *piVar5;\n      do {\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar2 <= pbVar11);\n    }\n  }\nLAB_000274d0:\n  if (local_2c == *(int *)puVar14) {\n    return pbVar2;\n  }\n  (*(code *)PTR___stack_chk_fail_0005b564)();\nLAB_00027900:\n                    \n  xalloc_die();\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "char cVar15;" primitive_type 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 "puVar14 = PTR___stack_chk_guard_0005b58c;" (assignment_expression "puVar14 = PTR___stack_chk_guard_0005b58c" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0005b58c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0005b58c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0005b58c" * (cast_expression "(int *)PTR___stack_chk_guard_0005b58c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar2 = (byte *)(*(code *)PTR_strdup_0005b598)();" (assignment_expression "pbVar2 = (byte *)(*(code *)PTR_strdup_0005b598)()" identifier = (cast_expression "(byte *)(*(code *)PTR_strdup_0005b598)()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strdup_0005b598)()" (parenthesized_expression "(*(code *)PTR_strdup_0005b598)" ( (pointer_expression "*(code *)PTR_strdup_0005b598" * (cast_expression "(code *)PTR_strdup_0005b598" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (if_statement "if (pbVar2 == (byte *)0x0) goto LAB_00027900;" if (parenthesized_expression "(pbVar2 == (byte *)0x0)" ( (binary_expression "pbVar2 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00027900;" goto statement_identifier ;)) (expression_statement "uVar3 = (*(code *)PTR___ctype_get_mb_cur_max_0005b534)();" (assignment_expression "uVar3 = (*(code *)PTR___ctype_get_mb_cur_max_0005b534)()" identifier = (call_expression "(*(code *)PTR___ctype_get_mb_cur_max_0005b534)()" (parenthesized_expression "(*(code *)PTR___ctype_get_mb_cur_max_0005b534)" ( (pointer_expression "*(code *)PTR___ctype_get_mb_cur_max_0005b534" * (cast_expression "(code *)PTR___ctype_get_mb_cur_max_0005b534" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "pbVar11 = pbVar2;" (assignment_expression "pbVar11 = pbVar2" identifier = identifier) ;) (if_statement "if (uVar3 < 2) {\n    if (param_2 != 0) {\n      uVar3 = (uint)(char)*pbVar2;\n      if (uVar3 != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }\n      goto LAB_00027638;\n    }\n    goto LAB_00027668;\n  }" if (parenthesized_expression "(uVar3 < 2)" ( (binary_expression "uVar3 < 2" identifier < number_literal) )) (compound_statement "{\n    if (param_2 != 0) {\n      uVar3 = (uint)(char)*pbVar2;\n      if (uVar3 != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }\n      goto LAB_00027638;\n    }\n    goto LAB_00027668;\n  }" { (if_statement "if (param_2 != 0) {\n      uVar3 = (uint)(char)*pbVar2;\n      if (uVar3 != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }\n      goto LAB_00027638;\n    }" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar3 = (uint)(char)*pbVar2;\n      if (uVar3 != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }\n      goto LAB_00027638;\n    }" { (expression_statement "uVar3 = (uint)(char)*pbVar2;" (assignment_expression "uVar3 = (uint)(char)*pbVar2" identifier = (binary_expression "(uint)(char)*pbVar2" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) * identifier)) ;) (if_statement "if (uVar3 != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }" { (expression_statement "piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_0005b40c)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0005b40c)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0005b40c)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0005b40c" * (cast_expression "(code *)PTR___ctype_b_loc_0005b40c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (do_statement "do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);" do (compound_statement "{\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        }" { (expression_statement "pbVar13 = pbVar11 + 1;" (assignment_expression "pbVar13 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (if_statement "if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;" if (parenthesized_expression "((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0)" ( (binary_expression "(*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20)" ( (binary_expression "*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20" (pointer_expression "*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2)" * (cast_expression "(ushort *)(*piVar5 + (uVar3 & 0xff) * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + (uVar3 & 0xff) * 2)" ( (binary_expression "*piVar5 + (uVar3 & 0xff) * 2" (pointer_expression "*piVar5" * identifier) + (binary_expression "(uVar3 & 0xff) * 2" (parenthesized_expression "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) )) * number_literal)) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar3 = (uint)(char)*pbVar13;" (assignment_expression "uVar3 = (uint)(char)*pbVar13" identifier = (binary_expression "(uint)(char)*pbVar13" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) * identifier)) ;) (expression_statement "pbVar11 = pbVar13;" (assignment_expression "pbVar11 = pbVar13" identifier = identifier) ;) }) while (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) ;) })) (goto_statement "goto LAB_00027638;" goto statement_identifier ;) })) (goto_statement "goto LAB_00027668;" goto statement_identifier ;) })) (if_statement "if (param_2 != 0) {\n    local_54 = pbVar2;\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    puVar8 = PTR_is_basic_table_0005b300;\n    pbVar10 = pbVar2 + iVar4;\n    local_60 = 0;\n    local_5c = 0;\n    bVar1 = false;\n    local_58 = 0;\n    pbVar13 = pbVar2;\n    if (pbVar2 < pbVar10) {\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);\n          iVar4 = local_48[0];\n          pbVar13 = local_54;\n          if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }\n          if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n        else {\n          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }\n        local_58 = 1;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4);\n        if (iVar4 == 0) break;\n        local_58 = 0;\n        pbVar13 = pbVar13 + local_50;\n        local_54 = pbVar13;\n      } while (pbVar13 < pbVar10);\n    }\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar13);\n    (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar13,iVar4 + 1);\n    if (param_2 == 1) goto LAB_000274d0;\n  }" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (compound_statement "{\n    local_54 = pbVar2;\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    puVar8 = PTR_is_basic_table_0005b300;\n    pbVar10 = pbVar2 + iVar4;\n    local_60 = 0;\n    local_5c = 0;\n    bVar1 = false;\n    local_58 = 0;\n    pbVar13 = pbVar2;\n    if (pbVar2 < pbVar10) {\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);\n          iVar4 = local_48[0];\n          pbVar13 = local_54;\n          if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }\n          if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n        else {\n          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }\n        local_58 = 1;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4);\n        if (iVar4 == 0) break;\n        local_58 = 0;\n        pbVar13 = pbVar13 + local_50;\n        local_54 = pbVar13;\n      } while (pbVar13 < pbVar10);\n    }\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar13);\n    (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar13,iVar4 + 1);\n    if (param_2 == 1) goto LAB_000274d0;\n  }" { (expression_statement "local_54 = pbVar2;" (assignment_expression "local_54 = pbVar2" identifier = identifier) ;) (expression_statement "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);" (assignment_expression "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2)" identifier = (call_expression "(*(code *)PTR_strlen_0005b4e4)(pbVar2)" (parenthesized_expression "(*(code *)PTR_strlen_0005b4e4)" ( (pointer_expression "*(code *)PTR_strlen_0005b4e4" * (cast_expression "(code *)PTR_strlen_0005b4e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2)" ( identifier )))) ;) (expression_statement "puVar8 = PTR_is_basic_table_0005b300;" (assignment_expression "puVar8 = PTR_is_basic_table_0005b300" identifier = identifier) ;) (expression_statement "pbVar10 = pbVar2 + iVar4;" (assignment_expression "pbVar10 = pbVar2 + iVar4" identifier = (binary_expression "pbVar2 + iVar4" identifier + identifier)) ;) (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 "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "pbVar13 = pbVar2;" (assignment_expression "pbVar13 = pbVar2" identifier = identifier) ;) (if_statement "if (pbVar2 < pbVar10) {\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);\n          iVar4 = local_48[0];\n          pbVar13 = local_54;\n          if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }\n          if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n        else {\n          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }\n        local_58 = 1;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4);\n        if (iVar4 == 0) break;\n        local_58 = 0;\n        pbVar13 = pbVar13 + local_50;\n        local_54 = pbVar13;\n      } while (pbVar13 < pbVar10);\n    }" if (parenthesized_expression "(pbVar2 < pbVar10)" ( (binary_expression "pbVar2 < pbVar10" identifier < identifier) )) (compound_statement "{\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);\n          iVar4 = local_48[0];\n          pbVar13 = local_54;\n          if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }\n          if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n        else {\n          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }\n        local_58 = 1;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4);\n        if (iVar4 == 0) break;\n        local_58 = 0;\n        pbVar13 = pbVar13 + local_50;\n        local_54 = pbVar13;\n      } while (pbVar13 < pbVar10);\n    }" { (do_statement "do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);\n          iVar4 = local_48[0];\n          pbVar13 = local_54;\n          if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }\n          if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n        else {\n          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }\n        local_58 = 1;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4);\n        if (iVar4 == 0) break;\n        local_58 = 0;\n        pbVar13 = pbVar13 + local_50;\n        local_54 = pbVar13;\n      } while (pbVar13 < pbVar10);" do (compound_statement "{\n        local_58 = 0;\n        if (bVar1) {\nLAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);\n          iVar4 = local_48[0];\n          pbVar13 = local_54;\n          if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }\n          if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n        else {\n          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }\n        local_58 = 1;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4);\n        if (iVar4 == 0) break;\n        local_58 = 0;\n        pbVar13 = pbVar13 + local_50;\n        local_54 = pbVar13;\n      }" { (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (if_statement "if (bVar1) {\nLAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);\n          iVar4 = local_48[0];\n          pbVar13 = local_54;\n          if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }\n          if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n        else {\n          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\nLAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);\n          iVar4 = local_48[0];\n          pbVar13 = local_54;\n          if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }\n          if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }" { (labeled_statement "LAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);" statement_identifier : (expression_statement "local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);" (assignment_expression "local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60)" identifier = (call_expression "rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60)" identifier (argument_list "(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60)" ( identifier , identifier , (binary_expression "(int)pbVar10 - (int)pbVar13" (cast_expression "(int)pbVar10" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier)) , (pointer_expression "&local_60" & identifier) )))) ;)) (expression_statement "iVar4 = local_48[0];" (assignment_expression "iVar4 = local_48[0]" identifier = (subscript_expression "local_48[0]" identifier [ number_literal ])) ;) (expression_statement "pbVar13 = local_54;" (assignment_expression "pbVar13 = local_54" identifier = identifier) ;) (if_statement "if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }" if (parenthesized_expression "(local_50 == -1)" ( (binary_expression "local_50 == -1" identifier == number_literal) )) (compound_statement "{\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }" { (expression_statement "local_4c = '\0';" (assignment_expression "local_4c = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;) (expression_statement "local_58 = 1;" (assignment_expression "local_58 = 1" identifier = number_literal) ;) (break_statement "break;" break ;) })) (if_statement "if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }" if (parenthesized_expression "(local_50 == -2)" ( (binary_expression "local_50 == -2" identifier == number_literal) )) (compound_statement "{\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }" { (expression_statement "local_4c = '\0';" (assignment_expression "local_4c = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_58 = 1;" (assignment_expression "local_58 = 1" identifier = number_literal) ;) (expression_statement "local_50 = (int)pbVar10 - (int)local_54;" (assignment_expression "local_50 = (int)pbVar10 - (int)local_54" identifier = (binary_expression "(int)pbVar10 - (int)local_54" (cast_expression "(int)pbVar10" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (break_statement "break;" break ;) })) (if_statement "if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\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) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }" { (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;) (if_statement "if (*local_54 != 0) goto LAB_0002790c;" if (parenthesized_expression "(*local_54 != 0)" ( (binary_expression "*local_54 != 0" (pointer_expression "*local_54" * identifier) != number_literal) )) (goto_statement "goto LAB_0002790c;" goto statement_identifier ;)) (if_statement "if (local_48[0] != 0) goto LAB_000278dc;" if (parenthesized_expression "(local_48[0] != 0)" ( (binary_expression "local_48[0] != 0" (subscript_expression "local_48[0]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_000278dc;" goto statement_identifier ;)) })) (expression_statement "local_4c = '\x01';" (assignment_expression "local_4c = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);" (assignment_expression "iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60)" identifier = (call_expression "(*(code *)PTR_mbsinit_0005b588)(&local_60)" (parenthesized_expression "(*(code *)PTR_mbsinit_0005b588)" ( (pointer_expression "*(code *)PTR_mbsinit_0005b588" * (cast_expression "(code *)PTR_mbsinit_0005b588" ( (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 *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }" else (compound_statement "{\n          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }" { (if_statement "if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }" if (parenthesized_expression "((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0)" ( (binary_expression "(*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0" (parenthesized_expression "(*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1)" ( (binary_expression "*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1" (binary_expression "*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f)" (pointer_expression "*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4)" * (cast_expression "(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + (uint)(*pbVar13 >> 5) * 4)" ( (binary_expression "puVar8 + (uint)(*pbVar13 >> 5) * 4" identifier + (binary_expression "(uint)(*pbVar13 >> 5) * 4" (call_expression "(uint)(*pbVar13 >> 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*pbVar13 >> 5)" ( (binary_expression "*pbVar13 >> 5" (pointer_expression "*pbVar13" * identifier) >> number_literal) ))) * number_literal)) )))) >> (parenthesized_expression "(*pbVar13 & 0x1f)" ( (binary_expression "*pbVar13 & 0x1f" (pointer_expression "*pbVar13" * identifier) & number_literal) ))) & number_literal) )) == number_literal) )) (compound_statement "{\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }" { (expression_statement "iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);" (assignment_expression "iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60)" identifier = (call_expression "(*(code *)PTR_mbsinit_0005b588)(&local_60)" (parenthesized_expression "(*(code *)PTR_mbsinit_0005b588)" ( (pointer_expression "*(code *)PTR_mbsinit_0005b588" * (cast_expression "(code *)PTR_mbsinit_0005b588" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_60)" ( (pointer_expression "&local_60" & identifier) )))) ;) (if_statement "if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n              bVar1 = true;\n              goto LAB_000277cc;\n            }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (goto_statement "goto LAB_000277cc;" goto statement_identifier ;) })) (goto_statement "goto LAB_00027930;" goto statement_identifier ;) })) (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;) (expression_statement "iVar4 = (int)(char)*pbVar13;" (assignment_expression "iVar4 = (int)(char)*pbVar13" identifier = (cast_expression "(int)(char)*pbVar13" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar13" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar13" * identifier)))) ;) (expression_statement "local_4c = '\x01';" (assignment_expression "local_4c = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "pbVar13 = local_54;" (assignment_expression "pbVar13 = local_54" identifier = identifier) ;) (expression_statement "local_48[0] = iVar4;" (assignment_expression "local_48[0] = iVar4" (subscript_expression "local_48[0]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "local_58 = 1;" (assignment_expression "local_58 = 1" identifier = number_literal) ;) (expression_statement "iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4);" (assignment_expression "iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4)" identifier = (call_expression "(*(code *)PTR_iswspace_0005b4fc)(iVar4)" (parenthesized_expression "(*(code *)PTR_iswspace_0005b4fc)" ( (pointer_expression "*(code *)PTR_iswspace_0005b4fc" * (cast_expression "(code *)PTR_iswspace_0005b4fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar4)" ( identifier )))) ;) (if_statement "if (iVar4 == 0) break;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "pbVar13 = pbVar13 + local_50;" (assignment_expression "pbVar13 = pbVar13 + local_50" identifier = (binary_expression "pbVar13 + local_50" identifier + identifier)) ;) (expression_statement "local_54 = pbVar13;" (assignment_expression "local_54 = pbVar13" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar13 < pbVar10)" ( (binary_expression "pbVar13 < pbVar10" identifier < identifier) )) ;) })) (expression_statement "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar13);" (assignment_expression "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar13)" identifier = (call_expression "(*(code *)PTR_strlen_0005b4e4)(pbVar13)" (parenthesized_expression "(*(code *)PTR_strlen_0005b4e4)" ( (pointer_expression "*(code *)PTR_strlen_0005b4e4" * (cast_expression "(code *)PTR_strlen_0005b4e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar13)" ( identifier )))) ;) (expression_statement "(*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar13,iVar4 + 1);" (call_expression "(*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar13,iVar4 + 1)" (parenthesized_expression "(*(code *)PTR_memmove_0005b5a4)" ( (pointer_expression "*(code *)PTR_memmove_0005b5a4" * (cast_expression "(code *)PTR_memmove_0005b5a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2,pbVar13,iVar4 + 1)" ( identifier , identifier , (binary_expression "iVar4 + 1" identifier + number_literal) ))) ;) (if_statement "if (param_2 == 1) goto LAB_000274d0;" if (parenthesized_expression "(param_2 == 1)" ( (binary_expression "param_2 == 1" identifier == number_literal) )) (goto_statement "goto LAB_000274d0;" goto statement_identifier ;)) })) (expression_statement "local_54 = pbVar2;" (assignment_expression "local_54 = pbVar2" identifier = identifier) ;) (expression_statement "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);" (assignment_expression "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2)" identifier = (call_expression "(*(code *)PTR_strlen_0005b4e4)(pbVar2)" (parenthesized_expression "(*(code *)PTR_strlen_0005b4e4)" ( (pointer_expression "*(code *)PTR_strlen_0005b4e4" * (cast_expression "(code *)PTR_strlen_0005b4e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2)" ( identifier )))) ;) (expression_statement "puVar8 = PTR_is_basic_table_0005b300;" (assignment_expression "puVar8 = PTR_is_basic_table_0005b300" identifier = identifier) ;) (expression_statement "pbVar13 = pbVar2 + iVar4;" (assignment_expression "pbVar13 = pbVar2 + iVar4" identifier = (binary_expression "pbVar2 + iVar4" identifier + identifier)) ;) (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 "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (if_statement "if (pbVar2 < pbVar13) {\n    cVar15 = '\0';\n    param_2 = 1;\n    pbVar10 = pbVar2;\nLAB_0002742c:\n    do {\n      local_58 = 0;\n      if (bVar1) {\nLAB_0002752c:\n        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);\n        pbVar12 = local_54;\n        if (local_50 == -1) {\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }\n        else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar10;\n        local_4c = '\x01';\n        pbVar10 = local_54 + 1;\n        pbVar12 = local_54;\n      }\n      local_58 = 1;\n      if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (local_4c != '\0') {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }\n      local_54 = pbVar10;\n    } while (pbVar10 < pbVar13);\n    local_58 = 0;\n    local_54 = pbVar10;\n    if (cVar15 == '\x02') {\n      *local_6c = 0;\n    }\n  }" if (parenthesized_expression "(pbVar2 < pbVar13)" ( (binary_expression "pbVar2 < pbVar13" identifier < identifier) )) (compound_statement "{\n    cVar15 = '\0';\n    param_2 = 1;\n    pbVar10 = pbVar2;\nLAB_0002742c:\n    do {\n      local_58 = 0;\n      if (bVar1) {\nLAB_0002752c:\n        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);\n        pbVar12 = local_54;\n        if (local_50 == -1) {\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }\n        else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar10;\n        local_4c = '\x01';\n        pbVar10 = local_54 + 1;\n        pbVar12 = local_54;\n      }\n      local_58 = 1;\n      if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (local_4c != '\0') {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }\n      local_54 = pbVar10;\n    } while (pbVar10 < pbVar13);\n    local_58 = 0;\n    local_54 = pbVar10;\n    if (cVar15 == '\x02') {\n      *local_6c = 0;\n    }\n  }" { (expression_statement "cVar15 = '\0';" (assignment_expression "cVar15 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "param_2 = 1;" (assignment_expression "param_2 = 1" identifier = number_literal) ;) (expression_statement "pbVar10 = pbVar2;" (assignment_expression "pbVar10 = pbVar2" identifier = identifier) ;) (labeled_statement "LAB_0002742c:\n    do {\n      local_58 = 0;\n      if (bVar1) {\nLAB_0002752c:\n        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);\n        pbVar12 = local_54;\n        if (local_50 == -1) {\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }\n        else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar10;\n        local_4c = '\x01';\n        pbVar10 = local_54 + 1;\n        pbVar12 = local_54;\n      }\n      local_58 = 1;\n      if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (local_4c != '\0') {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }\n      local_54 = pbVar10;\n    } while (pbVar10 < pbVar13);" statement_identifier : (do_statement "do {\n      local_58 = 0;\n      if (bVar1) {\nLAB_0002752c:\n        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);\n        pbVar12 = local_54;\n        if (local_50 == -1) {\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }\n        else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar10;\n        local_4c = '\x01';\n        pbVar10 = local_54 + 1;\n        pbVar12 = local_54;\n      }\n      local_58 = 1;\n      if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (local_4c != '\0') {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }\n      local_54 = pbVar10;\n    } while (pbVar10 < pbVar13);" do (compound_statement "{\n      local_58 = 0;\n      if (bVar1) {\nLAB_0002752c:\n        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);\n        pbVar12 = local_54;\n        if (local_50 == -1) {\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }\n        else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar10;\n        local_4c = '\x01';\n        pbVar10 = local_54 + 1;\n        pbVar12 = local_54;\n      }\n      local_58 = 1;\n      if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (local_4c != '\0') {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }\n      local_54 = pbVar10;\n    }" { (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (if_statement "if (bVar1) {\nLAB_0002752c:\n        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);\n        pbVar12 = local_54;\n        if (local_50 == -1) {\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }\n        else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar10;\n        local_4c = '\x01';\n        pbVar10 = local_54 + 1;\n        pbVar12 = local_54;\n      }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\nLAB_0002752c:\n        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);\n        pbVar12 = local_54;\n        if (local_50 == -1) {\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }\n        else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }\n      }" { (labeled_statement "LAB_0002752c:\n        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);" statement_identifier : (expression_statement "local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);" (assignment_expression "local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60)" identifier = (call_expression "rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60)" identifier (argument_list "(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60)" ( identifier , identifier , (binary_expression "(int)pbVar13 - (int)pbVar10" (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar10" ( (type_descriptor "int" primitive_type) ) identifier)) , (pointer_expression "&local_60" & identifier) )))) ;)) (expression_statement "pbVar12 = local_54;" (assignment_expression "pbVar12 = local_54" identifier = identifier) ;) (if_statement "if (local_50 == -1) {\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }\n        else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }" if (parenthesized_expression "(local_50 == -1)" ( (binary_expression "local_50 == -1" identifier == number_literal) )) (compound_statement "{\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }" { (expression_statement "local_4c = '\0';" (assignment_expression "local_4c = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pbVar10 = local_54 + 1;" (assignment_expression "pbVar10 = local_54 + 1" identifier = (binary_expression "local_54 + 1" identifier + number_literal)) ;) (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;) }) (else_clause "else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }" else (if_statement "if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }" if (parenthesized_expression "(local_50 == -2)" ( (binary_expression "local_50 == -2" identifier == number_literal) )) (compound_statement "{\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }" { (expression_statement "local_4c = '\0';" (assignment_expression "local_4c = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_50 = (int)pbVar13 - (int)local_54;" (assignment_expression "local_50 = (int)pbVar13 - (int)local_54" identifier = (binary_expression "(int)pbVar13 - (int)local_54" (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pbVar10 = pbVar13;" (assignment_expression "pbVar10 = pbVar13" identifier = identifier) ;) }) (else_clause "else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }" else (compound_statement "{\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }" { (if_statement "if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\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) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }" { (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;) (if_statement "if (*local_54 != 0) goto LAB_0002790c;" if (parenthesized_expression "(*local_54 != 0)" ( (binary_expression "*local_54 != 0" (pointer_expression "*local_54" * identifier) != number_literal) )) (goto_statement "goto LAB_0002790c;" goto statement_identifier ;)) (if_statement "if (local_48[0] != 0) goto LAB_000278dc;" if (parenthesized_expression "(local_48[0] != 0)" ( (binary_expression "local_48[0] != 0" (subscript_expression "local_48[0]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_000278dc;" goto statement_identifier ;)) })) (expression_statement "local_4c = '\x01';" (assignment_expression "local_4c = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "pbVar10 = local_54 + local_50;" (assignment_expression "pbVar10 = local_54 + local_50" identifier = (binary_expression "local_54 + local_50" identifier + identifier)) ;) (expression_statement "iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);" (assignment_expression "iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60)" identifier = (call_expression "(*(code *)PTR_mbsinit_0005b588)(&local_60)" (parenthesized_expression "(*(code *)PTR_mbsinit_0005b588)" ( (pointer_expression "*(code *)PTR_mbsinit_0005b588" * (cast_expression "(code *)PTR_mbsinit_0005b588" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_60)" ( (pointer_expression "&local_60" & identifier) )))) ;) (if_statement "if (iVar4 != 0) {\n            bVar1 = false;\n          }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 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 *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar10;\n        local_4c = '\x01';\n        pbVar10 = local_54 + 1;\n        pbVar12 = local_54;\n      }" else (compound_statement "{\n        if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar10;\n        local_4c = '\x01';\n        pbVar10 = local_54 + 1;\n        pbVar12 = local_54;\n      }" { (if_statement "if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }" if (parenthesized_expression "((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0)" ( (binary_expression "(*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0" (parenthesized_expression "(*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1)" ( (binary_expression "*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1" (binary_expression "*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f)" (pointer_expression "*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4)" * (cast_expression "(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + (uint)(*pbVar10 >> 5) * 4)" ( (binary_expression "puVar8 + (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          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }" { (expression_statement "iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);" (assignment_expression "iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60)" identifier = (call_expression "(*(code *)PTR_mbsinit_0005b588)(&local_60)" (parenthesized_expression "(*(code *)PTR_mbsinit_0005b588)" ( (pointer_expression "*(code *)PTR_mbsinit_0005b588" * (cast_expression "(code *)PTR_mbsinit_0005b588" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_60)" ( (pointer_expression "&local_60" & identifier) )))) ;) (if_statement "if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n            bVar1 = true;\n            goto LAB_0002752c;\n          }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (goto_statement "goto LAB_0002752c;" goto statement_identifier ;) })) (goto_statement "goto LAB_00027930;" goto statement_identifier ;) })) (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;) (expression_statement "local_48[0] = (int)(char)*pbVar10;" (assignment_expression "local_48[0] = (int)(char)*pbVar10" (subscript_expression "local_48[0]" identifier [ number_literal ]) = (cast_expression "(int)(char)*pbVar10" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar10" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar10" * identifier)))) ;) (expression_statement "local_4c = '\x01';" (assignment_expression "local_4c = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "pbVar10 = local_54 + 1;" (assignment_expression "pbVar10 = local_54 + 1" identifier = (binary_expression "local_54 + 1" identifier + number_literal)) ;) (expression_statement "pbVar12 = local_54;" (assignment_expression "pbVar12 = local_54" identifier = identifier) ;) }))) (expression_statement "local_58 = 1;" (assignment_expression "local_58 = 1" identifier = number_literal) ;) (if_statement "if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (local_4c != '\0') {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }" if (parenthesized_expression "(cVar15 == '\0')" ( (binary_expression "cVar15 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        cVar15 = '\x01';\n        if (local_4c != '\0') {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }\n      }" { (expression_statement "cVar15 = '\x01';" (assignment_expression "cVar15 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (if_statement "if (local_4c != '\0') {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }" if (parenthesized_expression "(local_4c != '\0')" ( (binary_expression "local_4c != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }" { (expression_statement "iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);" (assignment_expression "iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0])" identifier = (call_expression "(*(code *)PTR_iswspace_0005b4fc)(local_48[0])" (parenthesized_expression "(*(code *)PTR_iswspace_0005b4fc)" ( (pointer_expression "*(code *)PTR_iswspace_0005b4fc" * (cast_expression "(code *)PTR_iswspace_0005b4fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_48[0])" ( (subscript_expression "local_48[0]" identifier [ number_literal ]) )))) ;) (expression_statement "cVar15 = iVar4 == 0;" (assignment_expression "cVar15 = iVar4 == 0" identifier = (binary_expression "iVar4 == 0" identifier == number_literal)) ;) })) }) (else_clause "else if (cVar15 == '\x01') {\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }" else (if_statement "if (cVar15 == '\x01') {\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }" if (parenthesized_expression "(cVar15 == '\x01')" ( (binary_expression "cVar15 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }" { (if_statement "if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }" if (parenthesized_expression "((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0))" ( (binary_expression "(local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)" (parenthesized_expression "(local_4c != '\0')" ( (binary_expression "local_4c != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)" ( (comma_expression "iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0" (assignment_expression "iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0])" identifier = (call_expression "(*(code *)PTR_iswspace_0005b4fc)(local_48[0])" (parenthesized_expression "(*(code *)PTR_iswspace_0005b4fc)" ( (pointer_expression "*(code *)PTR_iswspace_0005b4fc" * (cast_expression "(code *)PTR_iswspace_0005b4fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_48[0])" ( (subscript_expression "local_48[0]" identifier [ number_literal ]) )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }" { (expression_statement "cVar15 = '\x02';" (assignment_expression "cVar15 = '\x02'" identifier = (char_literal "'\x02'" ' escape_sequence ')) ;) (expression_statement "local_6c = pbVar12;" (assignment_expression "local_6c = pbVar12" identifier = identifier) ;) })) }) (else_clause "else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }" else (compound_statement "{\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }" { (if_statement "if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }" if (parenthesized_expression "((cVar15 == '\x02') && (local_4c != '\0'))" ( (binary_expression "(cVar15 == '\x02') && (local_4c != '\0')" (parenthesized_expression "(cVar15 == '\x02')" ( (binary_expression "cVar15 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) && (parenthesized_expression "(local_4c != '\0')" ( (binary_expression "local_4c != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }" { (expression_statement "iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);" (assignment_expression "iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0])" identifier = (call_expression "(*(code *)PTR_iswspace_0005b4fc)(local_48[0])" (parenthesized_expression "(*(code *)PTR_iswspace_0005b4fc)" ( (pointer_expression "*(code *)PTR_iswspace_0005b4fc" * (cast_expression "(code *)PTR_iswspace_0005b4fc" ( (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 (iVar4 == 0) {\n            cVar15 = '\x01';\n          }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n            cVar15 = '\x01';\n          }" { (expression_statement "cVar15 = '\x01';" (assignment_expression "cVar15 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) })) (expression_statement "local_54 = pbVar10;" (assignment_expression "local_54 = pbVar10" identifier = identifier) ;) (if_statement "if (pbVar13 <= pbVar10) break;" if (parenthesized_expression "(pbVar13 <= pbVar10)" ( (binary_expression "pbVar13 <= pbVar10" identifier <= identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_0002742c;" goto statement_identifier ;) })) (expression_statement "cVar15 = '\x01';" (assignment_expression "cVar15 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) }))))) (expression_statement "local_54 = pbVar10;" (assignment_expression "local_54 = pbVar10" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar10 < pbVar13)" ( (binary_expression "pbVar10 < pbVar13" identifier < identifier) )) ;)) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_54 = pbVar10;" (assignment_expression "local_54 = pbVar10" identifier = identifier) ;) (if_statement "if (cVar15 == '\x02') {\n      *local_6c = 0;\n    }" if (parenthesized_expression "(cVar15 == '\x02')" ( (binary_expression "cVar15 == '\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) ;) })) })) (goto_statement "goto LAB_000274d0;" goto statement_identifier ;) (labeled_statement "LAB_0002790c:\n  local_50 = 1;" statement_identifier : (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;)) (expression_statement "(*(code *)PTR___assert_fail_0005b410)\n            (PTR_LAB_0005b128 + 0x7cf0,PTR_DAT_0005b2cc + -0x7c90,0xa9,PTR_DAT_0005b2cc + -0x7c80);" (call_expression "(*(code *)PTR___assert_fail_0005b410)\n            (PTR_LAB_0005b128 + 0x7cf0,PTR_DAT_0005b2cc + -0x7c90,0xa9,PTR_DAT_0005b2cc + -0x7c80)" (parenthesized_expression "(*(code *)PTR___assert_fail_0005b410)" ( (pointer_expression "*(code *)PTR___assert_fail_0005b410" * (cast_expression "(code *)PTR___assert_fail_0005b410" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_0005b128 + 0x7cf0,PTR_DAT_0005b2cc + -0x7c90,0xa9,PTR_DAT_0005b2cc + -0x7c80)" ( (binary_expression "PTR_LAB_0005b128 + 0x7cf0" identifier + number_literal) , (binary_expression "PTR_DAT_0005b2cc + -0x7c90" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0005b2cc + -0x7c80" identifier + number_literal) ))) ;) (labeled_statement "LAB_00027930:\n  puVar9 = PTR_DAT_0005b2cc + -0x7c90;" statement_identifier : (expression_statement "puVar9 = PTR_DAT_0005b2cc + -0x7c90;" (assignment_expression "puVar9 = PTR_DAT_0005b2cc + -0x7c90" identifier = (binary_expression "PTR_DAT_0005b2cc + -0x7c90" identifier + number_literal)) ;)) (expression_statement "puVar8 = PTR_LAB_0005b128 + 0x7cd8;" (assignment_expression "puVar8 = PTR_LAB_0005b128 + 0x7cd8" identifier = (binary_expression "PTR_LAB_0005b128 + 0x7cd8" identifier + number_literal)) ;) (expression_statement "puVar14 = PTR___assert_fail_0005b410;" (assignment_expression "puVar14 = PTR___assert_fail_0005b410" identifier = identifier) ;) (expression_statement "(*(code *)PTR___assert_fail_0005b410)(puVar8);" (call_expression "(*(code *)PTR___assert_fail_0005b410)(puVar8)" (parenthesized_expression "(*(code *)PTR___assert_fail_0005b410)" ( (pointer_expression "*(code *)PTR___assert_fail_0005b410" * (cast_expression "(code *)PTR___assert_fail_0005b410" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))) ;) (if_statement "if (puVar9 == (undefined *)0x0) {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }\n  else {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }" if (parenthesized_expression "(puVar9 == (undefined *)0x0)" ( (binary_expression "puVar9 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(puVar14 + 0x33ae8))();\n  }" { (expression_statement "(**(code **)(puVar14 + 0x33ae8))();" (call_expression "(**(code **)(puVar14 + 0x33ae8))()" (parenthesized_expression "(**(code **)(puVar14 + 0x33ae8))" ( (pointer_expression "**(code **)(puVar14 + 0x33ae8)" * (pointer_expression "*(code **)(puVar14 + 0x33ae8)" * (cast_expression "(code **)(puVar14 + 0x33ae8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x33ae8)" ( (binary_expression "puVar14 + 0x33ae8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }" else (compound_statement "{\n    (**(code **)(puVar14 + 0x33ae8))();\n  }" { (expression_statement "(**(code **)(puVar14 + 0x33ae8))();" (call_expression "(**(code **)(puVar14 + 0x33ae8))()" (parenthesized_expression "(**(code **)(puVar14 + 0x33ae8))" ( (pointer_expression "**(code **)(puVar14 + 0x33ae8)" * (pointer_expression "*(code **)(puVar14 + 0x33ae8)" * (cast_expression "(code **)(puVar14 + 0x33ae8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x33ae8)" ( (binary_expression "puVar14 + 0x33ae8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) (expression_statement "uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c4c,5);" (assignment_expression "uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c4c,5)" identifier = (call_expression "(**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c4c,5)" (parenthesized_expression "(**(code **)(puVar14 + 0x33c08))" ( (pointer_expression "**(code **)(puVar14 + 0x33c08)" * (pointer_expression "*(code **)(puVar14 + 0x33c08)" * (cast_expression "(code **)(puVar14 + 0x33c08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x33c08)" ( (binary_expression "puVar14 + 0x33c08" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar14 + 0x3396c) + -0x7c4c,5)" ( number_literal , (binary_expression "*(int *)(puVar14 + 0x3396c) + -0x7c4c" (pointer_expression "*(int *)(puVar14 + 0x3396c)" * (cast_expression "(int *)(puVar14 + 0x3396c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x3396c)" ( (binary_expression "puVar14 + 0x3396c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar14 + 0x33ae8))(puVar8,1,*(undefined4 *)(puVar14 + 0x33a10),uVar7,0x7e2);" (call_expression "(**(code **)(puVar14 + 0x33ae8))(puVar8,1,*(undefined4 *)(puVar14 + 0x33a10),uVar7,0x7e2)" (parenthesized_expression "(**(code **)(puVar14 + 0x33ae8))" ( (pointer_expression "**(code **)(puVar14 + 0x33ae8)" * (pointer_expression "*(code **)(puVar14 + 0x33ae8)" * (cast_expression "(code **)(puVar14 + 0x33ae8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x33ae8)" ( (binary_expression "puVar14 + 0x33ae8" identifier + number_literal) ))))) )) (argument_list "(puVar8,1,*(undefined4 *)(puVar14 + 0x33a10),uVar7,0x7e2)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(puVar14 + 0x33a10)" * (cast_expression "(undefined4 *)(puVar14 + 0x33a10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x33a10)" ( (binary_expression "puVar14 + 0x33a10" identifier + number_literal) )))) , identifier , number_literal ))) ;) (expression_statement "uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c48,5);" (assignment_expression "uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c48,5)" identifier = (call_expression "(**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c48,5)" (parenthesized_expression "(**(code **)(puVar14 + 0x33c08))" ( (pointer_expression "**(code **)(puVar14 + 0x33c08)" * (pointer_expression "*(code **)(puVar14 + 0x33c08)" * (cast_expression "(code **)(puVar14 + 0x33c08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x33c08)" ( (binary_expression "puVar14 + 0x33c08" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar14 + 0x3396c) + -0x7c48,5)" ( number_literal , (binary_expression "*(int *)(puVar14 + 0x3396c) + -0x7c48" (pointer_expression "*(int *)(puVar14 + 0x3396c)" * (cast_expression "(int *)(puVar14 + 0x3396c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x3396c)" ( (binary_expression "puVar14 + 0x3396c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar14 + 0x33c84))(uVar7,puVar8);" (call_expression "(**(code **)(puVar14 + 0x33c84))(uVar7,puVar8)" (parenthesized_expression "(**(code **)(puVar14 + 0x33c84))" ( (pointer_expression "**(code **)(puVar14 + 0x33c84)" * (pointer_expression "*(code **)(puVar14 + 0x33c84)" * (cast_expression "(code **)(puVar14 + 0x33c84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x33c84)" ( (binary_expression "puVar14 + 0x33c84" identifier + number_literal) ))))) )) (argument_list "(uVar7,puVar8)" ( identifier , identifier ))) ;) (if_statement "if (uStack_74 < 10) {\n                    \n                    \n    pbVar2 = (byte *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))();\n    return pbVar2;\n  }" if (parenthesized_expression "(uStack_74 < 10)" ( (binary_expression "uStack_74 < 10" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n    pbVar2 = (byte *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))();\n    return pbVar2;\n  }" { (expression_statement "pbVar2 = (byte *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))();" (assignment_expression "pbVar2 = (byte *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))()" identifier = (cast_expression "(byte *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))()" (parenthesized_expression "(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))" ( (pointer_expression "*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790)" * (cast_expression "(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790)" ( (binary_expression "puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790" (binary_expression "puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4)" * (cast_expression "(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4)" ( (binary_expression "*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4" (binary_expression "*(int *)(puVar14 + 0x3396c) + -0x7950" (pointer_expression "*(int *)(puVar14 + 0x3396c)" * (cast_expression "(int *)(puVar14 + 0x3396c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x3396c)" ( (binary_expression "puVar14 + 0x3396c" identifier + number_literal) )))) + number_literal) + (binary_expression "uStack_74 * 4" identifier * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pbVar2;" return identifier ;) })) (expression_statement "uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7a3c,5);" (assignment_expression "uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7a3c,5)" identifier = (call_expression "(**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7a3c,5)" (parenthesized_expression "(**(code **)(puVar14 + 0x33c08))" ( (pointer_expression "**(code **)(puVar14 + 0x33c08)" * (pointer_expression "*(code **)(puVar14 + 0x33c08)" * (cast_expression "(code **)(puVar14 + 0x33c08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x33c08)" ( (binary_expression "puVar14 + 0x33c08" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar14 + 0x3396c) + -0x7a3c,5)" ( number_literal , (binary_expression "*(int *)(puVar14 + 0x3396c) + -0x7a3c" (pointer_expression "*(int *)(puVar14 + 0x3396c)" * (cast_expression "(int *)(puVar14 + 0x3396c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x3396c)" ( (binary_expression "puVar14 + 0x3396c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "pbVar2 = (byte *)(**(code **)(puVar14 + 0x33ae8))\n                             (puVar8,1,uVar7,__gp_1,_DAT_000630f4,uRam000630f8,uRam000630fc,\n                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110);" (assignment_expression "pbVar2 = (byte *)(**(code **)(puVar14 + 0x33ae8))\n                             (puVar8,1,uVar7,__gp_1,_DAT_000630f4,uRam000630f8,uRam000630fc,\n                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110)" identifier = (cast_expression "(byte *)(**(code **)(puVar14 + 0x33ae8))\n                             (puVar8,1,uVar7,__gp_1,_DAT_000630f4,uRam000630f8,uRam000630fc,\n                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar14 + 0x33ae8))\n                             (puVar8,1,uVar7,__gp_1,_DAT_000630f4,uRam000630f8,uRam000630fc,\n                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110)" (parenthesized_expression "(**(code **)(puVar14 + 0x33ae8))" ( (pointer_expression "**(code **)(puVar14 + 0x33ae8)" * (pointer_expression "*(code **)(puVar14 + 0x33ae8)" * (cast_expression "(code **)(puVar14 + 0x33ae8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x33ae8)" ( (binary_expression "puVar14 + 0x33ae8" identifier + number_literal) ))))) )) (argument_list "(puVar8,1,uVar7,__gp_1,_DAT_000630f4,uRam000630f8,uRam000630fc,\n                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110)" ( identifier , number_literal , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier ))))) ;) (return_statement "return pbVar2;" return identifier ;) (labeled_statement "LAB_000278dc:\n  local_50 = 1;" statement_identifier : (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;)) (expression_statement "FUN_000272f0();" (call_expression "FUN_000272f0()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_00027638:\n  iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar11);" statement_identifier : (expression_statement "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar11);" (assignment_expression "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar11)" identifier = (call_expression "(*(code *)PTR_strlen_0005b4e4)(pbVar11)" (parenthesized_expression "(*(code *)PTR_strlen_0005b4e4)" ( (pointer_expression "*(code *)PTR_strlen_0005b4e4" * (cast_expression "(code *)PTR_strlen_0005b4e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar11)" ( identifier )))) ;)) (expression_statement "(*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar11,iVar4 + 1);" (call_expression "(*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar11,iVar4 + 1)" (parenthesized_expression "(*(code *)PTR_memmove_0005b5a4)" ( (pointer_expression "*(code *)PTR_memmove_0005b5a4" * (cast_expression "(code *)PTR_memmove_0005b5a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2,pbVar11,iVar4 + 1)" ( identifier , identifier , (binary_expression "iVar4 + 1" identifier + number_literal) ))) ;) (if_statement "if (param_2 != 1) {\nLAB_00027668:\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    pbVar11 = pbVar2 + iVar4 + -1;\n    if (pbVar2 <= pbVar11) {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n      iVar4 = *piVar5;\n      do {\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar2 <= pbVar11);\n    }\n  }" if (parenthesized_expression "(param_2 != 1)" ( (binary_expression "param_2 != 1" identifier != number_literal) )) (compound_statement "{\nLAB_00027668:\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    pbVar11 = pbVar2 + iVar4 + -1;\n    if (pbVar2 <= pbVar11) {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n      iVar4 = *piVar5;\n      do {\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar2 <= pbVar11);\n    }\n  }" { (labeled_statement "LAB_00027668:\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);" statement_identifier : (expression_statement "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);" (assignment_expression "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2)" identifier = (call_expression "(*(code *)PTR_strlen_0005b4e4)(pbVar2)" (parenthesized_expression "(*(code *)PTR_strlen_0005b4e4)" ( (pointer_expression "*(code *)PTR_strlen_0005b4e4" * (cast_expression "(code *)PTR_strlen_0005b4e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2)" ( identifier )))) ;)) (expression_statement "pbVar11 = pbVar2 + iVar4 + -1;" (assignment_expression "pbVar11 = pbVar2 + iVar4 + -1" identifier = (binary_expression "pbVar2 + iVar4 + -1" (binary_expression "pbVar2 + iVar4" identifier + identifier) + number_literal)) ;) (if_statement "if (pbVar2 <= pbVar11) {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n      iVar4 = *piVar5;\n      do {\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar2 <= pbVar11);\n    }" if (parenthesized_expression "(pbVar2 <= pbVar11)" ( (binary_expression "pbVar2 <= pbVar11" identifier <= identifier) )) (compound_statement "{\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n      iVar4 = *piVar5;\n      do {\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar2 <= pbVar11);\n    }" { (expression_statement "piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_0005b40c)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0005b40c)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0005b40c)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0005b40c" * (cast_expression "(code *)PTR___ctype_b_loc_0005b40c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar4 = *piVar5;" (assignment_expression "iVar4 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (do_statement "do {\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar2 <= pbVar11);" do (compound_statement "{\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      }" { (if_statement "if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;" if (parenthesized_expression "((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0)" ( (binary_expression "(*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20)" ( (binary_expression "*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20" (pointer_expression "*(ushort *)(iVar4 + (uint)*pbVar11 * 2)" * (cast_expression "(ushort *)(iVar4 + (uint)*pbVar11 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + (uint)*pbVar11 * 2)" ( (binary_expression "iVar4 + (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 "(pbVar2 <= pbVar11)" ( (binary_expression "pbVar2 <= pbVar11" identifier <= identifier) )) ;) })) })) (labeled_statement "LAB_000274d0:\n  if (local_2c == *(int *)puVar14) {\n    return pbVar2;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar14) {\n    return pbVar2;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar14)" ( (binary_expression "local_2c == *(int *)puVar14" identifier == (pointer_expression "*(int *)puVar14" * (cast_expression "(int *)puVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return pbVar2;\n  }" { (return_statement "return pbVar2;" return identifier ;) }))) (expression_statement "(*(code *)PTR___stack_chk_fail_0005b564)();" (call_expression "(*(code *)PTR___stack_chk_fail_0005b564)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0005b564)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0005b564" * (cast_expression "(code *)PTR___stack_chk_fail_0005b564" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_00027900:\n                    \n  xalloc_die();" statement_identifier : (expression_statement "xalloc_die();" (call_expression "xalloc_die()" identifier (argument_list "()" ( ))) ;)) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (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 *)) ) IDENT)) )) (argument_list ( ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) * LIT)) )))) & LIT) )) == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (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)) , (pointer_expression & IDENT) )))) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;) })) (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 = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (break_statement break ;) })) (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) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (goto_statement goto statement_identifier ;)) })) (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 = BOOL) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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 = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (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 = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (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)) , (pointer_expression & IDENT) )))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (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 = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (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) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (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 = BOOL) ;) (goto_statement goto statement_identifier ;) })) (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 = (binary_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 = (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 (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)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) (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) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (break_statement break ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) }))))) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_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) ;) })) })) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 ))) ;) (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 ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (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) )) ;) })) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) })))
(function_definition "byte * trim2(undefined4 param_1,int param_2)\n\n{\n  bool bVar1;\n  byte *pbVar2;\n  uint uVar3;\n  int iVar4;\n  int *piVar5;\n  int iVar6;\n  undefined4 uVar7;\n  undefined *puVar8;\n  undefined *puVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  undefined *puVar14;\n  char cVar15;\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  puVar14 = PTR___stack_chk_guard_0005b58c;\n  local_2c = *(int *)PTR___stack_chk_guard_0005b58c;\n  pbVar2 = (byte *)(*(code *)PTR_strdup_0005b598)();\n  if (pbVar2 == (byte *)0x0) goto LAB_00027900;\n  uVar3 = (*(code *)PTR___ctype_get_mb_cur_max_0005b534)();\n  pbVar11 = pbVar2;\n  if (uVar3 < 2) {\n    if (param_2 != 0) {\n      uVar3 = (uint)(char)*pbVar2;\n      if (uVar3 != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }\n      goto LAB_00027638;\n    }\n    goto LAB_00027668;\n  }\n  if (param_2 != 0) {\n    local_54 = pbVar2;\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    puVar8 = PTR_is_basic_table_0005b300;\n    pbVar10 = pbVar2 + iVar4;\n    local_60 = 0;\n    local_5c = 0;\n    bVar1 = false;\n    local_58 = 0;\n    pbVar13 = pbVar2;\n    if (pbVar2 < pbVar10) {\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);\n          iVar4 = local_48[0];\n          pbVar13 = local_54;\n          if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }\n          if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n        else {\n          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }\n        local_58 = 1;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4);\n        if (iVar4 == 0) break;\n        local_58 = 0;\n        pbVar13 = pbVar13 + local_50;\n        local_54 = pbVar13;\n      } while (pbVar13 < pbVar10);\n    }\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar13);\n    (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar13,iVar4 + 1);\n    if (param_2 == 1) goto LAB_000274d0;\n  }\n  local_54 = pbVar2;\n  iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n  puVar8 = PTR_is_basic_table_0005b300;\n  pbVar13 = pbVar2 + iVar4;\n  local_60 = 0;\n  local_5c = 0;\n  bVar1 = false;\n  local_58 = 0;\n  if (pbVar2 < pbVar13) {\n    cVar15 = '\0';\n    param_2 = 1;\n    pbVar10 = pbVar2;\nLAB_0002742c:\n    do {\n      local_58 = 0;\n      if (bVar1) {\nLAB_0002752c:\n        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);\n        pbVar12 = local_54;\n        if (local_50 == -1) {\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }\n        else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar10;\n        local_4c = '\x01';\n        pbVar10 = local_54 + 1;\n        pbVar12 = local_54;\n      }\n      local_58 = 1;\n      if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (local_4c != '\0') {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }\n      local_54 = pbVar10;\n    } while (pbVar10 < pbVar13);\n    local_58 = 0;\n    local_54 = pbVar10;\n    if (cVar15 == '\x02') {\n      *local_6c = 0;\n    }\n  }\n  goto LAB_000274d0;\nLAB_0002790c:\n  local_50 = 1;\n  (*(code *)PTR___assert_fail_0005b410)\n            (PTR_LAB_0005b128 + 0x7cf0,PTR_DAT_0005b2cc + -0x7c90,0xa9,PTR_DAT_0005b2cc + -0x7c80);\nLAB_00027930:\n  puVar9 = PTR_DAT_0005b2cc + -0x7c90;\n  puVar8 = PTR_LAB_0005b128 + 0x7cd8;\n  puVar14 = PTR___assert_fail_0005b410;\n  (*(code *)PTR___assert_fail_0005b410)(puVar8);\n  if (puVar9 == (undefined *)0x0) {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }\n  else {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }\n  uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c4c,5);\n  (**(code **)(puVar14 + 0x33ae8))(puVar8,1,*(undefined4 *)(puVar14 + 0x33a10),uVar7,0x7e2);\n  uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c48,5);\n  (**(code **)(puVar14 + 0x33c84))(uVar7,puVar8);\n  if (uStack_74 < 10) {\n                    \n                    \n    pbVar2 = (byte *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))();\n    return pbVar2;\n  }\n  uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7a3c,5);\n  pbVar2 = (byte *)(**(code **)(puVar14 + 0x33ae8))\n                             (puVar8,1,uVar7,__gp_1,_DAT_000630f4,uRam000630f8,uRam000630fc,\n                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110);\n  return pbVar2;\nLAB_000278dc:\n  local_50 = 1;\n  FUN_000272f0();\nLAB_00027638:\n  iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar11);\n  (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar11,iVar4 + 1);\n  if (param_2 != 1) {\nLAB_00027668:\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    pbVar11 = pbVar2 + iVar4 + -1;\n    if (pbVar2 <= pbVar11) {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n      iVar4 = *piVar5;\n      do {\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar2 <= pbVar11);\n    }\n  }\nLAB_000274d0:\n  if (local_2c == *(int *)puVar14) {\n    return pbVar2;\n  }\n  (*(code *)PTR___stack_chk_fail_0005b564)();\nLAB_00027900:\n                    \n  xalloc_die();\n}" (type_identifier "byte") (pointer_declarator "* trim2(undefined4 param_1,int param_2)" (* "*") (function_declarator "trim2(undefined4 param_1,int param_2)" (identifier "trim2") (parameter_list "(undefined4 param_1,int param_2)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")")))) (compound_statement "{\n  bool bVar1;\n  byte *pbVar2;\n  uint uVar3;\n  int iVar4;\n  int *piVar5;\n  int iVar6;\n  undefined4 uVar7;\n  undefined *puVar8;\n  undefined *puVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  undefined *puVar14;\n  char cVar15;\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  puVar14 = PTR___stack_chk_guard_0005b58c;\n  local_2c = *(int *)PTR___stack_chk_guard_0005b58c;\n  pbVar2 = (byte *)(*(code *)PTR_strdup_0005b598)();\n  if (pbVar2 == (byte *)0x0) goto LAB_00027900;\n  uVar3 = (*(code *)PTR___ctype_get_mb_cur_max_0005b534)();\n  pbVar11 = pbVar2;\n  if (uVar3 < 2) {\n    if (param_2 != 0) {\n      uVar3 = (uint)(char)*pbVar2;\n      if (uVar3 != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }\n      goto LAB_00027638;\n    }\n    goto LAB_00027668;\n  }\n  if (param_2 != 0) {\n    local_54 = pbVar2;\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    puVar8 = PTR_is_basic_table_0005b300;\n    pbVar10 = pbVar2 + iVar4;\n    local_60 = 0;\n    local_5c = 0;\n    bVar1 = false;\n    local_58 = 0;\n    pbVar13 = pbVar2;\n    if (pbVar2 < pbVar10) {\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);\n          iVar4 = local_48[0];\n          pbVar13 = local_54;\n          if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }\n          if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n        else {\n          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }\n        local_58 = 1;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4);\n        if (iVar4 == 0) break;\n        local_58 = 0;\n        pbVar13 = pbVar13 + local_50;\n        local_54 = pbVar13;\n      } while (pbVar13 < pbVar10);\n    }\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar13);\n    (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar13,iVar4 + 1);\n    if (param_2 == 1) goto LAB_000274d0;\n  }\n  local_54 = pbVar2;\n  iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n  puVar8 = PTR_is_basic_table_0005b300;\n  pbVar13 = pbVar2 + iVar4;\n  local_60 = 0;\n  local_5c = 0;\n  bVar1 = false;\n  local_58 = 0;\n  if (pbVar2 < pbVar13) {\n    cVar15 = '\0';\n    param_2 = 1;\n    pbVar10 = pbVar2;\nLAB_0002742c:\n    do {\n      local_58 = 0;\n      if (bVar1) {\nLAB_0002752c:\n        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);\n        pbVar12 = local_54;\n        if (local_50 == -1) {\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }\n        else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar10;\n        local_4c = '\x01';\n        pbVar10 = local_54 + 1;\n        pbVar12 = local_54;\n      }\n      local_58 = 1;\n      if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (local_4c != '\0') {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }\n      local_54 = pbVar10;\n    } while (pbVar10 < pbVar13);\n    local_58 = 0;\n    local_54 = pbVar10;\n    if (cVar15 == '\x02') {\n      *local_6c = 0;\n    }\n  }\n  goto LAB_000274d0;\nLAB_0002790c:\n  local_50 = 1;\n  (*(code *)PTR___assert_fail_0005b410)\n            (PTR_LAB_0005b128 + 0x7cf0,PTR_DAT_0005b2cc + -0x7c90,0xa9,PTR_DAT_0005b2cc + -0x7c80);\nLAB_00027930:\n  puVar9 = PTR_DAT_0005b2cc + -0x7c90;\n  puVar8 = PTR_LAB_0005b128 + 0x7cd8;\n  puVar14 = PTR___assert_fail_0005b410;\n  (*(code *)PTR___assert_fail_0005b410)(puVar8);\n  if (puVar9 == (undefined *)0x0) {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }\n  else {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }\n  uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c4c,5);\n  (**(code **)(puVar14 + 0x33ae8))(puVar8,1,*(undefined4 *)(puVar14 + 0x33a10),uVar7,0x7e2);\n  uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c48,5);\n  (**(code **)(puVar14 + 0x33c84))(uVar7,puVar8);\n  if (uStack_74 < 10) {\n                    \n                    \n    pbVar2 = (byte *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))();\n    return pbVar2;\n  }\n  uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7a3c,5);\n  pbVar2 = (byte *)(**(code **)(puVar14 + 0x33ae8))\n                             (puVar8,1,uVar7,__gp_1,_DAT_000630f4,uRam000630f8,uRam000630fc,\n                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110);\n  return pbVar2;\nLAB_000278dc:\n  local_50 = 1;\n  FUN_000272f0();\nLAB_00027638:\n  iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar11);\n  (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar11,iVar4 + 1);\n  if (param_2 != 1) {\nLAB_00027668:\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    pbVar11 = pbVar2 + iVar4 + -1;\n    if (pbVar2 <= pbVar11) {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n      iVar4 = *piVar5;\n      do {\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar2 <= pbVar11);\n    }\n  }\nLAB_000274d0:\n  if (local_2c == *(int *)puVar14) {\n    return pbVar2;\n  }\n  (*(code *)PTR___stack_chk_fail_0005b564)();\nLAB_00027900:\n                    \n  xalloc_die();\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "byte *pbVar2;" (type_identifier "byte") (pointer_declarator "*pbVar2" (* "*") (identifier "pbVar2")) (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "undefined *puVar8;" (type_identifier "undefined") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "undefined *puVar9;" (type_identifier "undefined") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (declaration "byte *pbVar12;" (type_identifier "byte") (pointer_declarator "*pbVar12" (* "*") (identifier "pbVar12")) (; ";")) (declaration "byte *pbVar13;" (type_identifier "byte") (pointer_declarator "*pbVar13" (* "*") (identifier "pbVar13")) (; ";")) (declaration "undefined *puVar14;" (type_identifier "undefined") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "char cVar15;" (primitive_type "char") (identifier "cVar15") (; ";")) (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 "puVar14 = PTR___stack_chk_guard_0005b58c;" (assignment_expression "puVar14 = PTR___stack_chk_guard_0005b58c" (identifier "puVar14") (= "=") (identifier "PTR___stack_chk_guard_0005b58c")) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0005b58c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0005b58c" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0005b58c" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0005b58c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0005b58c")))) (; ";")) (expression_statement "pbVar2 = (byte *)(*(code *)PTR_strdup_0005b598)();" (assignment_expression "pbVar2 = (byte *)(*(code *)PTR_strdup_0005b598)()" (identifier "pbVar2") (= "=") (cast_expression "(byte *)(*(code *)PTR_strdup_0005b598)()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_strdup_0005b598)()" (parenthesized_expression "(*(code *)PTR_strdup_0005b598)" (( "(") (pointer_expression "*(code *)PTR_strdup_0005b598" (* "*") (cast_expression "(code *)PTR_strdup_0005b598" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strdup_0005b598"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (pbVar2 == (byte *)0x0) goto LAB_00027900;" (if "if") (parenthesized_expression "(pbVar2 == (byte *)0x0)" (( "(") (binary_expression "pbVar2 == (byte *)0x0" (identifier "pbVar2") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00027900;" (goto "goto") (statement_identifier "LAB_00027900") (; ";"))) (expression_statement "uVar3 = (*(code *)PTR___ctype_get_mb_cur_max_0005b534)();" (assignment_expression "uVar3 = (*(code *)PTR___ctype_get_mb_cur_max_0005b534)()" (identifier "uVar3") (= "=") (call_expression "(*(code *)PTR___ctype_get_mb_cur_max_0005b534)()" (parenthesized_expression "(*(code *)PTR___ctype_get_mb_cur_max_0005b534)" (( "(") (pointer_expression "*(code *)PTR___ctype_get_mb_cur_max_0005b534" (* "*") (cast_expression "(code *)PTR___ctype_get_mb_cur_max_0005b534" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_get_mb_cur_max_0005b534"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pbVar11 = pbVar2;" (assignment_expression "pbVar11 = pbVar2" (identifier "pbVar11") (= "=") (identifier "pbVar2")) (; ";")) (if_statement "if (uVar3 < 2) {\n    if (param_2 != 0) {\n      uVar3 = (uint)(char)*pbVar2;\n      if (uVar3 != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }\n      goto LAB_00027638;\n    }\n    goto LAB_00027668;\n  }" (if "if") (parenthesized_expression "(uVar3 < 2)" (( "(") (binary_expression "uVar3 < 2" (identifier "uVar3") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n    if (param_2 != 0) {\n      uVar3 = (uint)(char)*pbVar2;\n      if (uVar3 != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }\n      goto LAB_00027638;\n    }\n    goto LAB_00027668;\n  }" ({ "{") (if_statement "if (param_2 != 0) {\n      uVar3 = (uint)(char)*pbVar2;\n      if (uVar3 != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }\n      goto LAB_00027638;\n    }" (if "if") (parenthesized_expression "(param_2 != 0)" (( "(") (binary_expression "param_2 != 0" (identifier "param_2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar3 = (uint)(char)*pbVar2;\n      if (uVar3 != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }\n      goto LAB_00027638;\n    }" ({ "{") (expression_statement "uVar3 = (uint)(char)*pbVar2;" (assignment_expression "uVar3 = (uint)(char)*pbVar2" (identifier "uVar3") (= "=") (binary_expression "(uint)(char)*pbVar2" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(char)" (( "(") (identifier "char") () ")"))) (* "*") (identifier "pbVar2"))) (; ";")) (if_statement "if (uVar3 != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }" (if "if") (parenthesized_expression "(uVar3 != 0)" (( "(") (binary_expression "uVar3 != 0" (identifier "uVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n        do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);\n      }" ({ "{") (expression_statement "piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)()" (identifier "piVar5") (= "=") (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_0005b40c)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_b_loc_0005b40c)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0005b40c)" (( "(") (pointer_expression "*(code *)PTR___ctype_b_loc_0005b40c" (* "*") (cast_expression "(code *)PTR___ctype_b_loc_0005b40c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_b_loc_0005b40c"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (do_statement "do {\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        } while (uVar3 != 0);" (do "do") (compound_statement "{\n          pbVar13 = pbVar11 + 1;\n          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;\n          uVar3 = (uint)(char)*pbVar13;\n          pbVar11 = pbVar13;\n        }" ({ "{") (expression_statement "pbVar13 = pbVar11 + 1;" (assignment_expression "pbVar13 = pbVar11 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;" (if "if") (parenthesized_expression "((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0)" (( "(") (binary_expression "(*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20)" (( "(") (binary_expression "*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20" (pointer_expression "*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2)" (* "*") (cast_expression "(ushort *)(*piVar5 + (uVar3 & 0xff) * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar5 + (uVar3 & 0xff) * 2)" (( "(") (binary_expression "*piVar5 + (uVar3 & 0xff) * 2" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (+ "+") (binary_expression "(uVar3 & 0xff) * 2" (parenthesized_expression "(uVar3 & 0xff)" (( "(") (binary_expression "uVar3 & 0xff" (identifier "uVar3") (& "&") (number_literal "0xff")) () ")")) (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar3 = (uint)(char)*pbVar13;" (assignment_expression "uVar3 = (uint)(char)*pbVar13" (identifier "uVar3") (= "=") (binary_expression "(uint)(char)*pbVar13" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(char)" (( "(") (identifier "char") () ")"))) (* "*") (identifier "pbVar13"))) (; ";")) (expression_statement "pbVar11 = pbVar13;" (assignment_expression "pbVar11 = pbVar13" (identifier "pbVar11") (= "=") (identifier "pbVar13")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar3 != 0)" (( "(") (binary_expression "uVar3 != 0" (identifier "uVar3") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (goto_statement "goto LAB_00027638;" (goto "goto") (statement_identifier "LAB_00027638") (; ";")) (} "}"))) (goto_statement "goto LAB_00027668;" (goto "goto") (statement_identifier "LAB_00027668") (; ";")) (} "}"))) (if_statement "if (param_2 != 0) {\n    local_54 = pbVar2;\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    puVar8 = PTR_is_basic_table_0005b300;\n    pbVar10 = pbVar2 + iVar4;\n    local_60 = 0;\n    local_5c = 0;\n    bVar1 = false;\n    local_58 = 0;\n    pbVar13 = pbVar2;\n    if (pbVar2 < pbVar10) {\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);\n          iVar4 = local_48[0];\n          pbVar13 = local_54;\n          if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }\n          if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n        else {\n          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }\n        local_58 = 1;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4);\n        if (iVar4 == 0) break;\n        local_58 = 0;\n        pbVar13 = pbVar13 + local_50;\n        local_54 = pbVar13;\n      } while (pbVar13 < pbVar10);\n    }\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar13);\n    (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar13,iVar4 + 1);\n    if (param_2 == 1) goto LAB_000274d0;\n  }" (if "if") (parenthesized_expression "(param_2 != 0)" (( "(") (binary_expression "param_2 != 0" (identifier "param_2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_54 = pbVar2;\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    puVar8 = PTR_is_basic_table_0005b300;\n    pbVar10 = pbVar2 + iVar4;\n    local_60 = 0;\n    local_5c = 0;\n    bVar1 = false;\n    local_58 = 0;\n    pbVar13 = pbVar2;\n    if (pbVar2 < pbVar10) {\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);\n          iVar4 = local_48[0];\n          pbVar13 = local_54;\n          if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }\n          if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n        else {\n          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }\n        local_58 = 1;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4);\n        if (iVar4 == 0) break;\n        local_58 = 0;\n        pbVar13 = pbVar13 + local_50;\n        local_54 = pbVar13;\n      } while (pbVar13 < pbVar10);\n    }\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar13);\n    (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar13,iVar4 + 1);\n    if (param_2 == 1) goto LAB_000274d0;\n  }" ({ "{") (expression_statement "local_54 = pbVar2;" (assignment_expression "local_54 = pbVar2" (identifier "local_54") (= "=") (identifier "pbVar2")) (; ";")) (expression_statement "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);" (assignment_expression "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_strlen_0005b4e4)(pbVar2)" (parenthesized_expression "(*(code *)PTR_strlen_0005b4e4)" (( "(") (pointer_expression "*(code *)PTR_strlen_0005b4e4" (* "*") (cast_expression "(code *)PTR_strlen_0005b4e4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0005b4e4"))) () ")")) (argument_list "(pbVar2)" (( "(") (identifier "pbVar2") () ")")))) (; ";")) (expression_statement "puVar8 = PTR_is_basic_table_0005b300;" (assignment_expression "puVar8 = PTR_is_basic_table_0005b300" (identifier "puVar8") (= "=") (identifier "PTR_is_basic_table_0005b300")) (; ";")) (expression_statement "pbVar10 = pbVar2 + iVar4;" (assignment_expression "pbVar10 = pbVar2 + iVar4" (identifier "pbVar10") (= "=") (binary_expression "pbVar2 + iVar4" (identifier "pbVar2") (+ "+") (identifier "iVar4"))) (; ";")) (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 "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar13 = pbVar2;" (assignment_expression "pbVar13 = pbVar2" (identifier "pbVar13") (= "=") (identifier "pbVar2")) (; ";")) (if_statement "if (pbVar2 < pbVar10) {\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);\n          iVar4 = local_48[0];\n          pbVar13 = local_54;\n          if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }\n          if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n        else {\n          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }\n        local_58 = 1;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4);\n        if (iVar4 == 0) break;\n        local_58 = 0;\n        pbVar13 = pbVar13 + local_50;\n        local_54 = pbVar13;\n      } while (pbVar13 < pbVar10);\n    }" (if "if") (parenthesized_expression "(pbVar2 < pbVar10)" (( "(") (binary_expression "pbVar2 < pbVar10" (identifier "pbVar2") (< "<") (identifier "pbVar10")) () ")")) (compound_statement "{\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);\n          iVar4 = local_48[0];\n          pbVar13 = local_54;\n          if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }\n          if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n        else {\n          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }\n        local_58 = 1;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4);\n        if (iVar4 == 0) break;\n        local_58 = 0;\n        pbVar13 = pbVar13 + local_50;\n        local_54 = pbVar13;\n      } while (pbVar13 < pbVar10);\n    }" ({ "{") (do_statement "do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);\n          iVar4 = local_48[0];\n          pbVar13 = local_54;\n          if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }\n          if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n        else {\n          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }\n        local_58 = 1;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4);\n        if (iVar4 == 0) break;\n        local_58 = 0;\n        pbVar13 = pbVar13 + local_50;\n        local_54 = pbVar13;\n      } while (pbVar13 < pbVar10);" (do "do") (compound_statement "{\n        local_58 = 0;\n        if (bVar1) {\nLAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);\n          iVar4 = local_48[0];\n          pbVar13 = local_54;\n          if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }\n          if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n        else {\n          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }\n        local_58 = 1;\n        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4);\n        if (iVar4 == 0) break;\n        local_58 = 0;\n        pbVar13 = pbVar13 + local_50;\n        local_54 = pbVar13;\n      }" ({ "{") (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (if_statement "if (bVar1) {\nLAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);\n          iVar4 = local_48[0];\n          pbVar13 = local_54;\n          if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }\n          if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n        else {\n          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\nLAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);\n          iVar4 = local_48[0];\n          pbVar13 = local_54;\n          if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }\n          if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }" ({ "{") (labeled_statement "LAB_000277cc:\n          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);" (statement_identifier "LAB_000277cc") (: ":") (expression_statement "local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);" (assignment_expression "local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60)" (identifier "local_50") (= "=") (call_expression "rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60)" (identifier "rpl_mbrtowc") (argument_list "(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60)" (( "(") (identifier "local_48") (, ",") (identifier "pbVar13") (, ",") (binary_expression "(int)pbVar10 - (int)pbVar13" (cast_expression "(int)pbVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar10")) (- "-") (cast_expression "(int)pbVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar13"))) (, ",") (pointer_expression "&local_60" (& "&") (identifier "local_60")) () ")")))) (; ";"))) (expression_statement "iVar4 = local_48[0];" (assignment_expression "iVar4 = local_48[0]" (identifier "iVar4") (= "=") (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "pbVar13 = local_54;" (assignment_expression "pbVar13 = local_54" (identifier "pbVar13") (= "=") (identifier "local_54")) (; ";")) (if_statement "if (local_50 == -1) {\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }" (if "if") (parenthesized_expression "(local_50 == -1)" (( "(") (binary_expression "local_50 == -1" (identifier "local_50") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n            local_4c = '\0';\n            local_50 = 1;\n            local_58 = 1;\n            break;\n          }" ({ "{") (expression_statement "local_4c = '\0';" (assignment_expression "local_4c = '\0'" (identifier "local_4c") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" (identifier "local_50") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_58 = 1;" (assignment_expression "local_58 = 1" (identifier "local_58") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (if_statement "if (local_50 == -2) {\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }" (if "if") (parenthesized_expression "(local_50 == -2)" (( "(") (binary_expression "local_50 == -2" (identifier "local_50") (== "==") (number_literal "-2")) () ")")) (compound_statement "{\n            local_4c = '\0';\n            local_58 = 1;\n            local_50 = (int)pbVar10 - (int)local_54;\n            break;\n          }" ({ "{") (expression_statement "local_4c = '\0';" (assignment_expression "local_4c = '\0'" (identifier "local_4c") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "local_58 = 1;" (assignment_expression "local_58 = 1" (identifier "local_58") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_50 = (int)pbVar10 - (int)local_54;" (assignment_expression "local_50 = (int)pbVar10 - (int)local_54" (identifier "local_50") (= "=") (binary_expression "(int)pbVar10 - (int)local_54" (cast_expression "(int)pbVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar10")) (- "-") (cast_expression "(int)local_54" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_54")))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (if_statement "if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\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) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }" ({ "{") (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" (identifier "local_50") (= "=") (number_literal "1")) (; ";")) (if_statement "if (*local_54 != 0) goto LAB_0002790c;" (if "if") (parenthesized_expression "(*local_54 != 0)" (( "(") (binary_expression "*local_54 != 0" (pointer_expression "*local_54" (* "*") (identifier "local_54")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002790c;" (goto "goto") (statement_identifier "LAB_0002790c") (; ";"))) (if_statement "if (local_48[0] != 0) goto LAB_000278dc;" (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")) () ")")) (goto_statement "goto LAB_000278dc;" (goto "goto") (statement_identifier "LAB_000278dc") (; ";"))) (} "}"))) (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_0005b588)(&local_60);" (assignment_expression "iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60)" (identifier "iVar6") (= "=") (call_expression "(*(code *)PTR_mbsinit_0005b588)(&local_60)" (parenthesized_expression "(*(code *)PTR_mbsinit_0005b588)" (( "(") (pointer_expression "*(code *)PTR_mbsinit_0005b588" (* "*") (cast_expression "(code *)PTR_mbsinit_0005b588" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsinit_0005b588"))) () ")")) (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 *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }" (else "else") (compound_statement "{\n          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }\n          local_50 = 1;\n          iVar4 = (int)(char)*pbVar13;\n          local_4c = '\x01';\n          pbVar13 = local_54;\n          local_48[0] = iVar4;\n        }" ({ "{") (if_statement "if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }" (if "if") (parenthesized_expression "((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0)" (( "(") (binary_expression "(*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0" (parenthesized_expression "(*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1)" (( "(") (binary_expression "*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1" (binary_expression "*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f)" (pointer_expression "*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4)" (* "*") (cast_expression "(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + (uint)(*pbVar13 >> 5) * 4)" (( "(") (binary_expression "puVar8 + (uint)(*pbVar13 >> 5) * 4" (identifier "puVar8") (+ "+") (binary_expression "(uint)(*pbVar13 >> 5) * 4" (call_expression "(uint)(*pbVar13 >> 5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*pbVar13 >> 5)" (( "(") (binary_expression "*pbVar13 >> 5" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (>> ">>") (number_literal "5")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (>> ">>") (parenthesized_expression "(*pbVar13 & 0x1f)" (( "(") (binary_expression "*pbVar13 & 0x1f" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n            if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }\n            goto LAB_00027930;\n          }" ({ "{") (expression_statement "iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);" (assignment_expression "iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_mbsinit_0005b588)(&local_60)" (parenthesized_expression "(*(code *)PTR_mbsinit_0005b588)" (( "(") (pointer_expression "*(code *)PTR_mbsinit_0005b588" (* "*") (cast_expression "(code *)PTR_mbsinit_0005b588" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsinit_0005b588"))) () ")")) (argument_list "(&local_60)" (( "(") (pointer_expression "&local_60" (& "&") (identifier "local_60")) () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n              bVar1 = true;\n              goto LAB_000277cc;\n            }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              bVar1 = true;\n              goto LAB_000277cc;\n            }" ({ "{") (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (goto_statement "goto LAB_000277cc;" (goto "goto") (statement_identifier "LAB_000277cc") (; ";")) (} "}"))) (goto_statement "goto LAB_00027930;" (goto "goto") (statement_identifier "LAB_00027930") (; ";")) (} "}"))) (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" (identifier "local_50") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar4 = (int)(char)*pbVar13;" (assignment_expression "iVar4 = (int)(char)*pbVar13" (identifier "iVar4") (= "=") (cast_expression "(int)(char)*pbVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*pbVar13" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13"))))) (; ";")) (expression_statement "local_4c = '\x01';" (assignment_expression "local_4c = '\x01'" (identifier "local_4c") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (expression_statement "pbVar13 = local_54;" (assignment_expression "pbVar13 = local_54" (identifier "pbVar13") (= "=") (identifier "local_54")) (; ";")) (expression_statement "local_48[0] = iVar4;" (assignment_expression "local_48[0] = iVar4" (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "iVar4")) (; ";")) (} "}")))) (expression_statement "local_58 = 1;" (assignment_expression "local_58 = 1" (identifier "local_58") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4);" (assignment_expression "iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_iswspace_0005b4fc)(iVar4)" (parenthesized_expression "(*(code *)PTR_iswspace_0005b4fc)" (( "(") (pointer_expression "*(code *)PTR_iswspace_0005b4fc" (* "*") (cast_expression "(code *)PTR_iswspace_0005b4fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_iswspace_0005b4fc"))) () ")")) (argument_list "(iVar4)" (( "(") (identifier "iVar4") () ")")))) (; ";")) (if_statement "if (iVar4 == 0) break;" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar13 = pbVar13 + local_50;" (assignment_expression "pbVar13 = pbVar13 + local_50" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + local_50" (identifier "pbVar13") (+ "+") (identifier "local_50"))) (; ";")) (expression_statement "local_54 = pbVar13;" (assignment_expression "local_54 = pbVar13" (identifier "local_54") (= "=") (identifier "pbVar13")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar13 < pbVar10)" (( "(") (binary_expression "pbVar13 < pbVar10" (identifier "pbVar13") (< "<") (identifier "pbVar10")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar13);" (assignment_expression "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar13)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_strlen_0005b4e4)(pbVar13)" (parenthesized_expression "(*(code *)PTR_strlen_0005b4e4)" (( "(") (pointer_expression "*(code *)PTR_strlen_0005b4e4" (* "*") (cast_expression "(code *)PTR_strlen_0005b4e4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0005b4e4"))) () ")")) (argument_list "(pbVar13)" (( "(") (identifier "pbVar13") () ")")))) (; ";")) (expression_statement "(*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar13,iVar4 + 1);" (call_expression "(*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar13,iVar4 + 1)" (parenthesized_expression "(*(code *)PTR_memmove_0005b5a4)" (( "(") (pointer_expression "*(code *)PTR_memmove_0005b5a4" (* "*") (cast_expression "(code *)PTR_memmove_0005b5a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memmove_0005b5a4"))) () ")")) (argument_list "(pbVar2,pbVar13,iVar4 + 1)" (( "(") (identifier "pbVar2") (, ",") (identifier "pbVar13") (, ",") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1")) () ")"))) (; ";")) (if_statement "if (param_2 == 1) goto LAB_000274d0;" (if "if") (parenthesized_expression "(param_2 == 1)" (( "(") (binary_expression "param_2 == 1" (identifier "param_2") (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_000274d0;" (goto "goto") (statement_identifier "LAB_000274d0") (; ";"))) (} "}"))) (expression_statement "local_54 = pbVar2;" (assignment_expression "local_54 = pbVar2" (identifier "local_54") (= "=") (identifier "pbVar2")) (; ";")) (expression_statement "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);" (assignment_expression "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_strlen_0005b4e4)(pbVar2)" (parenthesized_expression "(*(code *)PTR_strlen_0005b4e4)" (( "(") (pointer_expression "*(code *)PTR_strlen_0005b4e4" (* "*") (cast_expression "(code *)PTR_strlen_0005b4e4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0005b4e4"))) () ")")) (argument_list "(pbVar2)" (( "(") (identifier "pbVar2") () ")")))) (; ";")) (expression_statement "puVar8 = PTR_is_basic_table_0005b300;" (assignment_expression "puVar8 = PTR_is_basic_table_0005b300" (identifier "puVar8") (= "=") (identifier "PTR_is_basic_table_0005b300")) (; ";")) (expression_statement "pbVar13 = pbVar2 + iVar4;" (assignment_expression "pbVar13 = pbVar2 + iVar4" (identifier "pbVar13") (= "=") (binary_expression "pbVar2 + iVar4" (identifier "pbVar2") (+ "+") (identifier "iVar4"))) (; ";")) (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 "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (if_statement "if (pbVar2 < pbVar13) {\n    cVar15 = '\0';\n    param_2 = 1;\n    pbVar10 = pbVar2;\nLAB_0002742c:\n    do {\n      local_58 = 0;\n      if (bVar1) {\nLAB_0002752c:\n        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);\n        pbVar12 = local_54;\n        if (local_50 == -1) {\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }\n        else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar10;\n        local_4c = '\x01';\n        pbVar10 = local_54 + 1;\n        pbVar12 = local_54;\n      }\n      local_58 = 1;\n      if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (local_4c != '\0') {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }\n      local_54 = pbVar10;\n    } while (pbVar10 < pbVar13);\n    local_58 = 0;\n    local_54 = pbVar10;\n    if (cVar15 == '\x02') {\n      *local_6c = 0;\n    }\n  }" (if "if") (parenthesized_expression "(pbVar2 < pbVar13)" (( "(") (binary_expression "pbVar2 < pbVar13" (identifier "pbVar2") (< "<") (identifier "pbVar13")) () ")")) (compound_statement "{\n    cVar15 = '\0';\n    param_2 = 1;\n    pbVar10 = pbVar2;\nLAB_0002742c:\n    do {\n      local_58 = 0;\n      if (bVar1) {\nLAB_0002752c:\n        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);\n        pbVar12 = local_54;\n        if (local_50 == -1) {\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }\n        else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar10;\n        local_4c = '\x01';\n        pbVar10 = local_54 + 1;\n        pbVar12 = local_54;\n      }\n      local_58 = 1;\n      if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (local_4c != '\0') {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }\n      local_54 = pbVar10;\n    } while (pbVar10 < pbVar13);\n    local_58 = 0;\n    local_54 = pbVar10;\n    if (cVar15 == '\x02') {\n      *local_6c = 0;\n    }\n  }" ({ "{") (expression_statement "cVar15 = '\0';" (assignment_expression "cVar15 = '\0'" (identifier "cVar15") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "param_2 = 1;" (assignment_expression "param_2 = 1" (identifier "param_2") (= "=") (number_literal "1")) (; ";")) (expression_statement "pbVar10 = pbVar2;" (assignment_expression "pbVar10 = pbVar2" (identifier "pbVar10") (= "=") (identifier "pbVar2")) (; ";")) (labeled_statement "LAB_0002742c:\n    do {\n      local_58 = 0;\n      if (bVar1) {\nLAB_0002752c:\n        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);\n        pbVar12 = local_54;\n        if (local_50 == -1) {\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }\n        else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar10;\n        local_4c = '\x01';\n        pbVar10 = local_54 + 1;\n        pbVar12 = local_54;\n      }\n      local_58 = 1;\n      if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (local_4c != '\0') {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }\n      local_54 = pbVar10;\n    } while (pbVar10 < pbVar13);" (statement_identifier "LAB_0002742c") (: ":") (do_statement "do {\n      local_58 = 0;\n      if (bVar1) {\nLAB_0002752c:\n        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);\n        pbVar12 = local_54;\n        if (local_50 == -1) {\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }\n        else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar10;\n        local_4c = '\x01';\n        pbVar10 = local_54 + 1;\n        pbVar12 = local_54;\n      }\n      local_58 = 1;\n      if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (local_4c != '\0') {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }\n      local_54 = pbVar10;\n    } while (pbVar10 < pbVar13);" (do "do") (compound_statement "{\n      local_58 = 0;\n      if (bVar1) {\nLAB_0002752c:\n        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);\n        pbVar12 = local_54;\n        if (local_50 == -1) {\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }\n        else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar10;\n        local_4c = '\x01';\n        pbVar10 = local_54 + 1;\n        pbVar12 = local_54;\n      }\n      local_58 = 1;\n      if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (local_4c != '\0') {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }\n      local_54 = pbVar10;\n    }" ({ "{") (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (if_statement "if (bVar1) {\nLAB_0002752c:\n        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);\n        pbVar12 = local_54;\n        if (local_50 == -1) {\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }\n        else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar10;\n        local_4c = '\x01';\n        pbVar10 = local_54 + 1;\n        pbVar12 = local_54;\n      }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\nLAB_0002752c:\n        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);\n        pbVar12 = local_54;\n        if (local_50 == -1) {\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }\n        else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }\n      }" ({ "{") (labeled_statement "LAB_0002752c:\n        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);" (statement_identifier "LAB_0002752c") (: ":") (expression_statement "local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);" (assignment_expression "local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60)" (identifier "local_50") (= "=") (call_expression "rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60)" (identifier "rpl_mbrtowc") (argument_list "(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60)" (( "(") (identifier "local_48") (, ",") (identifier "pbVar10") (, ",") (binary_expression "(int)pbVar13 - (int)pbVar10" (cast_expression "(int)pbVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar13")) (- "-") (cast_expression "(int)pbVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar10"))) (, ",") (pointer_expression "&local_60" (& "&") (identifier "local_60")) () ")")))) (; ";"))) (expression_statement "pbVar12 = local_54;" (assignment_expression "pbVar12 = local_54" (identifier "pbVar12") (= "=") (identifier "local_54")) (; ";")) (if_statement "if (local_50 == -1) {\n          local_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }\n        else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 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_4c = '\0';\n          pbVar10 = local_54 + 1;\n          local_50 = 1;\n        }" ({ "{") (expression_statement "local_4c = '\0';" (assignment_expression "local_4c = '\0'" (identifier "local_4c") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pbVar10 = local_54 + 1;" (assignment_expression "pbVar10 = local_54 + 1" (identifier "pbVar10") (= "=") (binary_expression "local_54 + 1" (identifier "local_54") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" (identifier "local_50") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }" (else "else") (if_statement "if (local_50 == -2) {\n          local_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 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_4c = '\0';\n          local_50 = (int)pbVar13 - (int)local_54;\n          pbVar10 = pbVar13;\n        }" ({ "{") (expression_statement "local_4c = '\0';" (assignment_expression "local_4c = '\0'" (identifier "local_4c") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "local_50 = (int)pbVar13 - (int)local_54;" (assignment_expression "local_50 = (int)pbVar13 - (int)local_54" (identifier "local_50") (= "=") (binary_expression "(int)pbVar13 - (int)local_54" (cast_expression "(int)pbVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar13")) (- "-") (cast_expression "(int)local_54" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_54")))) (; ";")) (expression_statement "pbVar10 = pbVar13;" (assignment_expression "pbVar10 = pbVar13" (identifier "pbVar10") (= "=") (identifier "pbVar13")) (; ";")) (} "}")) (else_clause "else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }" (else "else") (compound_statement "{\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }\n          local_4c = '\x01';\n          pbVar10 = local_54 + local_50;\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = false;\n          }\n        }" ({ "{") (if_statement "if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\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) goto LAB_0002790c;\n            if (local_48[0] != 0) goto LAB_000278dc;\n          }" ({ "{") (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" (identifier "local_50") (= "=") (number_literal "1")) (; ";")) (if_statement "if (*local_54 != 0) goto LAB_0002790c;" (if "if") (parenthesized_expression "(*local_54 != 0)" (( "(") (binary_expression "*local_54 != 0" (pointer_expression "*local_54" (* "*") (identifier "local_54")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002790c;" (goto "goto") (statement_identifier "LAB_0002790c") (; ";"))) (if_statement "if (local_48[0] != 0) goto LAB_000278dc;" (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")) () ")")) (goto_statement "goto LAB_000278dc;" (goto "goto") (statement_identifier "LAB_000278dc") (; ";"))) (} "}"))) (expression_statement "local_4c = '\x01';" (assignment_expression "local_4c = '\x01'" (identifier "local_4c") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (expression_statement "pbVar10 = local_54 + local_50;" (assignment_expression "pbVar10 = local_54 + local_50" (identifier "pbVar10") (= "=") (binary_expression "local_54 + local_50" (identifier "local_54") (+ "+") (identifier "local_50"))) (; ";")) (expression_statement "iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);" (assignment_expression "iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_mbsinit_0005b588)(&local_60)" (parenthesized_expression "(*(code *)PTR_mbsinit_0005b588)" (( "(") (pointer_expression "*(code *)PTR_mbsinit_0005b588" (* "*") (cast_expression "(code *)PTR_mbsinit_0005b588" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsinit_0005b588"))) () ")")) (argument_list "(&local_60)" (( "(") (pointer_expression "&local_60" (& "&") (identifier "local_60")) () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n            bVar1 = false;\n          }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (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 *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar10;\n        local_4c = '\x01';\n        pbVar10 = local_54 + 1;\n        pbVar12 = local_54;\n      }" (else "else") (compound_statement "{\n        if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar10;\n        local_4c = '\x01';\n        pbVar10 = local_54 + 1;\n        pbVar12 = local_54;\n      }" ({ "{") (if_statement "if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }" (if "if") (parenthesized_expression "((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0)" (( "(") (binary_expression "(*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0" (parenthesized_expression "(*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1)" (( "(") (binary_expression "*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1" (binary_expression "*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f)" (pointer_expression "*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4)" (* "*") (cast_expression "(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + (uint)(*pbVar10 >> 5) * 4)" (( "(") (binary_expression "puVar8 + (uint)(*pbVar10 >> 5) * 4" (identifier "puVar8") (+ "+") (binary_expression "(uint)(*pbVar10 >> 5) * 4" (call_expression "(uint)(*pbVar10 >> 5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*pbVar10 >> 5)" (( "(") (binary_expression "*pbVar10 >> 5" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (>> ">>") (number_literal "5")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (>> ">>") (parenthesized_expression "(*pbVar10 & 0x1f)" (( "(") (binary_expression "*pbVar10 & 0x1f" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);\n          if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }\n          goto LAB_00027930;\n        }" ({ "{") (expression_statement "iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);" (assignment_expression "iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_mbsinit_0005b588)(&local_60)" (parenthesized_expression "(*(code *)PTR_mbsinit_0005b588)" (( "(") (pointer_expression "*(code *)PTR_mbsinit_0005b588" (* "*") (cast_expression "(code *)PTR_mbsinit_0005b588" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsinit_0005b588"))) () ")")) (argument_list "(&local_60)" (( "(") (pointer_expression "&local_60" (& "&") (identifier "local_60")) () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n            bVar1 = true;\n            goto LAB_0002752c;\n          }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            bVar1 = true;\n            goto LAB_0002752c;\n          }" ({ "{") (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (goto_statement "goto LAB_0002752c;" (goto "goto") (statement_identifier "LAB_0002752c") (; ";")) (} "}"))) (goto_statement "goto LAB_00027930;" (goto "goto") (statement_identifier "LAB_00027930") (; ";")) (} "}"))) (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" (identifier "local_50") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_48[0] = (int)(char)*pbVar10;" (assignment_expression "local_48[0] = (int)(char)*pbVar10" (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(int)(char)*pbVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*pbVar10" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10"))))) (; ";")) (expression_statement "local_4c = '\x01';" (assignment_expression "local_4c = '\x01'" (identifier "local_4c") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (expression_statement "pbVar10 = local_54 + 1;" (assignment_expression "pbVar10 = local_54 + 1" (identifier "pbVar10") (= "=") (binary_expression "local_54 + 1" (identifier "local_54") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = local_54;" (assignment_expression "pbVar12 = local_54" (identifier "pbVar12") (= "=") (identifier "local_54")) (; ";")) (} "}")))) (expression_statement "local_58 = 1;" (assignment_expression "local_58 = 1" (identifier "local_58") (= "=") (number_literal "1")) (; ";")) (if_statement "if (cVar15 == '\0') {\n        cVar15 = '\x01';\n        if (local_4c != '\0') {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }\n      }\n      else if (cVar15 == '\x01') {\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }" (if "if") (parenthesized_expression "(cVar15 == '\0')" (( "(") (binary_expression "cVar15 == '\0'" (identifier "cVar15") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        cVar15 = '\x01';\n        if (local_4c != '\0') {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }\n      }" ({ "{") (expression_statement "cVar15 = '\x01';" (assignment_expression "cVar15 = '\x01'" (identifier "cVar15") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (if_statement "if (local_4c != '\0') {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 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          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          cVar15 = iVar4 == 0;\n        }" ({ "{") (expression_statement "iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);" (assignment_expression "iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0])" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_iswspace_0005b4fc)(local_48[0])" (parenthesized_expression "(*(code *)PTR_iswspace_0005b4fc)" (( "(") (pointer_expression "*(code *)PTR_iswspace_0005b4fc" (* "*") (cast_expression "(code *)PTR_iswspace_0005b4fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_iswspace_0005b4fc"))) () ")")) (argument_list "(local_48[0])" (( "(") (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]")) () ")")))) (; ";")) (expression_statement "cVar15 = iVar4 == 0;" (assignment_expression "cVar15 = iVar4 == 0" (identifier "cVar15") (= "=") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0"))) (; ";")) (} "}"))) (} "}")) (else_clause "else if (cVar15 == '\x01') {\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }" (else "else") (if_statement "if (cVar15 == '\x01') {\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }\n      else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }" (if "if") (parenthesized_expression "(cVar15 == '\x01')" (( "(") (binary_expression "cVar15 == '\x01'" (identifier "cVar15") (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (compound_statement "{\n        if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }\n      }" ({ "{") (if_statement "if ((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }" (if "if") (parenthesized_expression "((local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0))" (( "(") (binary_expression "(local_4c != '\0') &&\n           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)" (parenthesized_expression "(local_4c != '\0')" (( "(") (binary_expression "local_4c != '\0'" (identifier "local_4c") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)" (( "(") (comma_expression "iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0" (assignment_expression "iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0])" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_iswspace_0005b4fc)(local_48[0])" (parenthesized_expression "(*(code *)PTR_iswspace_0005b4fc)" (( "(") (pointer_expression "*(code *)PTR_iswspace_0005b4fc" (* "*") (cast_expression "(code *)PTR_iswspace_0005b4fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_iswspace_0005b4fc"))) () ")")) (argument_list "(local_48[0])" (( "(") (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]")) () ")")))) (, ",") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          cVar15 = '\x02';\n          local_6c = pbVar12;\n        }" ({ "{") (expression_statement "cVar15 = '\x02';" (assignment_expression "cVar15 = '\x02'" (identifier "cVar15") (= "=") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) (; ";")) (expression_statement "local_6c = pbVar12;" (assignment_expression "local_6c = pbVar12" (identifier "local_6c") (= "=") (identifier "pbVar12")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }" (else "else") (compound_statement "{\n        if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }\n        cVar15 = '\x01';\n      }" ({ "{") (if_statement "if ((cVar15 == '\x02') && (local_4c != '\0')) {\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }" (if "if") (parenthesized_expression "((cVar15 == '\x02') && (local_4c != '\0'))" (( "(") (binary_expression "(cVar15 == '\x02') && (local_4c != '\0')" (parenthesized_expression "(cVar15 == '\x02')" (( "(") (binary_expression "cVar15 == '\x02'" (identifier "cVar15") (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(local_4c != '\0')" (( "(") (binary_expression "local_4c != '\0'" (identifier "local_4c") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);\n          if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }\n          local_54 = pbVar10;\n          if (pbVar13 <= pbVar10) break;\n          goto LAB_0002742c;\n        }" ({ "{") (expression_statement "iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);" (assignment_expression "iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0])" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_iswspace_0005b4fc)(local_48[0])" (parenthesized_expression "(*(code *)PTR_iswspace_0005b4fc)" (( "(") (pointer_expression "*(code *)PTR_iswspace_0005b4fc" (* "*") (cast_expression "(code *)PTR_iswspace_0005b4fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_iswspace_0005b4fc"))) () ")")) (argument_list "(local_48[0])" (( "(") (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n            cVar15 = '\x01';\n          }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            cVar15 = '\x01';\n          }" ({ "{") (expression_statement "cVar15 = '\x01';" (assignment_expression "cVar15 = '\x01'" (identifier "cVar15") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (} "}"))) (expression_statement "local_54 = pbVar10;" (assignment_expression "local_54 = pbVar10" (identifier "local_54") (= "=") (identifier "pbVar10")) (; ";")) (if_statement "if (pbVar13 <= pbVar10) break;" (if "if") (parenthesized_expression "(pbVar13 <= pbVar10)" (( "(") (binary_expression "pbVar13 <= pbVar10" (identifier "pbVar13") (<= "<=") (identifier "pbVar10")) () ")")) (break_statement "break;" (break "break") (; ";"))) (goto_statement "goto LAB_0002742c;" (goto "goto") (statement_identifier "LAB_0002742c") (; ";")) (} "}"))) (expression_statement "cVar15 = '\x01';" (assignment_expression "cVar15 = '\x01'" (identifier "cVar15") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (} "}")))))) (expression_statement "local_54 = pbVar10;" (assignment_expression "local_54 = pbVar10" (identifier "local_54") (= "=") (identifier "pbVar10")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar10 < pbVar13)" (( "(") (binary_expression "pbVar10 < pbVar13" (identifier "pbVar10") (< "<") (identifier "pbVar13")) () ")")) (; ";"))) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_54 = pbVar10;" (assignment_expression "local_54 = pbVar10" (identifier "local_54") (= "=") (identifier "pbVar10")) (; ";")) (if_statement "if (cVar15 == '\x02') {\n      *local_6c = 0;\n    }" (if "if") (parenthesized_expression "(cVar15 == '\x02')" (( "(") (binary_expression "cVar15 == '\x02'" (identifier "cVar15") (== "==") (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")) (; ";")) (} "}"))) (} "}"))) (goto_statement "goto LAB_000274d0;" (goto "goto") (statement_identifier "LAB_000274d0") (; ";")) (labeled_statement "LAB_0002790c:\n  local_50 = 1;" (statement_identifier "LAB_0002790c") (: ":") (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" (identifier "local_50") (= "=") (number_literal "1")) (; ";"))) (expression_statement "(*(code *)PTR___assert_fail_0005b410)\n            (PTR_LAB_0005b128 + 0x7cf0,PTR_DAT_0005b2cc + -0x7c90,0xa9,PTR_DAT_0005b2cc + -0x7c80);" (call_expression "(*(code *)PTR___assert_fail_0005b410)\n            (PTR_LAB_0005b128 + 0x7cf0,PTR_DAT_0005b2cc + -0x7c90,0xa9,PTR_DAT_0005b2cc + -0x7c80)" (parenthesized_expression "(*(code *)PTR___assert_fail_0005b410)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_0005b410" (* "*") (cast_expression "(code *)PTR___assert_fail_0005b410" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_0005b410"))) () ")")) (argument_list "(PTR_LAB_0005b128 + 0x7cf0,PTR_DAT_0005b2cc + -0x7c90,0xa9,PTR_DAT_0005b2cc + -0x7c80)" (( "(") (binary_expression "PTR_LAB_0005b128 + 0x7cf0" (identifier "PTR_LAB_0005b128") (+ "+") (number_literal "0x7cf0")) (, ",") (binary_expression "PTR_DAT_0005b2cc + -0x7c90" (identifier "PTR_DAT_0005b2cc") (+ "+") (number_literal "-0x7c90")) (, ",") (number_literal "0xa9") (, ",") (binary_expression "PTR_DAT_0005b2cc + -0x7c80" (identifier "PTR_DAT_0005b2cc") (+ "+") (number_literal "-0x7c80")) () ")"))) (; ";")) (labeled_statement "LAB_00027930:\n  puVar9 = PTR_DAT_0005b2cc + -0x7c90;" (statement_identifier "LAB_00027930") (: ":") (expression_statement "puVar9 = PTR_DAT_0005b2cc + -0x7c90;" (assignment_expression "puVar9 = PTR_DAT_0005b2cc + -0x7c90" (identifier "puVar9") (= "=") (binary_expression "PTR_DAT_0005b2cc + -0x7c90" (identifier "PTR_DAT_0005b2cc") (+ "+") (number_literal "-0x7c90"))) (; ";"))) (expression_statement "puVar8 = PTR_LAB_0005b128 + 0x7cd8;" (assignment_expression "puVar8 = PTR_LAB_0005b128 + 0x7cd8" (identifier "puVar8") (= "=") (binary_expression "PTR_LAB_0005b128 + 0x7cd8" (identifier "PTR_LAB_0005b128") (+ "+") (number_literal "0x7cd8"))) (; ";")) (expression_statement "puVar14 = PTR___assert_fail_0005b410;" (assignment_expression "puVar14 = PTR___assert_fail_0005b410" (identifier "puVar14") (= "=") (identifier "PTR___assert_fail_0005b410")) (; ";")) (expression_statement "(*(code *)PTR___assert_fail_0005b410)(puVar8);" (call_expression "(*(code *)PTR___assert_fail_0005b410)(puVar8)" (parenthesized_expression "(*(code *)PTR___assert_fail_0005b410)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_0005b410" (* "*") (cast_expression "(code *)PTR___assert_fail_0005b410" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_0005b410"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")"))) (; ";")) (if_statement "if (puVar9 == (undefined *)0x0) {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }\n  else {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }" (if "if") (parenthesized_expression "(puVar9 == (undefined *)0x0)" (( "(") (binary_expression "puVar9 == (undefined *)0x0" (identifier "puVar9") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (**(code **)(puVar14 + 0x33ae8))();\n  }" ({ "{") (expression_statement "(**(code **)(puVar14 + 0x33ae8))();" (call_expression "(**(code **)(puVar14 + 0x33ae8))()" (parenthesized_expression "(**(code **)(puVar14 + 0x33ae8))" (( "(") (pointer_expression "**(code **)(puVar14 + 0x33ae8)" (* "*") (pointer_expression "*(code **)(puVar14 + 0x33ae8)" (* "*") (cast_expression "(code **)(puVar14 + 0x33ae8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + 0x33ae8)" (( "(") (binary_expression "puVar14 + 0x33ae8" (identifier "puVar14") (+ "+") (number_literal "0x33ae8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    (**(code **)(puVar14 + 0x33ae8))();\n  }" (else "else") (compound_statement "{\n    (**(code **)(puVar14 + 0x33ae8))();\n  }" ({ "{") (expression_statement "(**(code **)(puVar14 + 0x33ae8))();" (call_expression "(**(code **)(puVar14 + 0x33ae8))()" (parenthesized_expression "(**(code **)(puVar14 + 0x33ae8))" (( "(") (pointer_expression "**(code **)(puVar14 + 0x33ae8)" (* "*") (pointer_expression "*(code **)(puVar14 + 0x33ae8)" (* "*") (cast_expression "(code **)(puVar14 + 0x33ae8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + 0x33ae8)" (( "(") (binary_expression "puVar14 + 0x33ae8" (identifier "puVar14") (+ "+") (number_literal "0x33ae8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c4c,5);" (assignment_expression "uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c4c,5)" (identifier "uVar7") (= "=") (call_expression "(**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c4c,5)" (parenthesized_expression "(**(code **)(puVar14 + 0x33c08))" (( "(") (pointer_expression "**(code **)(puVar14 + 0x33c08)" (* "*") (pointer_expression "*(code **)(puVar14 + 0x33c08)" (* "*") (cast_expression "(code **)(puVar14 + 0x33c08)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + 0x33c08)" (( "(") (binary_expression "puVar14 + 0x33c08" (identifier "puVar14") (+ "+") (number_literal "0x33c08")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar14 + 0x3396c) + -0x7c4c,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar14 + 0x3396c) + -0x7c4c" (pointer_expression "*(int *)(puVar14 + 0x3396c)" (* "*") (cast_expression "(int *)(puVar14 + 0x3396c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0x3396c)" (( "(") (binary_expression "puVar14 + 0x3396c" (identifier "puVar14") (+ "+") (number_literal "0x3396c")) () ")")))) (+ "+") (number_literal "-0x7c4c")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar14 + 0x33ae8))(puVar8,1,*(undefined4 *)(puVar14 + 0x33a10),uVar7,0x7e2);" (call_expression "(**(code **)(puVar14 + 0x33ae8))(puVar8,1,*(undefined4 *)(puVar14 + 0x33a10),uVar7,0x7e2)" (parenthesized_expression "(**(code **)(puVar14 + 0x33ae8))" (( "(") (pointer_expression "**(code **)(puVar14 + 0x33ae8)" (* "*") (pointer_expression "*(code **)(puVar14 + 0x33ae8)" (* "*") (cast_expression "(code **)(puVar14 + 0x33ae8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + 0x33ae8)" (( "(") (binary_expression "puVar14 + 0x33ae8" (identifier "puVar14") (+ "+") (number_literal "0x33ae8")) () ")"))))) () ")")) (argument_list "(puVar8,1,*(undefined4 *)(puVar14 + 0x33a10),uVar7,0x7e2)" (( "(") (identifier "puVar8") (, ",") (number_literal "1") (, ",") (pointer_expression "*(undefined4 *)(puVar14 + 0x33a10)" (* "*") (cast_expression "(undefined4 *)(puVar14 + 0x33a10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0x33a10)" (( "(") (binary_expression "puVar14 + 0x33a10" (identifier "puVar14") (+ "+") (number_literal "0x33a10")) () ")")))) (, ",") (identifier "uVar7") (, ",") (number_literal "0x7e2") () ")"))) (; ";")) (expression_statement "uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c48,5);" (assignment_expression "uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c48,5)" (identifier "uVar7") (= "=") (call_expression "(**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c48,5)" (parenthesized_expression "(**(code **)(puVar14 + 0x33c08))" (( "(") (pointer_expression "**(code **)(puVar14 + 0x33c08)" (* "*") (pointer_expression "*(code **)(puVar14 + 0x33c08)" (* "*") (cast_expression "(code **)(puVar14 + 0x33c08)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + 0x33c08)" (( "(") (binary_expression "puVar14 + 0x33c08" (identifier "puVar14") (+ "+") (number_literal "0x33c08")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar14 + 0x3396c) + -0x7c48,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar14 + 0x3396c) + -0x7c48" (pointer_expression "*(int *)(puVar14 + 0x3396c)" (* "*") (cast_expression "(int *)(puVar14 + 0x3396c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0x3396c)" (( "(") (binary_expression "puVar14 + 0x3396c" (identifier "puVar14") (+ "+") (number_literal "0x3396c")) () ")")))) (+ "+") (number_literal "-0x7c48")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar14 + 0x33c84))(uVar7,puVar8);" (call_expression "(**(code **)(puVar14 + 0x33c84))(uVar7,puVar8)" (parenthesized_expression "(**(code **)(puVar14 + 0x33c84))" (( "(") (pointer_expression "**(code **)(puVar14 + 0x33c84)" (* "*") (pointer_expression "*(code **)(puVar14 + 0x33c84)" (* "*") (cast_expression "(code **)(puVar14 + 0x33c84)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + 0x33c84)" (( "(") (binary_expression "puVar14 + 0x33c84" (identifier "puVar14") (+ "+") (number_literal "0x33c84")) () ")"))))) () ")")) (argument_list "(uVar7,puVar8)" (( "(") (identifier "uVar7") (, ",") (identifier "puVar8") () ")"))) (; ";")) (if_statement "if (uStack_74 < 10) {\n                    \n                    \n    pbVar2 = (byte *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))();\n    return pbVar2;\n  }" (if "if") (parenthesized_expression "(uStack_74 < 10)" (( "(") (binary_expression "uStack_74 < 10" (identifier "uStack_74") (< "<") (number_literal "10")) () ")")) (compound_statement "{\n                    \n                    \n    pbVar2 = (byte *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))();\n    return pbVar2;\n  }" ({ "{") (expression_statement "pbVar2 = (byte *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))();" (assignment_expression "pbVar2 = (byte *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))()" (identifier "pbVar2") (= "=") (cast_expression "(byte *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))()" (parenthesized_expression "(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790))" (( "(") (pointer_expression "*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790)" (* "*") (cast_expression "(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790)" (( "(") (binary_expression "puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +\n                               0x3b790" (binary_expression "puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4)" (identifier "puVar14") (+ "+") (pointer_expression "*(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4)" (* "*") (cast_expression "(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4)" (( "(") (binary_expression "*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4" (binary_expression "*(int *)(puVar14 + 0x3396c) + -0x7950" (pointer_expression "*(int *)(puVar14 + 0x3396c)" (* "*") (cast_expression "(int *)(puVar14 + 0x3396c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0x3396c)" (( "(") (binary_expression "puVar14 + 0x3396c" (identifier "puVar14") (+ "+") (number_literal "0x3396c")) () ")")))) (+ "+") (number_literal "-0x7950")) (+ "+") (binary_expression "uStack_74 * 4" (identifier "uStack_74") (* "*") (number_literal "4"))) () ")"))))) (+ "+") (number_literal "0x3b790")) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return pbVar2;" (return "return") (identifier "pbVar2") (; ";")) (} "}"))) (expression_statement "uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7a3c,5);" (assignment_expression "uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7a3c,5)" (identifier "uVar7") (= "=") (call_expression "(**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7a3c,5)" (parenthesized_expression "(**(code **)(puVar14 + 0x33c08))" (( "(") (pointer_expression "**(code **)(puVar14 + 0x33c08)" (* "*") (pointer_expression "*(code **)(puVar14 + 0x33c08)" (* "*") (cast_expression "(code **)(puVar14 + 0x33c08)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + 0x33c08)" (( "(") (binary_expression "puVar14 + 0x33c08" (identifier "puVar14") (+ "+") (number_literal "0x33c08")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar14 + 0x3396c) + -0x7a3c,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar14 + 0x3396c) + -0x7a3c" (pointer_expression "*(int *)(puVar14 + 0x3396c)" (* "*") (cast_expression "(int *)(puVar14 + 0x3396c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0x3396c)" (( "(") (binary_expression "puVar14 + 0x3396c" (identifier "puVar14") (+ "+") (number_literal "0x3396c")) () ")")))) (+ "+") (number_literal "-0x7a3c")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "pbVar2 = (byte *)(**(code **)(puVar14 + 0x33ae8))\n                             (puVar8,1,uVar7,__gp_1,_DAT_000630f4,uRam000630f8,uRam000630fc,\n                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110);" (assignment_expression "pbVar2 = (byte *)(**(code **)(puVar14 + 0x33ae8))\n                             (puVar8,1,uVar7,__gp_1,_DAT_000630f4,uRam000630f8,uRam000630fc,\n                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110)" (identifier "pbVar2") (= "=") (cast_expression "(byte *)(**(code **)(puVar14 + 0x33ae8))\n                             (puVar8,1,uVar7,__gp_1,_DAT_000630f4,uRam000630f8,uRam000630fc,\n                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar14 + 0x33ae8))\n                             (puVar8,1,uVar7,__gp_1,_DAT_000630f4,uRam000630f8,uRam000630fc,\n                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110)" (parenthesized_expression "(**(code **)(puVar14 + 0x33ae8))" (( "(") (pointer_expression "**(code **)(puVar14 + 0x33ae8)" (* "*") (pointer_expression "*(code **)(puVar14 + 0x33ae8)" (* "*") (cast_expression "(code **)(puVar14 + 0x33ae8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + 0x33ae8)" (( "(") (binary_expression "puVar14 + 0x33ae8" (identifier "puVar14") (+ "+") (number_literal "0x33ae8")) () ")"))))) () ")")) (argument_list "(puVar8,1,uVar7,__gp_1,_DAT_000630f4,uRam000630f8,uRam000630fc,\n                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110)" (( "(") (identifier "puVar8") (, ",") (number_literal "1") (, ",") (identifier "uVar7") (, ",") (identifier "__gp_1") (, ",") (identifier "_DAT_000630f4") (, ",") (identifier "uRam000630f8") (, ",") (identifier "uRam000630fc") (, ",") (identifier "uRam00063100") (, ",") (identifier "uRam00063104") (, ",") (identifier "uRam00063108") (, ",") (identifier "uRam0006310c") (, ",") (identifier "uRam00063110") () ")"))))) (; ";")) (return_statement "return pbVar2;" (return "return") (identifier "pbVar2") (; ";")) (labeled_statement "LAB_000278dc:\n  local_50 = 1;" (statement_identifier "LAB_000278dc") (: ":") (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" (identifier "local_50") (= "=") (number_literal "1")) (; ";"))) (expression_statement "FUN_000272f0();" (call_expression "FUN_000272f0()" (identifier "FUN_000272f0") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_00027638:\n  iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar11);" (statement_identifier "LAB_00027638") (: ":") (expression_statement "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar11);" (assignment_expression "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar11)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_strlen_0005b4e4)(pbVar11)" (parenthesized_expression "(*(code *)PTR_strlen_0005b4e4)" (( "(") (pointer_expression "*(code *)PTR_strlen_0005b4e4" (* "*") (cast_expression "(code *)PTR_strlen_0005b4e4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0005b4e4"))) () ")")) (argument_list "(pbVar11)" (( "(") (identifier "pbVar11") () ")")))) (; ";"))) (expression_statement "(*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar11,iVar4 + 1);" (call_expression "(*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar11,iVar4 + 1)" (parenthesized_expression "(*(code *)PTR_memmove_0005b5a4)" (( "(") (pointer_expression "*(code *)PTR_memmove_0005b5a4" (* "*") (cast_expression "(code *)PTR_memmove_0005b5a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memmove_0005b5a4"))) () ")")) (argument_list "(pbVar2,pbVar11,iVar4 + 1)" (( "(") (identifier "pbVar2") (, ",") (identifier "pbVar11") (, ",") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1")) () ")"))) (; ";")) (if_statement "if (param_2 != 1) {\nLAB_00027668:\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    pbVar11 = pbVar2 + iVar4 + -1;\n    if (pbVar2 <= pbVar11) {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n      iVar4 = *piVar5;\n      do {\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar2 <= pbVar11);\n    }\n  }" (if "if") (parenthesized_expression "(param_2 != 1)" (( "(") (binary_expression "param_2 != 1" (identifier "param_2") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\nLAB_00027668:\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);\n    pbVar11 = pbVar2 + iVar4 + -1;\n    if (pbVar2 <= pbVar11) {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n      iVar4 = *piVar5;\n      do {\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar2 <= pbVar11);\n    }\n  }" ({ "{") (labeled_statement "LAB_00027668:\n    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);" (statement_identifier "LAB_00027668") (: ":") (expression_statement "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);" (assignment_expression "iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_strlen_0005b4e4)(pbVar2)" (parenthesized_expression "(*(code *)PTR_strlen_0005b4e4)" (( "(") (pointer_expression "*(code *)PTR_strlen_0005b4e4" (* "*") (cast_expression "(code *)PTR_strlen_0005b4e4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0005b4e4"))) () ")")) (argument_list "(pbVar2)" (( "(") (identifier "pbVar2") () ")")))) (; ";"))) (expression_statement "pbVar11 = pbVar2 + iVar4 + -1;" (assignment_expression "pbVar11 = pbVar2 + iVar4 + -1" (identifier "pbVar11") (= "=") (binary_expression "pbVar2 + iVar4 + -1" (binary_expression "pbVar2 + iVar4" (identifier "pbVar2") (+ "+") (identifier "iVar4")) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (pbVar2 <= pbVar11) {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n      iVar4 = *piVar5;\n      do {\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar2 <= pbVar11);\n    }" (if "if") (parenthesized_expression "(pbVar2 <= pbVar11)" (( "(") (binary_expression "pbVar2 <= pbVar11" (identifier "pbVar2") (<= "<=") (identifier "pbVar11")) () ")")) (compound_statement "{\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();\n      iVar4 = *piVar5;\n      do {\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar2 <= pbVar11);\n    }" ({ "{") (expression_statement "piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)()" (identifier "piVar5") (= "=") (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_0005b40c)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_b_loc_0005b40c)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0005b40c)" (( "(") (pointer_expression "*(code *)PTR___ctype_b_loc_0005b40c" (* "*") (cast_expression "(code *)PTR___ctype_b_loc_0005b40c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_b_loc_0005b40c"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar4 = *piVar5;" (assignment_expression "iVar4 = *piVar5" (identifier "iVar4") (= "=") (pointer_expression "*piVar5" (* "*") (identifier "piVar5"))) (; ";")) (do_statement "do {\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar2 <= pbVar11);" (do "do") (compound_statement "{\n        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      }" ({ "{") (if_statement "if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;" (if "if") (parenthesized_expression "((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0)" (( "(") (binary_expression "(*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20)" (( "(") (binary_expression "*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20" (pointer_expression "*(ushort *)(iVar4 + (uint)*pbVar11 * 2)" (* "*") (cast_expression "(ushort *)(iVar4 + (uint)*pbVar11 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + (uint)*pbVar11 * 2)" (( "(") (binary_expression "iVar4 + (uint)*pbVar11 * 2" (identifier "iVar4") (+ "+") (binary_expression "(uint)*pbVar11 * 2" (binary_expression "(uint)*pbVar11" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar11")) (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "*pbVar11 = 0;" (assignment_expression "*pbVar11 = 0" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11 = pbVar11 + -1;" (assignment_expression "pbVar11 = pbVar11 + -1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + -1" (identifier "pbVar11") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar2 <= pbVar11)" (( "(") (binary_expression "pbVar2 <= pbVar11" (identifier "pbVar2") (<= "<=") (identifier "pbVar11")) () ")")) (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_000274d0:\n  if (local_2c == *(int *)puVar14) {\n    return pbVar2;\n  }" (statement_identifier "LAB_000274d0") (: ":") (if_statement "if (local_2c == *(int *)puVar14) {\n    return pbVar2;\n  }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar14)" (( "(") (binary_expression "local_2c == *(int *)puVar14" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar14" (* "*") (cast_expression "(int *)puVar14" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar14")))) () ")")) (compound_statement "{\n    return pbVar2;\n  }" ({ "{") (return_statement "return pbVar2;" (return "return") (identifier "pbVar2") (; ";")) (} "}")))) (expression_statement "(*(code *)PTR___stack_chk_fail_0005b564)();" (call_expression "(*(code *)PTR___stack_chk_fail_0005b564)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0005b564)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0005b564" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0005b564" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0005b564"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_00027900:\n                    \n  xalloc_die();" (statement_identifier "LAB_00027900") (: ":") (expression_statement "xalloc_die();" (call_expression "xalloc_die()" (identifier "xalloc_die") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}")))

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

char * function_1(char *s,int var_3)

{
  int var_17;
  type_1 *var_1;
  type_2 var_2;
  int var_6;
  int *piVar5;
  type_3 uVar6;
  char *pcVar7;
  type_4 wVar8;
  type_5 *iter;
  type_6 *var_7;
  type_6 *var_13;
  type_1 *var_9;
  type_1 *var_4;
  type_7 *ps;
  type_4 *pwVar12;
  type_1 *var_5;
  type_6 *var_14;
  char var_10;
  type_2 var_15;
  char *local_6c;
  type_8 i;
  
  var_14 = PTR___stack_chk_guard_0005b58c;
  var_17 = *(int *)PTR___stack_chk_guard_0005b58c;
  var_1 = (type_1 *)(*(type_9 *)PTR_strdup_0005b598)();
  if (var_1 == (type_1 *)0x0) goto LAB_00027900;
  var_2 = (*(type_9 *)PTR___ctype_get_mb_cur_max_0005b534)();
  var_4 = var_1;
  if (var_2 < 2) {
    if (var_3 != 0) {
      var_2 = (type_2)(char)*var_1;
      if (var_2 != 0) {
        piVar5 = (int *)(*(type_9 *)PTR___ctype_b_loc_0005b40c)();
        do {
          var_5 = var_4 + 1;
          if ((*(type_10 *)(*piVar5 + (var_2 & 0xff) * 2) & 0x20) == 0) break;
          var_2 = (type_2)(char)*var_5;
          var_4 = var_5;
        } while (var_2 != 0);
      }
      goto LAB_00027638;
    }
    goto LAB_00027668;
  }
  ps = &i.state;
  if (var_3 != 0) {
    i.cur.ptr = (char *)var_1;
    var_6 = (*(type_9 *)PTR_strlen_0005b4e4)(var_1);
    var_7 = PTR_is_basic_table_0005b300;
    i.limit = (char *)(var_1 + var_6);
    i.state.__count = 0;
    i.state.__value.__wch = 0;
    i.in_shift = false;
    i.next_done = false;
    var_5 = var_1;
    if (var_1 < i.limit) {
      pwVar12 = &i.cur.wc;
      do {
        pcVar7 = i.limit;
        i.next_done = false;
        if (i.in_shift == false) {
          if ((*(type_2 *)(var_7 + (type_2)(*var_5 >> 5) * 4) >> (*var_5 & 0x1f) & 1) == 0) {
            var_6 = (*(type_9 *)PTR_mbsinit_0005b588)(ps);
            if (var_6 != 0) {
              i.in_shift = true;
              goto LAB_000277cc;
            }
            goto LAB_00027930;
          }
          i.cur.bytes = 1;
          wVar8 = (type_4)(char)*var_5;
          i.cur.wc_valid = true;
          var_5 = (type_1 *)i.cur.ptr;
          i.cur.wc = wVar8;
        }
        else {
LAB_000277cc:
          iter = (type_5 *)pwVar12;
          i.cur.bytes = var_8(pwVar12,(char *)var_5,(int)pcVar7 - (int)var_5,ps);
          wVar8 = i.cur.wc;
          var_5 = (type_1 *)i.cur.ptr;
          if (i.cur.bytes == 0xffffffff) {
            i.cur.wc_valid = false;
            i.cur.bytes = 1;
            i.next_done = true;
            break;
          }
          if (i.cur.bytes == 0xfffffffe) {
            i.cur.wc_valid = false;
            i.next_done = true;
            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;
            break;
          }
          if (i.cur.bytes == 0) {
            i.cur.bytes = 1;
            if (*i.cur.ptr != '\0') goto LAB_0002790c;
            if (i.cur.wc != 0) goto LAB_000278dc;
          }
          i.cur.wc_valid = true;
          var_6 = (*(type_9 *)PTR_mbsinit_0005b588)(ps);
          if (var_6 != 0) {
            i.in_shift = false;
          }
        }
        i.next_done = true;
        var_6 = (*(type_9 *)PTR_iswspace_0005b4fc)(wVar8);
        if (var_6 == 0) break;
        i.next_done = false;
        var_5 = var_5 + i.cur.bytes;
        i.cur.ptr = (char *)var_5;
      } while (var_5 < i.limit);
    }
    var_6 = (*(type_9 *)PTR_strlen_0005b4e4)(var_5);
    (*(type_9 *)PTR_memmove_0005b5a4)(var_1,var_5,var_6 + 1);
    if (var_3 == 1) goto LAB_000274d0;
  }
  i.cur.ptr = (char *)var_1;
  var_6 = (*(type_9 *)PTR_strlen_0005b4e4)(var_1);
  var_7 = PTR_is_basic_table_0005b300;
  var_5 = var_1 + var_6;
  i.state.__count = 0;
  i.state.__value.__wch = 0;
  i.in_shift = false;
  i.next_done = false;
  i.limit = (char *)var_5;
  if (var_1 < var_5) {
    var_10 = '\0';
    pwVar12 = &i.cur.wc;
    var_3 = 1;
    var_9 = var_1;
LAB_0002742c:
    do {
      i.next_done = false;
      if (i.in_shift == false) {
        if ((*(type_2 *)(var_7 + (type_2)(*var_9 >> 5) * 4) >> (*var_9 & 0x1f) & 1) == 0) {
          var_6 = (*(type_9 *)PTR_mbsinit_0005b588)(ps);
          if (var_6 != 0) {
            i.in_shift = true;
            goto LAB_0002752c;
          }
          goto LAB_00027930;
        }
        i.cur.bytes = 1;
        i.cur.wc = (type_4)(char)*var_9;
        i.cur.wc_valid = true;
        var_9 = (type_1 *)(i.cur.ptr + 1);
        pcVar7 = i.cur.ptr;
      }
      else {
LAB_0002752c:
        iter = (type_5 *)pwVar12;
        i.cur.bytes = var_8(pwVar12,(char *)var_9,(int)var_5 - (int)var_9,ps);
        pcVar7 = i.cur.ptr;
        if (i.cur.bytes == 0xffffffff) {
          i.cur.wc_valid = false;
          var_9 = (type_1 *)(i.cur.ptr + 1);
          i.cur.bytes = 1;
        }
        else if (i.cur.bytes == 0xfffffffe) {
          i.cur.wc_valid = false;
          i.cur.bytes = (int)i.limit - (int)i.cur.ptr;
          var_9 = (type_1 *)i.limit;
        }
        else {
          if (i.cur.bytes == 0) {
            i.cur.bytes = 1;
            if (*i.cur.ptr != '\0') goto LAB_0002790c;
            if (i.cur.wc != 0) goto LAB_000278dc;
          }
          i.cur.wc_valid = true;
          var_9 = (type_1 *)(i.cur.ptr + i.cur.bytes);
          var_6 = (*(type_9 *)PTR_mbsinit_0005b588)(ps);
          if (var_6 != 0) {
            i.in_shift = false;
          }
        }
      }
      var_5 = (type_1 *)i.limit;
      i.next_done = true;
      if (var_10 == '\0') {
        var_10 = '\x01';
        if (i.cur.wc_valid != false) {
          var_6 = (*(type_9 *)PTR_iswspace_0005b4fc)(i.cur.wc);
          var_10 = var_6 == 0;
        }
      }
      else if (var_10 == '\x01') {
        if ((i.cur.wc_valid != false) &&
           (var_6 = (*(type_9 *)PTR_iswspace_0005b4fc)(i.cur.wc), var_6 != 0)) {
          var_10 = '\x02';
          local_6c = pcVar7;
        }
      }
      else {
        if ((var_10 == '\x02') && (i.cur.wc_valid != false)) {
          var_6 = (*(type_9 *)PTR_iswspace_0005b4fc)(i.cur.wc);
          if (var_6 == 0) {
            var_10 = '\x01';
          }
          i.cur.ptr = (char *)var_9;
          if (var_5 <= var_9) break;
          goto LAB_0002742c;
        }
        var_10 = '\x01';
      }
      i.cur.ptr = (char *)var_9;
    } while (var_9 < var_5);
    i.next_done = false;
    i.cur.ptr = (char *)var_9;
    if (var_10 == '\x02') {
      *local_6c = '\0';
    }
  }
  goto LAB_000274d0;
LAB_0002790c:
  i.cur.bytes = 1;
  (*(type_9 *)PTR___assert_fail_0005b410)
            (var_11 + 0x7cf0,var_12 + -0x7c90,0xa9,var_12 + -0x7c80);
LAB_00027930:
  var_13 = var_12 + -0x7c90;
  var_7 = var_11 + 0x7cd8;
  var_14 = PTR___assert_fail_0005b410;
  (*(type_9 *)PTR___assert_fail_0005b410)(var_7);
  if (var_13 == (type_6 *)0x0) {
    (**(type_9 **)(var_14 + 0x33ae8))();
  }
  else {
    (**(type_9 **)(var_14 + 0x33ae8))();
  }
  uVar6 = (**(type_9 **)(var_14 + 0x33c08))(0,*(int *)(var_14 + 0x3396c) + -0x7c4c,5);
  (**(type_9 **)(var_14 + 0x33ae8))(var_7,1,*(type_3 *)(var_14 + 0x33a10),uVar6,0x7e2);
  uVar6 = (**(type_9 **)(var_14 + 0x33c08))(0,*(int *)(var_14 + 0x3396c) + -0x7c48,5);
  (**(type_9 **)(var_14 + 0x33c84))(uVar6,var_7);
  if (var_15 < 10) {
                    /* WARNING: Could not recover jumptable at 0x00027a54. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    pcVar7 = (char *)(*(type_9 *)(var_14 +
                               *(int *)(*(int *)(var_14 + 0x3396c) + -0x7950 + var_15 * 4) +
                               0x3b790))();
    return pcVar7;
  }
  uVar6 = (**(type_9 **)(var_14 + 0x33c08))(0,*(int *)(var_14 + 0x3396c) + -0x7a3c,5);
  pcVar7 = (char *)(**(type_9 **)(var_14 + 0x33ae8))
                             (var_7,1,uVar6,__gp,_DAT_000630f4,uRam000630f8,uRam000630fc,
                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110);
  return pcVar7;
LAB_000278dc:
  i.cur.bytes = 1;
  var_16(iter);
LAB_00027638:
  var_6 = (*(type_9 *)PTR_strlen_0005b4e4)(var_4);
  (*(type_9 *)PTR_memmove_0005b5a4)(var_1,var_4,var_6 + 1);
  if (var_3 != 1) {
LAB_00027668:
    var_6 = (*(type_9 *)PTR_strlen_0005b4e4)(var_1);
    var_4 = var_1 + var_6 + -1;
    if (var_1 <= var_4) {
      piVar5 = (int *)(*(type_9 *)PTR___ctype_b_loc_0005b40c)();
      var_6 = *piVar5;
      do {
        if ((*(type_10 *)(var_6 + (type_2)*var_4 * 2) & 0x20) == 0) break;
        *var_4 = 0;
        var_4 = var_4 + -1;
      } while (var_1 <= var_4);
    }
  }
LAB_000274d0:
  if (var_17 == *(int *)var_14) {
    return (char *)var_1;
  }
  (*(type_9 *)PTR___stack_chk_fail_0005b564)();
LAB_00027900:
                    /* WARNING: Subroutine does not return */
  var_18();
}


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

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

byte * MASKED(undefined4 param_1,int param_2)

{
  bool bVar1;
  byte *pbVar2;
  uint uVar3;
  int iVar4;
  int *piVar5;
  int iVar6;
  undefined4 uVar7;
  undefined *puVar8;
  undefined *puVar9;
  byte *pbVar10;
  byte *pbVar11;
  byte *pbVar12;
  byte *pbVar13;
  undefined *puVar14;
  char cVar15;
  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;
  
  puVar14 = PTR___stack_chk_guard_0005b58c;
  local_2c = *(int *)PTR___stack_chk_guard_0005b58c;
  pbVar2 = (byte *)(*(code *)PTR_strdup_0005b598)();
  if (pbVar2 == (byte *)0x0) goto LAB_00027900;
  uVar3 = (*(code *)PTR___ctype_get_mb_cur_max_0005b534)();
  pbVar11 = pbVar2;
  if (uVar3 < 2) {
    if (param_2 != 0) {
      uVar3 = (uint)(char)*pbVar2;
      if (uVar3 != 0) {
        piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();
        do {
          pbVar13 = pbVar11 + 1;
          if ((*(ushort *)(*piVar5 + (uVar3 & 0xff) * 2) & 0x20) == 0) break;
          uVar3 = (uint)(char)*pbVar13;
          pbVar11 = pbVar13;
        } while (uVar3 != 0);
      }
      goto LAB_00027638;
    }
    goto LAB_00027668;
  }
  if (param_2 != 0) {
    local_54 = pbVar2;
    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);
    puVar8 = PTR_is_basic_table_0005b300;
    pbVar10 = pbVar2 + iVar4;
    local_60 = 0;
    local_5c = 0;
    bVar1 = false;
    local_58 = 0;
    pbVar13 = pbVar2;
    if (pbVar2 < pbVar10) {
      do {
        local_58 = 0;
        if (bVar1) {
LAB_000277cc:
          local_50 = rpl_mbrtowc(local_48,pbVar13,(int)pbVar10 - (int)pbVar13,&local_60);
          iVar4 = local_48[0];
          pbVar13 = local_54;
          if (local_50 == -1) {
            local_4c = '\0';
            local_50 = 1;
            local_58 = 1;
            break;
          }
          if (local_50 == -2) {
            local_4c = '\0';
            local_58 = 1;
            local_50 = (int)pbVar10 - (int)local_54;
            break;
          }
          if (local_50 == 0) {
            local_50 = 1;
            if (*local_54 != 0) goto LAB_0002790c;
            if (local_48[0] != 0) goto LAB_000278dc;
          }
          local_4c = '\x01';
          iVar6 = (*(code *)PTR_mbsinit_0005b588)(&local_60);
          if (iVar6 != 0) {
            bVar1 = false;
          }
        }
        else {
          if ((*(uint *)(puVar8 + (uint)(*pbVar13 >> 5) * 4) >> (*pbVar13 & 0x1f) & 1) == 0) {
            iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);
            if (iVar4 != 0) {
              bVar1 = true;
              goto LAB_000277cc;
            }
            goto LAB_00027930;
          }
          local_50 = 1;
          iVar4 = (int)(char)*pbVar13;
          local_4c = '\x01';
          pbVar13 = local_54;
          local_48[0] = iVar4;
        }
        local_58 = 1;
        iVar4 = (*(code *)PTR_iswspace_0005b4fc)(iVar4);
        if (iVar4 == 0) break;
        local_58 = 0;
        pbVar13 = pbVar13 + local_50;
        local_54 = pbVar13;
      } while (pbVar13 < pbVar10);
    }
    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar13);
    (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar13,iVar4 + 1);
    if (param_2 == 1) goto LAB_000274d0;
  }
  local_54 = pbVar2;
  iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);
  puVar8 = PTR_is_basic_table_0005b300;
  pbVar13 = pbVar2 + iVar4;
  local_60 = 0;
  local_5c = 0;
  bVar1 = false;
  local_58 = 0;
  if (pbVar2 < pbVar13) {
    cVar15 = '\0';
    param_2 = 1;
    pbVar10 = pbVar2;
LAB_0002742c:
    do {
      local_58 = 0;
      if (bVar1) {
LAB_0002752c:
        local_50 = rpl_mbrtowc(local_48,pbVar10,(int)pbVar13 - (int)pbVar10,&local_60);
        pbVar12 = local_54;
        if (local_50 == -1) {
          local_4c = '\0';
          pbVar10 = local_54 + 1;
          local_50 = 1;
        }
        else if (local_50 == -2) {
          local_4c = '\0';
          local_50 = (int)pbVar13 - (int)local_54;
          pbVar10 = pbVar13;
        }
        else {
          if (local_50 == 0) {
            local_50 = 1;
            if (*local_54 != 0) goto LAB_0002790c;
            if (local_48[0] != 0) goto LAB_000278dc;
          }
          local_4c = '\x01';
          pbVar10 = local_54 + local_50;
          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);
          if (iVar4 != 0) {
            bVar1 = false;
          }
        }
      }
      else {
        if ((*(uint *)(puVar8 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {
          iVar4 = (*(code *)PTR_mbsinit_0005b588)(&local_60);
          if (iVar4 != 0) {
            bVar1 = true;
            goto LAB_0002752c;
          }
          goto LAB_00027930;
        }
        local_50 = 1;
        local_48[0] = (int)(char)*pbVar10;
        local_4c = '\x01';
        pbVar10 = local_54 + 1;
        pbVar12 = local_54;
      }
      local_58 = 1;
      if (cVar15 == '\0') {
        cVar15 = '\x01';
        if (local_4c != '\0') {
          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);
          cVar15 = iVar4 == 0;
        }
      }
      else if (cVar15 == '\x01') {
        if ((local_4c != '\0') &&
           (iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]), iVar4 != 0)) {
          cVar15 = '\x02';
          local_6c = pbVar12;
        }
      }
      else {
        if ((cVar15 == '\x02') && (local_4c != '\0')) {
          iVar4 = (*(code *)PTR_iswspace_0005b4fc)(local_48[0]);
          if (iVar4 == 0) {
            cVar15 = '\x01';
          }
          local_54 = pbVar10;
          if (pbVar13 <= pbVar10) break;
          goto LAB_0002742c;
        }
        cVar15 = '\x01';
      }
      local_54 = pbVar10;
    } while (pbVar10 < pbVar13);
    local_58 = 0;
    local_54 = pbVar10;
    if (cVar15 == '\x02') {
      *local_6c = 0;
    }
  }
  goto LAB_000274d0;
LAB_0002790c:
  local_50 = 1;
  (*(code *)PTR___assert_fail_0005b410)
            (PTR_LAB_0005b128 + 0x7cf0,PTR_DAT_0005b2cc + -0x7c90,0xa9,PTR_DAT_0005b2cc + -0x7c80);
LAB_00027930:
  puVar9 = PTR_DAT_0005b2cc + -0x7c90;
  puVar8 = PTR_LAB_0005b128 + 0x7cd8;
  puVar14 = PTR___assert_fail_0005b410;
  (*(code *)PTR___assert_fail_0005b410)(puVar8);
  if (puVar9 == (undefined *)0x0) {
    (**(code **)(puVar14 + 0x33ae8))();
  }
  else {
    (**(code **)(puVar14 + 0x33ae8))();
  }
  uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c4c,5);
  (**(code **)(puVar14 + 0x33ae8))(puVar8,1,*(undefined4 *)(puVar14 + 0x33a10),uVar7,0x7e2);
  uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7c48,5);
  (**(code **)(puVar14 + 0x33c84))(uVar7,puVar8);
  if (uStack_74 < 10) {
                    /* WARNING: Could not recover jumptable at 0x00027a54. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    pbVar2 = (byte *)(*(code *)(puVar14 +
                               *(int *)(*(int *)(puVar14 + 0x3396c) + -0x7950 + uStack_74 * 4) +
                               0x3b790))();
    return pbVar2;
  }
  uVar7 = (**(code **)(puVar14 + 0x33c08))(0,*(int *)(puVar14 + 0x3396c) + -0x7a3c,5);
  pbVar2 = (byte *)(**(code **)(puVar14 + 0x33ae8))
                             (puVar8,1,uVar7,__gp_1,_DAT_000630f4,uRam000630f8,uRam000630fc,
                              uRam00063100,uRam00063104,uRam00063108,uRam0006310c,uRam00063110);
  return pbVar2;
LAB_000278dc:
  local_50 = 1;
  FUN_000272f0();
LAB_00027638:
  iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar11);
  (*(code *)PTR_memmove_0005b5a4)(pbVar2,pbVar11,iVar4 + 1);
  if (param_2 != 1) {
LAB_00027668:
    iVar4 = (*(code *)PTR_strlen_0005b4e4)(pbVar2);
    pbVar11 = pbVar2 + iVar4 + -1;
    if (pbVar2 <= pbVar11) {
      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0005b40c)();
      iVar4 = *piVar5;
      do {
        if ((*(ushort *)(iVar4 + (uint)*pbVar11 * 2) & 0x20) == 0) break;
        *pbVar11 = 0;
        pbVar11 = pbVar11 + -1;
      } while (pbVar2 <= pbVar11);
    }
  }
LAB_000274d0:
  if (local_2c == *(int *)puVar14) {
    return pbVar2;
  }
  (*(code *)PTR___stack_chk_fail_0005b564)();
LAB_00027900:
                    /* WARNING: Subroutine does not return */
  xalloc_die();
}

