
char * display_string(char *buf,size_t column,size_t span,_Bool isdata)

{
  undefined *puVar1;
  size_t maxlen;
  int iVar2;
  int charwidth;
  
  puVar1 = PTR_tabsize_000777bc;
  maxlen = actual_x(buf,column);
  strnlenpt(buf,maxlen);
  iVar2 = (*(code *)PTR_strlen_00077ff8)(buf + maxlen);
                    /* WARNING: Subroutine does not return */
  nmalloc((*(int *)puVar1 + 6) * iVar2 + 1);
}



undefined1 * display_string(int param_1,uint param_2,int param_3,int param_4)

{
  int iVar1;
  int iVar2;
  undefined *puVar3;
  undefined *puVar4;
  undefined *puVar5;
  undefined *puVar6;
  undefined *puVar7;
  undefined *puVar8;
  int iVar9;
  uint uVar10;
  undefined1 *puVar11;
  int iVar12;
  char *pcVar13;
  undefined1 uVar15;
  uint uVar14;
  char cVar19;
  char *pcVar16;
  uint uVar17;
  undefined1 *puVar18;
  undefined1 *puVar20;
  undefined1 *puVar21;
  undefined1 *puVar22;
  char *pcVar23;
  uint uVar24;
  int local_30;
  int local_2c;
  
  puVar8 = PTR___stack_chk_guard_000780f8;
  puVar4 = PTR_tabsize_000777bc;
  uVar24 = param_2 + param_3;
  local_2c = *(int *)PTR___stack_chk_guard_000780f8;
  iVar9 = actual_x();
  pcVar23 = (char *)(param_1 + iVar9);
  uVar10 = strnlenpt(param_1,iVar9);
  iVar9 = (*(code *)PTR_strlen_00077ff8)(pcVar23);
  puVar11 = (undefined1 *)nmalloc((*(int *)puVar4 + 6) * iVar9 + 1);
  cVar19 = *pcVar23;
  if (cVar19 == '\0') {
    puVar22 = (undefined1 *)0x0;
    goto LAB_00044f3c;
  }
  if (cVar19 != '\t') {
    if (uVar10 < param_2) {
      iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);
      if (iVar9 == 0) {
        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);
        if (iVar9 == 2) {
          puVar22 = (undefined1 *)0x1;
          puVar21 = puVar11;
          goto LAB_000452ec;
        }
        cVar19 = *pcVar23;
        puVar22 = (undefined1 *)0x0;
      }
      else {
        param_2 = param_2 + 1;
        puVar22 = (undefined1 *)0x1;
        uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);
        puVar3 = PTR_parse_mbchar_00077718;
        *puVar11 = uVar15;
        iVar9 = (*(code *)puVar3)(pcVar23,0,0);
        pcVar23 = pcVar23 + iVar9;
        cVar19 = *pcVar23;
      }
      goto LAB_00044e7c;
    }
    if (uVar10 != 0) {
      puVar22 = (undefined1 *)0x0;
      if (param_4 == 0) goto LAB_00044e7c;
      if ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0) {
        iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);
        puVar22 = (undefined1 *)0x0;
        if (iVar9 == 0) goto LAB_0004536c;
        goto LAB_0004529c;
      }
    }
  }
  puVar22 = (undefined1 *)0x0;
LAB_00044e7c:
  do {
    puVar6 = PTR_whitespace_len_000778d4;
    puVar5 = PTR_whitespace_000777fc;
    puVar3 = PTR_flags_0007759c;
    while (cVar19 != '\0') {
      if (param_2 < uVar24) {
        if (cVar19 == ' ') goto LAB_00044fc8;
LAB_00044eac:
        local_30 = 1;
        if (cVar19 == '\t') {
          if (*(int *)puVar3 << 6 < 0) {
            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&
               ((*(uint *)(puVar3 + 4) & 2) != 0)) {
              if (*(uint *)puVar4 == 0) {
                trap(7);
              }
              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;
            }
            puVar21 = puVar22;
            if (*(int *)puVar6 < 1) goto LAB_000450a0;
            iVar9 = 0;
            do {
              puVar18 = puVar22 + iVar9;
              puVar21 = puVar22 + iVar9 + 1;
              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);
              iVar9 = iVar9 + 1;
              puVar11[(int)puVar18] = *puVar20;
            } while (iVar9 < *(int *)puVar6);
            uVar17 = *(uint *)puVar4;
          }
          else {
LAB_00045094:
            puVar11[(int)puVar22] = 0x20;
            puVar21 = puVar22 + 1;
LAB_000450a0:
            uVar17 = *(uint *)puVar4;
          }
          uVar14 = param_2 + 1;
          if (uVar17 == 0) {
            trap(7);
          }
          puVar22 = puVar21;
          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {
            do {
              puVar22 = puVar21 + (uVar14 - param_2);
              uVar14 = uVar14 + 1;
              (puVar11 + (int)puVar22)[-1] = 0x20;
              if (*(uint *)puVar4 == 0) {
                trap(7);
              }
            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));
          }
          pcVar23 = pcVar23 + 1;
          cVar19 = *pcVar23;
          param_2 = uVar14;
        }
        else {
          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);
          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);
          puVar7 = PTR_control_mbrep_00077df4;
          pcVar16 = puVar11 + (int)puVar22;
          if (iVar12 == 0) {
            pcVar13 = pcVar23 + 1;
            if (iVar9 < 1) {
              *pcVar16 = -0x11;
              puVar11[(int)(puVar22 + 1)] = 0xbf;
              puVar11[(int)(puVar22 + 2)] = 0xbd;
              if (iVar9 < -1) {
                pcVar13 = pcVar13 + iVar9 + 7;
              }
              cVar19 = *pcVar13;
              puVar22 = puVar22 + 3;
              pcVar23 = pcVar13;
              param_2 = param_2 + 1;
            }
            else {
              while( true ) {
                *pcVar16 = pcVar13[-1];
                if (pcVar23 + iVar9 == pcVar13) break;
                pcVar13 = pcVar13 + 1;
                pcVar16 = pcVar16 + 1;
              }
              cVar19 = *pcVar13;
              puVar22 = puVar22 + iVar9;
              pcVar23 = pcVar13;
              param_2 = param_2 + local_30;
            }
          }
          else {
            *pcVar16 = '^';
            uVar15 = (*(code *)puVar7)(pcVar23,param_4);
            pcVar23 = pcVar23 + iVar9;
            puVar11[(int)(puVar22 + 1)] = uVar15;
            cVar19 = *pcVar23;
            puVar22 = puVar22 + 2;
            param_2 = param_2 + 2;
          }
        }
      }
      else {
        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);
        if (iVar9 != 0) {
          if ((*pcVar23 != '\0') &&
             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||
              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {
            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);
            puVar22 = puVar11 + (int)pcVar23;
            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);
            if (iVar9 == 2) {
              pcVar23 = pcVar23 + 1;
              *puVar22 = 0x3e;
              puVar22 = puVar11 + (int)pcVar23;
            }
            goto LAB_00044f40;
          }
          break;
        }
        cVar19 = *pcVar23;
        if (cVar19 != ' ') goto LAB_00044eac;
LAB_00044fc8:
        local_30 = 1;
        if (*(int *)puVar3 << 6 < 0) {
          iVar9 = *(int *)puVar6;
          puVar21 = puVar22;
          if (0 < *(int *)(puVar6 + 4)) {
            iVar12 = iVar9;
            do {
              iVar1 = iVar12 - iVar9;
              iVar2 = iVar12 + (1 - iVar9);
              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);
              iVar12 = iVar12 + 1;
              puVar11[(int)(puVar22 + iVar1)] = *puVar21;
              puVar21 = puVar22 + iVar2;
            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));
          }
        }
        else {
          puVar11[(int)puVar22] = cVar19;
          puVar21 = puVar22 + 1;
        }
        param_2 = param_2 + 1;
        pcVar23 = pcVar23 + 1;
        cVar19 = *pcVar23;
        puVar22 = puVar21;
      }
    }
LAB_00044f3c:
    puVar22 = puVar11 + (int)puVar22;
LAB_00044f40:
    *puVar22 = 0;
    if (local_2c == *(int *)puVar8) {
      return puVar11;
    }
    (*(code *)PTR___stack_chk_fail_000780c0)();
LAB_0004536c:
    iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);
    if (iVar9 == 2) {
      if (param_2 == uVar10) {
        param_2 = param_2 + 1;
        *puVar11 = 0x20;
        puVar22 = (undefined1 *)0x2;
        puVar21 = puVar11 + 1;
      }
      else {
        puVar22 = (undefined1 *)0x1;
        puVar21 = puVar11;
      }
LAB_000452ec:
      puVar3 = PTR_parse_mbchar_00077718;
      *puVar21 = 0x3c;
      iVar9 = (*(code *)puVar3)(pcVar23,0,0);
      param_2 = param_2 + 1;
      pcVar23 = pcVar23 + iVar9;
      cVar19 = *pcVar23;
    }
    else {
LAB_0004529c:
      cVar19 = *pcVar23;
    }
  } while( true );
}


lui gp,0x4
addiu gp,gp,-0x5874
addu gp,gp,t9
lw v0,-0x7428(gp)
addiu sp,sp,-0x60
lw t9,-0x7e68(gp)
sw v0,0x28(sp)
sw ra,0x5c(sp)
sw a3,0x6c(sp)
sw gp,0x10(sp)
sw s8,0x58(sp)
sw s7,0x54(sp)
or s7,a1,zero
sw s6,0x50(sp)
sw s2,0x40(sp)
addu s2,a1,a2
sw s1,0x3c(sp)
sw s0,0x38(sp)
or s0,a0,zero
sw s5,0x4c(sp)
sw s4,0x48(sp)
sw s3,0x44(sp)
lw v0,0x0(v0)
lw s6,-0x7d64(gp)
sw v0,0x34(sp)
bal 0x00042c00
_nop
or a0,s0,zero
lw gp,0x10(sp)
or a1,v0,zero
lw t9,-0x798c(gp)
bal 0x00042cd0
_addu s1,s0,v0
or a0,s1,zero
lw gp,0x10(sp)
or s0,v0,zero
lw t9,-0x7528(gp)
jalr t9
_sw v0,0x2c(sp)
lw a0,0x0(s6)
lw gp,0x10(sp)
addiu a0,a0,0x6
mul a0,a0,v0
lw t9,-0x7fbc(gp)
bal 0x000425a4
_addiu a0,a0,0x1
lb v1,0x0(s1)
or s8,v0,zero
beq v1,zero,0x00044f88
_lw gp,0x10(sp)
li v0,0x9
beq v1,v0,0x00044e78
_sltu v0,s0,s7
bne v0,zero,0x000452b0
_lw t9,-0x7ba4(gp)
bne s0,zero,0x00045270
_lw v0,0x6c(sp)
or s0,zero,zero
lw v0,-0x7f84(gp)
addiu s3,sp,0x30
lw s5,-0x7c4c(gp)
lw s4,-0x7d24(gp)
beq v1,zero,0x00044f3c
_sw v0,0x20(sp)
sltu v0,s7,s2
beq v0,zero,0x00044fa0
_li a0,0x1
li v0,0x20
beq v1,v0,0x00044fc8
_sw a0,0x30(sp)
li v0,0x9
beq v1,v0,0x00045040
_lw t9,-0x7734(gp)
or a0,s1,zero
jalr t9
_or a1,s3,zero
or a0,s1,zero
lw gp,0x10(sp)
lw t9,-0x7ba4(gp)
jalr t9
_sw v0,0x1c(sp)
addu v1,s8,s0
lw gp,0x10(sp)
addiu a0,s0,0x1
bne v0,zero,0x00044ff8
_lw t3,0x1c(sp)
addiu v0,s1,0x1
bgtz t3,0x00045164
_or t4,v0,zero
li v0,-0x11
addiu a1,s0,0x2
addu a0,s8,a0
sb v0,0x0(v1)
li v1,-0x41
addu a1,s8,a1
sb v1,0x0(a0)
li v1,-0x43
slti v0,t3,-0x1
addiu s0,s0,0x3
sb v1,0x0(a1)
bne v0,zero,0x00044f90
_addiu s7,s7,0x1
or s1,t4,zero
lb v1,0x0(s1)
bne v1,zero,0x00044e98
_sltu v0,s7,s2
addu s0,s8,s0
lw v1,0x28(sp)
or v0,s8,zero
lw a0,0x34(sp)
sb zero,0x0(s0)
lw v1,0x0(v1)
bne a0,v1,0x00045360
_lw ra,0x5c(sp)
lw s8,0x58(sp)
lw s7,0x54(sp)
lw s6,0x50(sp)
lw s5,0x4c(sp)
lw s4,0x48(sp)
lw s3,0x44(sp)
lw s2,0x40(sp)
lw s1,0x3c(sp)
lw s0,0x38(sp)
jr ra
_addiu sp,sp,0x60
b 0x00044f3c
_or s0,zero,zero
addiu t3,t3,0x7
addu t4,t4,t3
b 0x00044f30
_or s1,t4,zero
lw t9,-0x7730(gp)
jalr t9
_or a0,s1,zero
bne v0,zero,0x000451f8
_lw gp,0x10(sp)
lb v1,0x0(s1)
li a0,0x1
li v0,0x20
bne v1,v0,0x00044eac
_sw a0,0x30(sp)
lw v0,0x20(sp)
lw v0,0x0(v0)
ext v0,v0,0x19,0x1
bne v0,zero,0x00045198
_nop
addu v0,s8,s0
addiu s0,s0,0x1
sb v1,0x0(v0)
addiu s7,s7,0x1
addiu s1,s1,0x1
b 0x00044f34
_lb v1,0x0(s1)
li v0,0x5e
lw t9,-0x772c(gp)
addu t4,s8,a0
sw t3,0x24(sp)
sb v0,0x0(v1)
or a0,s1,zero
sw t4,0x1c(sp)
addiu s0,s0,0x2
lw a1,0x6c(sp)
jalr t9
_addiu s7,s7,0x2
lw t3,0x24(sp)
lw t4,0x1c(sp)
lw gp,0x10(sp)
addu s1,s1,t3
sb v0,0x0(t4)
b 0x00044f34
_lb v1,0x0(s1)
lw v0,0x20(sp)
lw v0,0x0(v0)
ext v0,v0,0x19,0x1
beq v0,zero,0x00045094
_addu v0,s8,s0
bne s0,zero,0x00045118
_lw v0,0x6c(sp)
beq v0,zero,0x00045118
_lw v0,0x20(sp)
lw v0,0x4(v0)
andi v0,v0,0x2
beq v0,zero,0x00045118
_nop
lw v0,0x0(s6)
teq v0,zero
divu s7,v0
mfhi v0
beq v0,zero,0x00045118
_lw v0,0x2c(sp)
beq s7,v0,0x00045118
_addu v0,s8,s0
li v1,0x20
addiu a1,s0,0x1
sb v1,0x0(v0)
lw v1,0x0(s6)
addiu v0,s7,0x1
teq v1,zero
divu v0,v1
mfhi v1
beq v1,zero,0x000452a4
_or s0,a1,zero
sltu v1,v0,s2
beq v1,zero,0x000452a4
_nop
subu t0,a1,s7
b 0x000450e0
_li a0,0x20
sltu v1,v0,s2
beq v1,zero,0x00045108
_nop
addu s0,t0,v0
addiu v0,v0,0x1
addu v1,s8,s0
sb a0,-0x1(v1)
lw v1,0x0(s6)
teq v1,zero
divu v0,v1
mfhi v1
bne v1,zero,0x000450d4
_nop
addiu s1,s1,0x1
or s7,v0,zero
b 0x00044f34
_lb v1,0x0(s1)
lw v0,0x0(s5)
blez v0,0x000450a0
_or a1,s0,zero
or v0,zero,zero
addiu t3,s0,0x1
lw a0,0x0(s4)
addu v1,v0,s0
addu a1,t3,v0
addu v1,s8,v1
addu a0,a0,v0
addiu v0,v0,0x1
lb a0,0x0(a0)
sb a0,0x0(v1)
lw v1,0x0(s5)
slt v1,v0,v1
bne v1,zero,0x0004512c
_nop
b 0x000450a4
_lw v1,0x0(s6)
b 0x00045170
_addu a1,s1,t3
addiu v0,v0,0x1
lb a0,-0x1(v0)
addiu v1,v1,0x1
or s1,v0,zero
bne a1,v0,0x0004516c
_sb a0,-0x1(v1)
lw v0,0x30(sp)
addu s0,s0,t3
lb v1,0x0(s1)
b 0x00044f34
_addu s7,s7,v0
lw v1,0x4(s5)
blez v1,0x00044fe8
_lw v0,0x0(s5)
li v1,0x1
subu t3,s0,v0
subu a1,v1,v0
addu a1,a1,s0
lw a0,0x0(s4)
addu v1,t3,v0
addu s0,a1,v0
addu v1,s8,v1
addu a0,a0,v0
addiu v0,v0,0x1
lb a0,0x0(a0)
sb a0,0x0(v1)
lw v1,0x0(s5)
lw a0,0x4(s5)
addu v1,v1,a0
slt v1,v0,v1
bne v1,zero,0x000451b4
_nop
addiu s7,s7,0x1
b 0x00044ff0
_addiu s1,s1,0x1
lb v0,0x0(s1)
beq v0,zero,0x00044f3c
_nop
sltu s2,s2,s7
bne s2,zero,0x00045228
_lw v0,0x6c(sp)
beq v0,zero,0x00044f3c
_lw v0,-0x7f84(gp)
lw v0,0x4(v0)
andi v0,v0,0x2
bne v0,zero,0x00044f3c
_nop
lw t9,-0x7908(gp)
or a1,s0,zero
jalr t9
_or a0,s8,zero
lw gp,0x10(sp)
addu s0,s8,v0
or s1,v0,zero
lw t9,-0x7730(gp)
jalr t9
_or a0,s0,zero
li v1,0x2
bne v0,v1,0x00044f40
_lw gp,0x10(sp)
addiu s1,s1,0x1
li v0,0x3e
sb v0,0x0(s0)
b 0x00044f40
_addu s0,s8,s1
beq v0,zero,0x00044e7c
_or s0,zero,zero
lw v0,-0x7f84(gp)
lw s0,0x4(v0)
andi s0,s0,0x2
bne s0,zero,0x00044e78
_lw t9,-0x7ba4(gp)
jalr t9
_or a0,s1,zero
beq v0,zero,0x0004536c
_lw gp,0x10(sp)
b 0x00044e7c
_lb v1,0x0(s1)
addiu s1,s1,0x1
b 0x00045110
_or s7,v0,zero
jalr t9
_or a0,s1,zero
bne v0,zero,0x0004531c
_lw gp,0x10(sp)
lw t9,-0x7730(gp)
jalr t9
_or a0,s1,zero
li v1,0x2
beq v0,v1,0x000452e4
_lw gp,0x10(sp)
lb v1,0x0(s1)
b 0x00044e7c
_or s0,zero,zero
li s0,0x1
or v0,s8,zero
lw t9,-0x7e08(gp)
li v1,0x3c
or a2,zero,zero
or a1,zero,zero
sb v1,0x0(v0)
jalr t9
_or a0,s1,zero
addiu s7,s7,0x1
addu s1,s1,v0
lw gp,0x10(sp)
b 0x00044e7c
_lb v1,0x0(s1)
lw t9,-0x772c(gp)
or a0,s1,zero
lw a1,0x6c(sp)
addiu s7,s7,0x1
jalr t9
_li s0,0x1
or a2,zero,zero
lw gp,0x10(sp)
or a1,zero,zero
or a0,s1,zero
lw t9,-0x7e08(gp)
jalr t9
_sb v0,0x0(s8)
addu s1,s1,v0
lw gp,0x10(sp)
b 0x00044e7c
_lb v1,0x0(s1)
lw t9,-0x7460(gp)
jalr t9
_nop
lw t9,-0x7730(gp)
jalr t9
_or a0,s1,zero
li v1,0x2
bne v0,v1,0x0004529c
_lw gp,0x10(sp)
lw v0,0x2c(sp)
bne s7,v0,0x000453a8
_nop
li v0,0x20
addiu s7,s7,0x1
sb v0,0x0(s8)
li s0,0x2
b 0x000452ec
_addiu v0,s8,0x1
or v0,s8,zero
b 0x000452ec
_li s0,0x1
(translation_unit "undefined1 * display_string(int param_1,uint param_2,int param_3,int param_4)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  int iVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  int iVar12;\n  char *pcVar13;\n  undefined1 uVar15;\n  uint uVar14;\n  char cVar19;\n  char *pcVar16;\n  uint uVar17;\n  undefined1 *puVar18;\n  undefined1 *puVar20;\n  undefined1 *puVar21;\n  undefined1 *puVar22;\n  char *pcVar23;\n  uint uVar24;\n  int local_30;\n  int local_2c;\n  \n  puVar8 = PTR___stack_chk_guard_000780f8;\n  puVar4 = PTR_tabsize_000777bc;\n  uVar24 = param_2 + param_3;\n  local_2c = *(int *)PTR___stack_chk_guard_000780f8;\n  iVar9 = actual_x();\n  pcVar23 = (char *)(param_1 + iVar9);\n  uVar10 = strnlenpt(param_1,iVar9);\n  iVar9 = (*(code *)PTR_strlen_00077ff8)(pcVar23);\n  puVar11 = (undefined1 *)nmalloc((*(int *)puVar4 + 6) * iVar9 + 1);\n  cVar19 = *pcVar23;\n  if (cVar19 == '\0') {\n    puVar22 = (undefined1 *)0x0;\n    goto LAB_00044f3c;\n  }\n  if (cVar19 != '\t') {\n    if (uVar10 < param_2) {\n      iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n      if (iVar9 == 0) {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 == 2) {\n          puVar22 = (undefined1 *)0x1;\n          puVar21 = puVar11;\n          goto LAB_000452ec;\n        }\n        cVar19 = *pcVar23;\n        puVar22 = (undefined1 *)0x0;\n      }\n      else {\n        param_2 = param_2 + 1;\n        puVar22 = (undefined1 *)0x1;\n        uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);\n        puVar3 = PTR_parse_mbchar_00077718;\n        *puVar11 = uVar15;\n        iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n        pcVar23 = pcVar23 + iVar9;\n        cVar19 = *pcVar23;\n      }\n      goto LAB_00044e7c;\n    }\n    if (uVar10 != 0) {\n      puVar22 = (undefined1 *)0x0;\n      if (param_4 == 0) goto LAB_00044e7c;\n      if ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0) {\n        iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n        puVar22 = (undefined1 *)0x0;\n        if (iVar9 == 0) goto LAB_0004536c;\n        goto LAB_0004529c;\n      }\n    }\n  }\n  puVar22 = (undefined1 *)0x0;\nLAB_00044e7c:\n  do {\n    puVar6 = PTR_whitespace_len_000778d4;\n    puVar5 = PTR_whitespace_000777fc;\n    puVar3 = PTR_flags_0007759c;\n    while (cVar19 != '\0') {\n      if (param_2 < uVar24) {\n        if (cVar19 == ' ') goto LAB_00044fc8;\nLAB_00044eac:\n        local_30 = 1;\n        if (cVar19 == '\t') {\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }\n        else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }\n        cVar19 = *pcVar23;\n        if (cVar19 != ' ') goto LAB_00044eac;\nLAB_00044fc8:\n        local_30 = 1;\n        if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }\n        param_2 = param_2 + 1;\n        pcVar23 = pcVar23 + 1;\n        cVar19 = *pcVar23;\n        puVar22 = puVar21;\n      }\n    }\nLAB_00044f3c:\n    puVar22 = puVar11 + (int)puVar22;\nLAB_00044f40:\n    *puVar22 = 0;\n    if (local_2c == *(int *)puVar8) {\n      return puVar11;\n    }\n    (*(code *)PTR___stack_chk_fail_000780c0)();\nLAB_0004536c:\n    iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n    if (iVar9 == 2) {\n      if (param_2 == uVar10) {\n        param_2 = param_2 + 1;\n        *puVar11 = 0x20;\n        puVar22 = (undefined1 *)0x2;\n        puVar21 = puVar11 + 1;\n      }\n      else {\n        puVar22 = (undefined1 *)0x1;\n        puVar21 = puVar11;\n      }\nLAB_000452ec:\n      puVar3 = PTR_parse_mbchar_00077718;\n      *puVar21 = 0x3c;\n      iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n      param_2 = param_2 + 1;\n      pcVar23 = pcVar23 + iVar9;\n      cVar19 = *pcVar23;\n    }\n    else {\nLAB_0004529c:\n      cVar19 = *pcVar23;\n    }\n  } while( true );\n}\n\n" (function_definition "undefined1 * display_string(int param_1,uint param_2,int param_3,int param_4)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  int iVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  int iVar12;\n  char *pcVar13;\n  undefined1 uVar15;\n  uint uVar14;\n  char cVar19;\n  char *pcVar16;\n  uint uVar17;\n  undefined1 *puVar18;\n  undefined1 *puVar20;\n  undefined1 *puVar21;\n  undefined1 *puVar22;\n  char *pcVar23;\n  uint uVar24;\n  int local_30;\n  int local_2c;\n  \n  puVar8 = PTR___stack_chk_guard_000780f8;\n  puVar4 = PTR_tabsize_000777bc;\n  uVar24 = param_2 + param_3;\n  local_2c = *(int *)PTR___stack_chk_guard_000780f8;\n  iVar9 = actual_x();\n  pcVar23 = (char *)(param_1 + iVar9);\n  uVar10 = strnlenpt(param_1,iVar9);\n  iVar9 = (*(code *)PTR_strlen_00077ff8)(pcVar23);\n  puVar11 = (undefined1 *)nmalloc((*(int *)puVar4 + 6) * iVar9 + 1);\n  cVar19 = *pcVar23;\n  if (cVar19 == '\0') {\n    puVar22 = (undefined1 *)0x0;\n    goto LAB_00044f3c;\n  }\n  if (cVar19 != '\t') {\n    if (uVar10 < param_2) {\n      iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n      if (iVar9 == 0) {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 == 2) {\n          puVar22 = (undefined1 *)0x1;\n          puVar21 = puVar11;\n          goto LAB_000452ec;\n        }\n        cVar19 = *pcVar23;\n        puVar22 = (undefined1 *)0x0;\n      }\n      else {\n        param_2 = param_2 + 1;\n        puVar22 = (undefined1 *)0x1;\n        uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);\n        puVar3 = PTR_parse_mbchar_00077718;\n        *puVar11 = uVar15;\n        iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n        pcVar23 = pcVar23 + iVar9;\n        cVar19 = *pcVar23;\n      }\n      goto LAB_00044e7c;\n    }\n    if (uVar10 != 0) {\n      puVar22 = (undefined1 *)0x0;\n      if (param_4 == 0) goto LAB_00044e7c;\n      if ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0) {\n        iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n        puVar22 = (undefined1 *)0x0;\n        if (iVar9 == 0) goto LAB_0004536c;\n        goto LAB_0004529c;\n      }\n    }\n  }\n  puVar22 = (undefined1 *)0x0;\nLAB_00044e7c:\n  do {\n    puVar6 = PTR_whitespace_len_000778d4;\n    puVar5 = PTR_whitespace_000777fc;\n    puVar3 = PTR_flags_0007759c;\n    while (cVar19 != '\0') {\n      if (param_2 < uVar24) {\n        if (cVar19 == ' ') goto LAB_00044fc8;\nLAB_00044eac:\n        local_30 = 1;\n        if (cVar19 == '\t') {\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }\n        else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }\n        cVar19 = *pcVar23;\n        if (cVar19 != ' ') goto LAB_00044eac;\nLAB_00044fc8:\n        local_30 = 1;\n        if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }\n        param_2 = param_2 + 1;\n        pcVar23 = pcVar23 + 1;\n        cVar19 = *pcVar23;\n        puVar22 = puVar21;\n      }\n    }\nLAB_00044f3c:\n    puVar22 = puVar11 + (int)puVar22;\nLAB_00044f40:\n    *puVar22 = 0;\n    if (local_2c == *(int *)puVar8) {\n      return puVar11;\n    }\n    (*(code *)PTR___stack_chk_fail_000780c0)();\nLAB_0004536c:\n    iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n    if (iVar9 == 2) {\n      if (param_2 == uVar10) {\n        param_2 = param_2 + 1;\n        *puVar11 = 0x20;\n        puVar22 = (undefined1 *)0x2;\n        puVar21 = puVar11 + 1;\n      }\n      else {\n        puVar22 = (undefined1 *)0x1;\n        puVar21 = puVar11;\n      }\nLAB_000452ec:\n      puVar3 = PTR_parse_mbchar_00077718;\n      *puVar21 = 0x3c;\n      iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n      param_2 = param_2 + 1;\n      pcVar23 = pcVar23 + iVar9;\n      cVar19 = *pcVar23;\n    }\n    else {\nLAB_0004529c:\n      cVar19 = *pcVar23;\n    }\n  } while( true );\n}" type_identifier (pointer_declarator "* display_string(int param_1,uint param_2,int param_3,int param_4)" * (function_declarator "display_string(int param_1,uint param_2,int param_3,int param_4)" identifier (parameter_list "(int param_1,uint param_2,int param_3,int param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) )))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  int iVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  int iVar12;\n  char *pcVar13;\n  undefined1 uVar15;\n  uint uVar14;\n  char cVar19;\n  char *pcVar16;\n  uint uVar17;\n  undefined1 *puVar18;\n  undefined1 *puVar20;\n  undefined1 *puVar21;\n  undefined1 *puVar22;\n  char *pcVar23;\n  uint uVar24;\n  int local_30;\n  int local_2c;\n  \n  puVar8 = PTR___stack_chk_guard_000780f8;\n  puVar4 = PTR_tabsize_000777bc;\n  uVar24 = param_2 + param_3;\n  local_2c = *(int *)PTR___stack_chk_guard_000780f8;\n  iVar9 = actual_x();\n  pcVar23 = (char *)(param_1 + iVar9);\n  uVar10 = strnlenpt(param_1,iVar9);\n  iVar9 = (*(code *)PTR_strlen_00077ff8)(pcVar23);\n  puVar11 = (undefined1 *)nmalloc((*(int *)puVar4 + 6) * iVar9 + 1);\n  cVar19 = *pcVar23;\n  if (cVar19 == '\0') {\n    puVar22 = (undefined1 *)0x0;\n    goto LAB_00044f3c;\n  }\n  if (cVar19 != '\t') {\n    if (uVar10 < param_2) {\n      iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n      if (iVar9 == 0) {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 == 2) {\n          puVar22 = (undefined1 *)0x1;\n          puVar21 = puVar11;\n          goto LAB_000452ec;\n        }\n        cVar19 = *pcVar23;\n        puVar22 = (undefined1 *)0x0;\n      }\n      else {\n        param_2 = param_2 + 1;\n        puVar22 = (undefined1 *)0x1;\n        uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);\n        puVar3 = PTR_parse_mbchar_00077718;\n        *puVar11 = uVar15;\n        iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n        pcVar23 = pcVar23 + iVar9;\n        cVar19 = *pcVar23;\n      }\n      goto LAB_00044e7c;\n    }\n    if (uVar10 != 0) {\n      puVar22 = (undefined1 *)0x0;\n      if (param_4 == 0) goto LAB_00044e7c;\n      if ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0) {\n        iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n        puVar22 = (undefined1 *)0x0;\n        if (iVar9 == 0) goto LAB_0004536c;\n        goto LAB_0004529c;\n      }\n    }\n  }\n  puVar22 = (undefined1 *)0x0;\nLAB_00044e7c:\n  do {\n    puVar6 = PTR_whitespace_len_000778d4;\n    puVar5 = PTR_whitespace_000777fc;\n    puVar3 = PTR_flags_0007759c;\n    while (cVar19 != '\0') {\n      if (param_2 < uVar24) {\n        if (cVar19 == ' ') goto LAB_00044fc8;\nLAB_00044eac:\n        local_30 = 1;\n        if (cVar19 == '\t') {\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }\n        else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }\n        cVar19 = *pcVar23;\n        if (cVar19 != ' ') goto LAB_00044eac;\nLAB_00044fc8:\n        local_30 = 1;\n        if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }\n        param_2 = param_2 + 1;\n        pcVar23 = pcVar23 + 1;\n        cVar19 = *pcVar23;\n        puVar22 = puVar21;\n      }\n    }\nLAB_00044f3c:\n    puVar22 = puVar11 + (int)puVar22;\nLAB_00044f40:\n    *puVar22 = 0;\n    if (local_2c == *(int *)puVar8) {\n      return puVar11;\n    }\n    (*(code *)PTR___stack_chk_fail_000780c0)();\nLAB_0004536c:\n    iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n    if (iVar9 == 2) {\n      if (param_2 == uVar10) {\n        param_2 = param_2 + 1;\n        *puVar11 = 0x20;\n        puVar22 = (undefined1 *)0x2;\n        puVar21 = puVar11 + 1;\n      }\n      else {\n        puVar22 = (undefined1 *)0x1;\n        puVar21 = puVar11;\n      }\nLAB_000452ec:\n      puVar3 = PTR_parse_mbchar_00077718;\n      *puVar21 = 0x3c;\n      iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n      param_2 = param_2 + 1;\n      pcVar23 = pcVar23 + iVar9;\n      cVar19 = *pcVar23;\n    }\n    else {\nLAB_0004529c:\n      cVar19 = *pcVar23;\n    }\n  } while( true );\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "undefined1 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "undefined1 uVar15;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "char cVar19;" primitive_type identifier ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "undefined1 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "undefined1 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined1 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "undefined1 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "char *pcVar23;" primitive_type (pointer_declarator "*pcVar23" * identifier) ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar8 = PTR___stack_chk_guard_000780f8;" (assignment_expression "puVar8 = PTR___stack_chk_guard_000780f8" identifier = identifier) ;) (expression_statement "puVar4 = PTR_tabsize_000777bc;" (assignment_expression "puVar4 = PTR_tabsize_000777bc" identifier = identifier) ;) (expression_statement "uVar24 = param_2 + param_3;" (assignment_expression "uVar24 = param_2 + param_3" identifier = (binary_expression "param_2 + param_3" identifier + identifier)) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000780f8;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000780f8" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000780f8" * (cast_expression "(int *)PTR___stack_chk_guard_000780f8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar9 = actual_x();" (assignment_expression "iVar9 = actual_x()" identifier = (call_expression "actual_x()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar23 = (char *)(param_1 + iVar9);" (assignment_expression "pcVar23 = (char *)(param_1 + iVar9)" identifier = (cast_expression "(char *)(param_1 + iVar9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar9)" ( (binary_expression "param_1 + iVar9" identifier + identifier) )))) ;) (expression_statement "uVar10 = strnlenpt(param_1,iVar9);" (assignment_expression "uVar10 = strnlenpt(param_1,iVar9)" identifier = (call_expression "strnlenpt(param_1,iVar9)" identifier (argument_list "(param_1,iVar9)" ( identifier , identifier )))) ;) (expression_statement "iVar9 = (*(code *)PTR_strlen_00077ff8)(pcVar23);" (assignment_expression "iVar9 = (*(code *)PTR_strlen_00077ff8)(pcVar23)" identifier = (call_expression "(*(code *)PTR_strlen_00077ff8)(pcVar23)" (parenthesized_expression "(*(code *)PTR_strlen_00077ff8)" ( (pointer_expression "*(code *)PTR_strlen_00077ff8" * (cast_expression "(code *)PTR_strlen_00077ff8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar23)" ( identifier )))) ;) (expression_statement "puVar11 = (undefined1 *)nmalloc((*(int *)puVar4 + 6) * iVar9 + 1);" (assignment_expression "puVar11 = (undefined1 *)nmalloc((*(int *)puVar4 + 6) * iVar9 + 1)" identifier = (cast_expression "(undefined1 *)nmalloc((*(int *)puVar4 + 6) * iVar9 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "nmalloc((*(int *)puVar4 + 6) * iVar9 + 1)" identifier (argument_list "((*(int *)puVar4 + 6) * iVar9 + 1)" ( (binary_expression "(*(int *)puVar4 + 6) * iVar9 + 1" (binary_expression "(*(int *)puVar4 + 6) * iVar9" (parenthesized_expression "(*(int *)puVar4 + 6)" ( (binary_expression "*(int *)puVar4 + 6" (pointer_expression "*(int *)puVar4" * (cast_expression "(int *)puVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )) * identifier) + number_literal) ))))) ;) (expression_statement "cVar19 = *pcVar23;" (assignment_expression "cVar19 = *pcVar23" identifier = (pointer_expression "*pcVar23" * identifier)) ;) (if_statement "if (cVar19 == '\0') {\n    puVar22 = (undefined1 *)0x0;\n    goto LAB_00044f3c;\n  }" if (parenthesized_expression "(cVar19 == '\0')" ( (binary_expression "cVar19 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    puVar22 = (undefined1 *)0x0;\n    goto LAB_00044f3c;\n  }" { (expression_statement "puVar22 = (undefined1 *)0x0;" (assignment_expression "puVar22 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00044f3c;" goto statement_identifier ;) })) (if_statement "if (cVar19 != '\t') {\n    if (uVar10 < param_2) {\n      iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n      if (iVar9 == 0) {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 == 2) {\n          puVar22 = (undefined1 *)0x1;\n          puVar21 = puVar11;\n          goto LAB_000452ec;\n        }\n        cVar19 = *pcVar23;\n        puVar22 = (undefined1 *)0x0;\n      }\n      else {\n        param_2 = param_2 + 1;\n        puVar22 = (undefined1 *)0x1;\n        uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);\n        puVar3 = PTR_parse_mbchar_00077718;\n        *puVar11 = uVar15;\n        iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n        pcVar23 = pcVar23 + iVar9;\n        cVar19 = *pcVar23;\n      }\n      goto LAB_00044e7c;\n    }\n    if (uVar10 != 0) {\n      puVar22 = (undefined1 *)0x0;\n      if (param_4 == 0) goto LAB_00044e7c;\n      if ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0) {\n        iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n        puVar22 = (undefined1 *)0x0;\n        if (iVar9 == 0) goto LAB_0004536c;\n        goto LAB_0004529c;\n      }\n    }\n  }" if (parenthesized_expression "(cVar19 != '\t')" ( (binary_expression "cVar19 != '\t'" identifier != (char_literal "'\t'" ' escape_sequence ')) )) (compound_statement "{\n    if (uVar10 < param_2) {\n      iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n      if (iVar9 == 0) {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 == 2) {\n          puVar22 = (undefined1 *)0x1;\n          puVar21 = puVar11;\n          goto LAB_000452ec;\n        }\n        cVar19 = *pcVar23;\n        puVar22 = (undefined1 *)0x0;\n      }\n      else {\n        param_2 = param_2 + 1;\n        puVar22 = (undefined1 *)0x1;\n        uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);\n        puVar3 = PTR_parse_mbchar_00077718;\n        *puVar11 = uVar15;\n        iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n        pcVar23 = pcVar23 + iVar9;\n        cVar19 = *pcVar23;\n      }\n      goto LAB_00044e7c;\n    }\n    if (uVar10 != 0) {\n      puVar22 = (undefined1 *)0x0;\n      if (param_4 == 0) goto LAB_00044e7c;\n      if ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0) {\n        iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n        puVar22 = (undefined1 *)0x0;\n        if (iVar9 == 0) goto LAB_0004536c;\n        goto LAB_0004529c;\n      }\n    }\n  }" { (if_statement "if (uVar10 < param_2) {\n      iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n      if (iVar9 == 0) {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 == 2) {\n          puVar22 = (undefined1 *)0x1;\n          puVar21 = puVar11;\n          goto LAB_000452ec;\n        }\n        cVar19 = *pcVar23;\n        puVar22 = (undefined1 *)0x0;\n      }\n      else {\n        param_2 = param_2 + 1;\n        puVar22 = (undefined1 *)0x1;\n        uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);\n        puVar3 = PTR_parse_mbchar_00077718;\n        *puVar11 = uVar15;\n        iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n        pcVar23 = pcVar23 + iVar9;\n        cVar19 = *pcVar23;\n      }\n      goto LAB_00044e7c;\n    }" if (parenthesized_expression "(uVar10 < param_2)" ( (binary_expression "uVar10 < param_2" identifier < identifier) )) (compound_statement "{\n      iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n      if (iVar9 == 0) {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 == 2) {\n          puVar22 = (undefined1 *)0x1;\n          puVar21 = puVar11;\n          goto LAB_000452ec;\n        }\n        cVar19 = *pcVar23;\n        puVar22 = (undefined1 *)0x0;\n      }\n      else {\n        param_2 = param_2 + 1;\n        puVar22 = (undefined1 *)0x1;\n        uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);\n        puVar3 = PTR_parse_mbchar_00077718;\n        *puVar11 = uVar15;\n        iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n        pcVar23 = pcVar23 + iVar9;\n        cVar19 = *pcVar23;\n      }\n      goto LAB_00044e7c;\n    }" { (expression_statement "iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);" (assignment_expression "iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23)" identifier = (call_expression "(*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23)" (parenthesized_expression "(*(code *)PTR_is_cntrl_mbchar_0007797c)" ( (pointer_expression "*(code *)PTR_is_cntrl_mbchar_0007797c" * (cast_expression "(code *)PTR_is_cntrl_mbchar_0007797c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar23)" ( identifier )))) ;) (if_statement "if (iVar9 == 0) {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 == 2) {\n          puVar22 = (undefined1 *)0x1;\n          puVar21 = puVar11;\n          goto LAB_000452ec;\n        }\n        cVar19 = *pcVar23;\n        puVar22 = (undefined1 *)0x0;\n      }\n      else {\n        param_2 = param_2 + 1;\n        puVar22 = (undefined1 *)0x1;\n        uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);\n        puVar3 = PTR_parse_mbchar_00077718;\n        *puVar11 = uVar15;\n        iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n        pcVar23 = pcVar23 + iVar9;\n        cVar19 = *pcVar23;\n      }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 == 2) {\n          puVar22 = (undefined1 *)0x1;\n          puVar21 = puVar11;\n          goto LAB_000452ec;\n        }\n        cVar19 = *pcVar23;\n        puVar22 = (undefined1 *)0x0;\n      }" { (expression_statement "iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);" (assignment_expression "iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23)" identifier = (call_expression "(*(code *)PTR_mbwidth_00077df0)(pcVar23)" (parenthesized_expression "(*(code *)PTR_mbwidth_00077df0)" ( (pointer_expression "*(code *)PTR_mbwidth_00077df0" * (cast_expression "(code *)PTR_mbwidth_00077df0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar23)" ( identifier )))) ;) (if_statement "if (iVar9 == 2) {\n          puVar22 = (undefined1 *)0x1;\n          puVar21 = puVar11;\n          goto LAB_000452ec;\n        }" if (parenthesized_expression "(iVar9 == 2)" ( (binary_expression "iVar9 == 2" identifier == number_literal) )) (compound_statement "{\n          puVar22 = (undefined1 *)0x1;\n          puVar21 = puVar11;\n          goto LAB_000452ec;\n        }" { (expression_statement "puVar22 = (undefined1 *)0x1;" (assignment_expression "puVar22 = (undefined1 *)0x1" identifier = (cast_expression "(undefined1 *)0x1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar21 = puVar11;" (assignment_expression "puVar21 = puVar11" identifier = identifier) ;) (goto_statement "goto LAB_000452ec;" goto statement_identifier ;) })) (expression_statement "cVar19 = *pcVar23;" (assignment_expression "cVar19 = *pcVar23" identifier = (pointer_expression "*pcVar23" * identifier)) ;) (expression_statement "puVar22 = (undefined1 *)0x0;" (assignment_expression "puVar22 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        param_2 = param_2 + 1;\n        puVar22 = (undefined1 *)0x1;\n        uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);\n        puVar3 = PTR_parse_mbchar_00077718;\n        *puVar11 = uVar15;\n        iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n        pcVar23 = pcVar23 + iVar9;\n        cVar19 = *pcVar23;\n      }" else (compound_statement "{\n        param_2 = param_2 + 1;\n        puVar22 = (undefined1 *)0x1;\n        uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);\n        puVar3 = PTR_parse_mbchar_00077718;\n        *puVar11 = uVar15;\n        iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n        pcVar23 = pcVar23 + iVar9;\n        cVar19 = *pcVar23;\n      }" { (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "puVar22 = (undefined1 *)0x1;" (assignment_expression "puVar22 = (undefined1 *)0x1" identifier = (cast_expression "(undefined1 *)0x1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);" (assignment_expression "uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4)" identifier = (call_expression "(*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4)" (parenthesized_expression "(*(code *)PTR_control_mbrep_00077df4)" ( (pointer_expression "*(code *)PTR_control_mbrep_00077df4" * (cast_expression "(code *)PTR_control_mbrep_00077df4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar23,param_4)" ( identifier , identifier )))) ;) (expression_statement "puVar3 = PTR_parse_mbchar_00077718;" (assignment_expression "puVar3 = PTR_parse_mbchar_00077718" identifier = identifier) ;) (expression_statement "*puVar11 = uVar15;" (assignment_expression "*puVar11 = uVar15" (pointer_expression "*puVar11" * identifier) = identifier) ;) (expression_statement "iVar9 = (*(code *)puVar3)(pcVar23,0,0);" (assignment_expression "iVar9 = (*(code *)puVar3)(pcVar23,0,0)" identifier = (call_expression "(*(code *)puVar3)(pcVar23,0,0)" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar23,0,0)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "pcVar23 = pcVar23 + iVar9;" (assignment_expression "pcVar23 = pcVar23 + iVar9" identifier = (binary_expression "pcVar23 + iVar9" identifier + identifier)) ;) (expression_statement "cVar19 = *pcVar23;" (assignment_expression "cVar19 = *pcVar23" identifier = (pointer_expression "*pcVar23" * identifier)) ;) }))) (goto_statement "goto LAB_00044e7c;" goto statement_identifier ;) })) (if_statement "if (uVar10 != 0) {\n      puVar22 = (undefined1 *)0x0;\n      if (param_4 == 0) goto LAB_00044e7c;\n      if ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0) {\n        iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n        puVar22 = (undefined1 *)0x0;\n        if (iVar9 == 0) goto LAB_0004536c;\n        goto LAB_0004529c;\n      }\n    }" if (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) (compound_statement "{\n      puVar22 = (undefined1 *)0x0;\n      if (param_4 == 0) goto LAB_00044e7c;\n      if ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0) {\n        iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n        puVar22 = (undefined1 *)0x0;\n        if (iVar9 == 0) goto LAB_0004536c;\n        goto LAB_0004529c;\n      }\n    }" { (expression_statement "puVar22 = (undefined1 *)0x0;" (assignment_expression "puVar22 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (param_4 == 0) goto LAB_00044e7c;" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00044e7c;" goto statement_identifier ;)) (if_statement "if ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0) {\n        iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n        puVar22 = (undefined1 *)0x0;\n        if (iVar9 == 0) goto LAB_0004536c;\n        goto LAB_0004529c;\n      }" if (parenthesized_expression "((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)" ( (binary_expression "(*(uint *)(PTR_flags_0007759c + 4) & 2) == 0" (parenthesized_expression "(*(uint *)(PTR_flags_0007759c + 4) & 2)" ( (binary_expression "*(uint *)(PTR_flags_0007759c + 4) & 2" (pointer_expression "*(uint *)(PTR_flags_0007759c + 4)" * (cast_expression "(uint *)(PTR_flags_0007759c + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_flags_0007759c + 4)" ( (binary_expression "PTR_flags_0007759c + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n        puVar22 = (undefined1 *)0x0;\n        if (iVar9 == 0) goto LAB_0004536c;\n        goto LAB_0004529c;\n      }" { (expression_statement "iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);" (assignment_expression "iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23)" identifier = (call_expression "(*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23)" (parenthesized_expression "(*(code *)PTR_is_cntrl_mbchar_0007797c)" ( (pointer_expression "*(code *)PTR_is_cntrl_mbchar_0007797c" * (cast_expression "(code *)PTR_is_cntrl_mbchar_0007797c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar23)" ( identifier )))) ;) (expression_statement "puVar22 = (undefined1 *)0x0;" (assignment_expression "puVar22 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar9 == 0) goto LAB_0004536c;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004536c;" goto statement_identifier ;)) (goto_statement "goto LAB_0004529c;" goto statement_identifier ;) })) })) })) (expression_statement "puVar22 = (undefined1 *)0x0;" (assignment_expression "puVar22 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00044e7c:\n  do {\n    puVar6 = PTR_whitespace_len_000778d4;\n    puVar5 = PTR_whitespace_000777fc;\n    puVar3 = PTR_flags_0007759c;\n    while (cVar19 != '\0') {\n      if (param_2 < uVar24) {\n        if (cVar19 == ' ') goto LAB_00044fc8;\nLAB_00044eac:\n        local_30 = 1;\n        if (cVar19 == '\t') {\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }\n        else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }\n        cVar19 = *pcVar23;\n        if (cVar19 != ' ') goto LAB_00044eac;\nLAB_00044fc8:\n        local_30 = 1;\n        if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }\n        param_2 = param_2 + 1;\n        pcVar23 = pcVar23 + 1;\n        cVar19 = *pcVar23;\n        puVar22 = puVar21;\n      }\n    }\nLAB_00044f3c:\n    puVar22 = puVar11 + (int)puVar22;\nLAB_00044f40:\n    *puVar22 = 0;\n    if (local_2c == *(int *)puVar8) {\n      return puVar11;\n    }\n    (*(code *)PTR___stack_chk_fail_000780c0)();\nLAB_0004536c:\n    iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n    if (iVar9 == 2) {\n      if (param_2 == uVar10) {\n        param_2 = param_2 + 1;\n        *puVar11 = 0x20;\n        puVar22 = (undefined1 *)0x2;\n        puVar21 = puVar11 + 1;\n      }\n      else {\n        puVar22 = (undefined1 *)0x1;\n        puVar21 = puVar11;\n      }\nLAB_000452ec:\n      puVar3 = PTR_parse_mbchar_00077718;\n      *puVar21 = 0x3c;\n      iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n      param_2 = param_2 + 1;\n      pcVar23 = pcVar23 + iVar9;\n      cVar19 = *pcVar23;\n    }\n    else {\nLAB_0004529c:\n      cVar19 = *pcVar23;\n    }\n  } while( true );" statement_identifier : (do_statement "do {\n    puVar6 = PTR_whitespace_len_000778d4;\n    puVar5 = PTR_whitespace_000777fc;\n    puVar3 = PTR_flags_0007759c;\n    while (cVar19 != '\0') {\n      if (param_2 < uVar24) {\n        if (cVar19 == ' ') goto LAB_00044fc8;\nLAB_00044eac:\n        local_30 = 1;\n        if (cVar19 == '\t') {\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }\n        else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }\n        cVar19 = *pcVar23;\n        if (cVar19 != ' ') goto LAB_00044eac;\nLAB_00044fc8:\n        local_30 = 1;\n        if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }\n        param_2 = param_2 + 1;\n        pcVar23 = pcVar23 + 1;\n        cVar19 = *pcVar23;\n        puVar22 = puVar21;\n      }\n    }\nLAB_00044f3c:\n    puVar22 = puVar11 + (int)puVar22;\nLAB_00044f40:\n    *puVar22 = 0;\n    if (local_2c == *(int *)puVar8) {\n      return puVar11;\n    }\n    (*(code *)PTR___stack_chk_fail_000780c0)();\nLAB_0004536c:\n    iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n    if (iVar9 == 2) {\n      if (param_2 == uVar10) {\n        param_2 = param_2 + 1;\n        *puVar11 = 0x20;\n        puVar22 = (undefined1 *)0x2;\n        puVar21 = puVar11 + 1;\n      }\n      else {\n        puVar22 = (undefined1 *)0x1;\n        puVar21 = puVar11;\n      }\nLAB_000452ec:\n      puVar3 = PTR_parse_mbchar_00077718;\n      *puVar21 = 0x3c;\n      iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n      param_2 = param_2 + 1;\n      pcVar23 = pcVar23 + iVar9;\n      cVar19 = *pcVar23;\n    }\n    else {\nLAB_0004529c:\n      cVar19 = *pcVar23;\n    }\n  } while( true );" do (compound_statement "{\n    puVar6 = PTR_whitespace_len_000778d4;\n    puVar5 = PTR_whitespace_000777fc;\n    puVar3 = PTR_flags_0007759c;\n    while (cVar19 != '\0') {\n      if (param_2 < uVar24) {\n        if (cVar19 == ' ') goto LAB_00044fc8;\nLAB_00044eac:\n        local_30 = 1;\n        if (cVar19 == '\t') {\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }\n        else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }\n        cVar19 = *pcVar23;\n        if (cVar19 != ' ') goto LAB_00044eac;\nLAB_00044fc8:\n        local_30 = 1;\n        if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }\n        param_2 = param_2 + 1;\n        pcVar23 = pcVar23 + 1;\n        cVar19 = *pcVar23;\n        puVar22 = puVar21;\n      }\n    }\nLAB_00044f3c:\n    puVar22 = puVar11 + (int)puVar22;\nLAB_00044f40:\n    *puVar22 = 0;\n    if (local_2c == *(int *)puVar8) {\n      return puVar11;\n    }\n    (*(code *)PTR___stack_chk_fail_000780c0)();\nLAB_0004536c:\n    iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n    if (iVar9 == 2) {\n      if (param_2 == uVar10) {\n        param_2 = param_2 + 1;\n        *puVar11 = 0x20;\n        puVar22 = (undefined1 *)0x2;\n        puVar21 = puVar11 + 1;\n      }\n      else {\n        puVar22 = (undefined1 *)0x1;\n        puVar21 = puVar11;\n      }\nLAB_000452ec:\n      puVar3 = PTR_parse_mbchar_00077718;\n      *puVar21 = 0x3c;\n      iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n      param_2 = param_2 + 1;\n      pcVar23 = pcVar23 + iVar9;\n      cVar19 = *pcVar23;\n    }\n    else {\nLAB_0004529c:\n      cVar19 = *pcVar23;\n    }\n  }" { (expression_statement "puVar6 = PTR_whitespace_len_000778d4;" (assignment_expression "puVar6 = PTR_whitespace_len_000778d4" identifier = identifier) ;) (expression_statement "puVar5 = PTR_whitespace_000777fc;" (assignment_expression "puVar5 = PTR_whitespace_000777fc" identifier = identifier) ;) (expression_statement "puVar3 = PTR_flags_0007759c;" (assignment_expression "puVar3 = PTR_flags_0007759c" identifier = identifier) ;) (while_statement "while (cVar19 != '\0') {\n      if (param_2 < uVar24) {\n        if (cVar19 == ' ') goto LAB_00044fc8;\nLAB_00044eac:\n        local_30 = 1;\n        if (cVar19 == '\t') {\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }\n        else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }\n        cVar19 = *pcVar23;\n        if (cVar19 != ' ') goto LAB_00044eac;\nLAB_00044fc8:\n        local_30 = 1;\n        if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }\n        param_2 = param_2 + 1;\n        pcVar23 = pcVar23 + 1;\n        cVar19 = *pcVar23;\n        puVar22 = puVar21;\n      }\n    }" while (parenthesized_expression "(cVar19 != '\0')" ( (binary_expression "cVar19 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (param_2 < uVar24) {\n        if (cVar19 == ' ') goto LAB_00044fc8;\nLAB_00044eac:\n        local_30 = 1;\n        if (cVar19 == '\t') {\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }\n        else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }\n        cVar19 = *pcVar23;\n        if (cVar19 != ' ') goto LAB_00044eac;\nLAB_00044fc8:\n        local_30 = 1;\n        if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }\n        param_2 = param_2 + 1;\n        pcVar23 = pcVar23 + 1;\n        cVar19 = *pcVar23;\n        puVar22 = puVar21;\n      }\n    }" { (if_statement "if (param_2 < uVar24) {\n        if (cVar19 == ' ') goto LAB_00044fc8;\nLAB_00044eac:\n        local_30 = 1;\n        if (cVar19 == '\t') {\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }\n        else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }\n        cVar19 = *pcVar23;\n        if (cVar19 != ' ') goto LAB_00044eac;\nLAB_00044fc8:\n        local_30 = 1;\n        if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }\n        param_2 = param_2 + 1;\n        pcVar23 = pcVar23 + 1;\n        cVar19 = *pcVar23;\n        puVar22 = puVar21;\n      }" if (parenthesized_expression "(param_2 < uVar24)" ( (binary_expression "param_2 < uVar24" identifier < identifier) )) (compound_statement "{\n        if (cVar19 == ' ') goto LAB_00044fc8;\nLAB_00044eac:\n        local_30 = 1;\n        if (cVar19 == '\t') {\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }\n        else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }\n      }" { (if_statement "if (cVar19 == ' ') goto LAB_00044fc8;" if (parenthesized_expression "(cVar19 == ' ')" ( (binary_expression "cVar19 == ' '" identifier == (char_literal "' '" ' character ')) )) (goto_statement "goto LAB_00044fc8;" goto statement_identifier ;)) (labeled_statement "LAB_00044eac:\n        local_30 = 1;" statement_identifier : (expression_statement "local_30 = 1;" (assignment_expression "local_30 = 1" identifier = number_literal) ;)) (if_statement "if (cVar19 == '\t') {\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }\n        else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }" if (parenthesized_expression "(cVar19 == '\t')" ( (binary_expression "cVar19 == '\t'" identifier == (char_literal "'\t'" ' escape_sequence ')) )) (compound_statement "{\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }" { (if_statement "if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }" if (parenthesized_expression "(*(int *)puVar3 << 6 < 0)" ( (binary_expression "*(int *)puVar3 << 6 < 0" (binary_expression "*(int *)puVar3 << 6" (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal) < number_literal) )) (compound_statement "{\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }" { (if_statement "if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }" if (parenthesized_expression "(((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0))" ( (binary_expression "((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)" (parenthesized_expression "((puVar22 == (undefined1 *)0x0) && (param_4 != 0))" ( (binary_expression "(puVar22 == (undefined1 *)0x0) && (param_4 != 0)" (parenthesized_expression "(puVar22 == (undefined1 *)0x0)" ( (binary_expression "puVar22 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "((*(uint *)(puVar3 + 4) & 2) != 0)" ( (binary_expression "(*(uint *)(puVar3 + 4) & 2) != 0" (parenthesized_expression "(*(uint *)(puVar3 + 4) & 2)" ( (binary_expression "*(uint *)(puVar3 + 4) & 2" (pointer_expression "*(uint *)(puVar3 + 4)" * (cast_expression "(uint *)(puVar3 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 4)" ( (binary_expression "puVar3 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }" { (if_statement "if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }" if (parenthesized_expression "(*(uint *)puVar4 == 0)" ( (binary_expression "*(uint *)puVar4 == 0" (pointer_expression "*(uint *)puVar4" * (cast_expression "(uint *)puVar4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n                trap(7);\n              }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;" if (parenthesized_expression "((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10))" ( (binary_expression "(param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)" (parenthesized_expression "(param_2 % *(uint *)puVar4 != 0)" ( (binary_expression "param_2 % *(uint *)puVar4 != 0" (binary_expression "param_2 % *(uint *)puVar4" identifier % (pointer_expression "*(uint *)puVar4" * (cast_expression "(uint *)puVar4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) != number_literal) )) && (parenthesized_expression "(param_2 != uVar10)" ( (binary_expression "param_2 != uVar10" identifier != identifier) ))) )) (goto_statement "goto LAB_00045094;" goto statement_identifier ;)) })) (expression_statement "puVar21 = puVar22;" (assignment_expression "puVar21 = puVar22" identifier = identifier) ;) (if_statement "if (*(int *)puVar6 < 1) goto LAB_000450a0;" if (parenthesized_expression "(*(int *)puVar6 < 1)" ( (binary_expression "*(int *)puVar6 < 1" (pointer_expression "*(int *)puVar6" * (cast_expression "(int *)puVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) < number_literal) )) (goto_statement "goto LAB_000450a0;" goto statement_identifier ;)) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (do_statement "do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);" do (compound_statement "{\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            }" { (expression_statement "puVar18 = puVar22 + iVar9;" (assignment_expression "puVar18 = puVar22 + iVar9" identifier = (binary_expression "puVar22 + iVar9" identifier + identifier)) ;) (expression_statement "puVar21 = puVar22 + iVar9 + 1;" (assignment_expression "puVar21 = puVar22 + iVar9 + 1" identifier = (binary_expression "puVar22 + iVar9 + 1" (binary_expression "puVar22 + iVar9" identifier + identifier) + number_literal)) ;) (expression_statement "puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);" (assignment_expression "puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9)" identifier = (cast_expression "(undefined1 *)(*(int *)puVar5 + iVar9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar5 + iVar9)" ( (binary_expression "*(int *)puVar5 + iVar9" (pointer_expression "*(int *)puVar5" * (cast_expression "(int *)puVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + identifier) )))) ;) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "puVar11[(int)puVar18] = *puVar20;" (assignment_expression "puVar11[(int)puVar18] = *puVar20" (subscript_expression "puVar11[(int)puVar18]" identifier [ (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) ]) = (pointer_expression "*puVar20" * identifier)) ;) }) while (parenthesized_expression "(iVar9 < *(int *)puVar6)" ( (binary_expression "iVar9 < *(int *)puVar6" identifier < (pointer_expression "*(int *)puVar6" * (cast_expression "(int *)puVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) ;) (expression_statement "uVar17 = *(uint *)puVar4;" (assignment_expression "uVar17 = *(uint *)puVar4" identifier = (pointer_expression "*(uint *)puVar4" * (cast_expression "(uint *)puVar4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) }) (else_clause "else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }" else (compound_statement "{\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }" { (labeled_statement "LAB_00045094:\n            puVar11[(int)puVar22] = 0x20;" statement_identifier : (expression_statement "puVar11[(int)puVar22] = 0x20;" (assignment_expression "puVar11[(int)puVar22] = 0x20" (subscript_expression "puVar11[(int)puVar22]" identifier [ (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) ]) = number_literal) ;)) (expression_statement "puVar21 = puVar22 + 1;" (assignment_expression "puVar21 = puVar22 + 1" identifier = (binary_expression "puVar22 + 1" identifier + number_literal)) ;) (labeled_statement "LAB_000450a0:\n            uVar17 = *(uint *)puVar4;" statement_identifier : (expression_statement "uVar17 = *(uint *)puVar4;" (assignment_expression "uVar17 = *(uint *)puVar4" identifier = (pointer_expression "*(uint *)puVar4" * (cast_expression "(uint *)puVar4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;)) }))) (expression_statement "uVar14 = param_2 + 1;" (assignment_expression "uVar14 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (if_statement "if (uVar17 == 0) {\n            trap(7);\n          }" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (compound_statement "{\n            trap(7);\n          }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "puVar22 = puVar21;" (assignment_expression "puVar22 = puVar21" identifier = identifier) ;) (if_statement "if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }" if (parenthesized_expression "((uVar14 % uVar17 != 0) && (uVar14 < uVar24))" ( (binary_expression "(uVar14 % uVar17 != 0) && (uVar14 < uVar24)" (parenthesized_expression "(uVar14 % uVar17 != 0)" ( (binary_expression "uVar14 % uVar17 != 0" (binary_expression "uVar14 % uVar17" identifier % identifier) != number_literal) )) && (parenthesized_expression "(uVar14 < uVar24)" ( (binary_expression "uVar14 < uVar24" identifier < identifier) ))) )) (compound_statement "{\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }" { (do_statement "do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));" do (compound_statement "{\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            }" { (expression_statement "puVar22 = puVar21 + (uVar14 - param_2);" (assignment_expression "puVar22 = puVar21 + (uVar14 - param_2)" identifier = (binary_expression "puVar21 + (uVar14 - param_2)" identifier + (parenthesized_expression "(uVar14 - param_2)" ( (binary_expression "uVar14 - param_2" identifier - identifier) )))) ;) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "(puVar11 + (int)puVar22)[-1] = 0x20;" (assignment_expression "(puVar11 + (int)puVar22)[-1] = 0x20" (subscript_expression "(puVar11 + (int)puVar22)[-1]" (parenthesized_expression "(puVar11 + (int)puVar22)" ( (binary_expression "puVar11 + (int)puVar22" identifier + (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier)) )) [ number_literal ]) = number_literal) ;) (if_statement "if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }" if (parenthesized_expression "(*(uint *)puVar4 == 0)" ( (binary_expression "*(uint *)puVar4 == 0" (pointer_expression "*(uint *)puVar4" * (cast_expression "(uint *)puVar4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n                trap(7);\n              }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) }) while (parenthesized_expression "((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24))" ( (binary_expression "(uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24)" (parenthesized_expression "(uVar14 % *(uint *)puVar4 != 0)" ( (binary_expression "uVar14 % *(uint *)puVar4 != 0" (binary_expression "uVar14 % *(uint *)puVar4" identifier % (pointer_expression "*(uint *)puVar4" * (cast_expression "(uint *)puVar4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) != number_literal) )) && (parenthesized_expression "(uVar14 < uVar24)" ( (binary_expression "uVar14 < uVar24" identifier < identifier) ))) )) ;) })) (expression_statement "pcVar23 = pcVar23 + 1;" (assignment_expression "pcVar23 = pcVar23 + 1" identifier = (binary_expression "pcVar23 + 1" identifier + number_literal)) ;) (expression_statement "cVar19 = *pcVar23;" (assignment_expression "cVar19 = *pcVar23" identifier = (pointer_expression "*pcVar23" * identifier)) ;) (expression_statement "param_2 = uVar14;" (assignment_expression "param_2 = uVar14" identifier = identifier) ;) }) (else_clause "else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }" else (compound_statement "{\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }" { (expression_statement "iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);" (assignment_expression "iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30)" identifier = (call_expression "(*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30)" (parenthesized_expression "(*(code *)PTR_length_of_char_00077dec)" ( (pointer_expression "*(code *)PTR_length_of_char_00077dec" * (cast_expression "(code *)PTR_length_of_char_00077dec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar23,&local_30)" ( identifier , (pointer_expression "&local_30" & identifier) )))) ;) (expression_statement "iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);" (assignment_expression "iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23)" identifier = (call_expression "(*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23)" (parenthesized_expression "(*(code *)PTR_is_cntrl_mbchar_0007797c)" ( (pointer_expression "*(code *)PTR_is_cntrl_mbchar_0007797c" * (cast_expression "(code *)PTR_is_cntrl_mbchar_0007797c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar23)" ( identifier )))) ;) (expression_statement "puVar7 = PTR_control_mbrep_00077df4;" (assignment_expression "puVar7 = PTR_control_mbrep_00077df4" identifier = identifier) ;) (expression_statement "pcVar16 = puVar11 + (int)puVar22;" (assignment_expression "pcVar16 = puVar11 + (int)puVar22" identifier = (binary_expression "puVar11 + (int)puVar22" identifier + (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }" { (expression_statement "pcVar13 = pcVar23 + 1;" (assignment_expression "pcVar13 = pcVar23 + 1" identifier = (binary_expression "pcVar23 + 1" identifier + number_literal)) ;) (if_statement "if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }" if (parenthesized_expression "(iVar9 < 1)" ( (binary_expression "iVar9 < 1" identifier < number_literal) )) (compound_statement "{\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }" { (expression_statement "*pcVar16 = -0x11;" (assignment_expression "*pcVar16 = -0x11" (pointer_expression "*pcVar16" * identifier) = number_literal) ;) (expression_statement "puVar11[(int)(puVar22 + 1)] = 0xbf;" (assignment_expression "puVar11[(int)(puVar22 + 1)] = 0xbf" (subscript_expression "puVar11[(int)(puVar22 + 1)]" identifier [ (cast_expression "(int)(puVar22 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar22 + 1)" ( (binary_expression "puVar22 + 1" identifier + number_literal) ))) ]) = number_literal) ;) (expression_statement "puVar11[(int)(puVar22 + 2)] = 0xbd;" (assignment_expression "puVar11[(int)(puVar22 + 2)] = 0xbd" (subscript_expression "puVar11[(int)(puVar22 + 2)]" identifier [ (cast_expression "(int)(puVar22 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar22 + 2)" ( (binary_expression "puVar22 + 2" identifier + number_literal) ))) ]) = number_literal) ;) (if_statement "if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }" if (parenthesized_expression "(iVar9 < -1)" ( (binary_expression "iVar9 < -1" identifier < number_literal) )) (compound_statement "{\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }" { (expression_statement "pcVar13 = pcVar13 + iVar9 + 7;" (assignment_expression "pcVar13 = pcVar13 + iVar9 + 7" identifier = (binary_expression "pcVar13 + iVar9 + 7" (binary_expression "pcVar13 + iVar9" identifier + identifier) + number_literal)) ;) })) (expression_statement "cVar19 = *pcVar13;" (assignment_expression "cVar19 = *pcVar13" identifier = (pointer_expression "*pcVar13" * identifier)) ;) (expression_statement "puVar22 = puVar22 + 3;" (assignment_expression "puVar22 = puVar22 + 3" identifier = (binary_expression "puVar22 + 3" identifier + number_literal)) ;) (expression_statement "pcVar23 = pcVar13;" (assignment_expression "pcVar23 = pcVar13" identifier = identifier) ;) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }" else (compound_statement "{\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }" { (while_statement "while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }" { (expression_statement "*pcVar16 = pcVar13[-1];" (assignment_expression "*pcVar16 = pcVar13[-1]" (pointer_expression "*pcVar16" * identifier) = (subscript_expression "pcVar13[-1]" identifier [ number_literal ])) ;) (if_statement "if (pcVar23 + iVar9 == pcVar13) break;" if (parenthesized_expression "(pcVar23 + iVar9 == pcVar13)" ( (binary_expression "pcVar23 + iVar9 == pcVar13" (binary_expression "pcVar23 + iVar9" identifier + identifier) == identifier) )) (break_statement "break;" break ;)) (expression_statement "pcVar13 = pcVar13 + 1;" (assignment_expression "pcVar13 = pcVar13 + 1" identifier = (binary_expression "pcVar13 + 1" identifier + number_literal)) ;) (expression_statement "pcVar16 = pcVar16 + 1;" (assignment_expression "pcVar16 = pcVar16 + 1" identifier = (binary_expression "pcVar16 + 1" identifier + number_literal)) ;) })) (expression_statement "cVar19 = *pcVar13;" (assignment_expression "cVar19 = *pcVar13" identifier = (pointer_expression "*pcVar13" * identifier)) ;) (expression_statement "puVar22 = puVar22 + iVar9;" (assignment_expression "puVar22 = puVar22 + iVar9" identifier = (binary_expression "puVar22 + iVar9" identifier + identifier)) ;) (expression_statement "pcVar23 = pcVar13;" (assignment_expression "pcVar23 = pcVar13" identifier = identifier) ;) (expression_statement "param_2 = param_2 + local_30;" (assignment_expression "param_2 = param_2 + local_30" identifier = (binary_expression "param_2 + local_30" identifier + identifier)) ;) }))) }) (else_clause "else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }" else (compound_statement "{\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }" { (expression_statement "*pcVar16 = '^';" (assignment_expression "*pcVar16 = '^'" (pointer_expression "*pcVar16" * identifier) = (char_literal "'^'" ' character ')) ;) (expression_statement "uVar15 = (*(code *)puVar7)(pcVar23,param_4);" (assignment_expression "uVar15 = (*(code *)puVar7)(pcVar23,param_4)" identifier = (call_expression "(*(code *)puVar7)(pcVar23,param_4)" (parenthesized_expression "(*(code *)puVar7)" ( (pointer_expression "*(code *)puVar7" * (cast_expression "(code *)puVar7" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar23,param_4)" ( identifier , identifier )))) ;) (expression_statement "pcVar23 = pcVar23 + iVar9;" (assignment_expression "pcVar23 = pcVar23 + iVar9" identifier = (binary_expression "pcVar23 + iVar9" identifier + identifier)) ;) (expression_statement "puVar11[(int)(puVar22 + 1)] = uVar15;" (assignment_expression "puVar11[(int)(puVar22 + 1)] = uVar15" (subscript_expression "puVar11[(int)(puVar22 + 1)]" identifier [ (cast_expression "(int)(puVar22 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar22 + 1)" ( (binary_expression "puVar22 + 1" identifier + number_literal) ))) ]) = identifier) ;) (expression_statement "cVar19 = *pcVar23;" (assignment_expression "cVar19 = *pcVar23" identifier = (pointer_expression "*pcVar23" * identifier)) ;) (expression_statement "puVar22 = puVar22 + 2;" (assignment_expression "puVar22 = puVar22 + 2" identifier = (binary_expression "puVar22 + 2" identifier + number_literal)) ;) (expression_statement "param_2 = param_2 + 2;" (assignment_expression "param_2 = param_2 + 2" identifier = (binary_expression "param_2 + 2" identifier + number_literal)) ;) }))) }))) }) (else_clause "else {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }\n        cVar19 = *pcVar23;\n        if (cVar19 != ' ') goto LAB_00044eac;\nLAB_00044fc8:\n        local_30 = 1;\n        if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }\n        param_2 = param_2 + 1;\n        pcVar23 = pcVar23 + 1;\n        cVar19 = *pcVar23;\n        puVar22 = puVar21;\n      }" else (compound_statement "{\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }\n        cVar19 = *pcVar23;\n        if (cVar19 != ' ') goto LAB_00044eac;\nLAB_00044fc8:\n        local_30 = 1;\n        if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }\n        param_2 = param_2 + 1;\n        pcVar23 = pcVar23 + 1;\n        cVar19 = *pcVar23;\n        puVar22 = puVar21;\n      }" { (expression_statement "iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);" (assignment_expression "iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23)" identifier = (call_expression "(*(code *)PTR_mbwidth_00077df0)(pcVar23)" (parenthesized_expression "(*(code *)PTR_mbwidth_00077df0)" ( (pointer_expression "*(code *)PTR_mbwidth_00077df0" * (cast_expression "(code *)PTR_mbwidth_00077df0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar23)" ( identifier )))) ;) (if_statement "if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }" { (if_statement "if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }" if (parenthesized_expression "((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0))))))" ( (binary_expression "(*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))" (parenthesized_expression "(*pcVar23 != '\0')" ( (binary_expression "*pcVar23 != '\0'" (pointer_expression "*pcVar23" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))" ( (parenthesized_expression "(uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0))))" ( (comma_expression "uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))" (assignment_expression "uVar24 = (uint)(uVar24 < param_2)" identifier = (call_expression "(uint)(uVar24 < param_2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar24 < param_2)" ( (binary_expression "uVar24 < param_2" identifier < identifier) )))) , (binary_expression "uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))" (binary_expression "uVar24 != 0" identifier != number_literal) || (parenthesized_expression "((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))" ( (parenthesized_expression "(param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0))" ( (binary_expression "param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)" (binary_expression "param_4 != 0" identifier != number_literal) && (parenthesized_expression "((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)" ( (binary_expression "(*(uint *)(PTR_flags_0007759c + 4) & 2) == 0" (parenthesized_expression "(*(uint *)(PTR_flags_0007759c + 4) & 2)" ( (binary_expression "*(uint *)(PTR_flags_0007759c + 4) & 2" (pointer_expression "*(uint *)(PTR_flags_0007759c + 4)" * (cast_expression "(uint *)(PTR_flags_0007759c + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_flags_0007759c + 4)" ( (binary_expression "PTR_flags_0007759c + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) )))) )) ))) )) (compound_statement "{\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }" { (expression_statement "pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);" (assignment_expression "pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22)" identifier = (cast_expression "(char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22)" (parenthesized_expression "(*(code *)PTR_move_mbleft_00077c18)" ( (pointer_expression "*(code *)PTR_move_mbleft_00077c18" * (cast_expression "(code *)PTR_move_mbleft_00077c18" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar11,puVar22)" ( identifier , identifier ))))) ;) (expression_statement "puVar22 = puVar11 + (int)pcVar23;" (assignment_expression "puVar22 = puVar11 + (int)pcVar23" identifier = (binary_expression "puVar11 + (int)pcVar23" identifier + (cast_expression "(int)pcVar23" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);" (assignment_expression "iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22)" identifier = (call_expression "(*(code *)PTR_mbwidth_00077df0)(puVar22)" (parenthesized_expression "(*(code *)PTR_mbwidth_00077df0)" ( (pointer_expression "*(code *)PTR_mbwidth_00077df0" * (cast_expression "(code *)PTR_mbwidth_00077df0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar22)" ( identifier )))) ;) (if_statement "if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }" if (parenthesized_expression "(iVar9 == 2)" ( (binary_expression "iVar9 == 2" identifier == number_literal) )) (compound_statement "{\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }" { (expression_statement "pcVar23 = pcVar23 + 1;" (assignment_expression "pcVar23 = pcVar23 + 1" identifier = (binary_expression "pcVar23 + 1" identifier + number_literal)) ;) (expression_statement "*puVar22 = 0x3e;" (assignment_expression "*puVar22 = 0x3e" (pointer_expression "*puVar22" * identifier) = number_literal) ;) (expression_statement "puVar22 = puVar11 + (int)pcVar23;" (assignment_expression "puVar22 = puVar11 + (int)pcVar23" identifier = (binary_expression "puVar11 + (int)pcVar23" identifier + (cast_expression "(int)pcVar23" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) (goto_statement "goto LAB_00044f40;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "cVar19 = *pcVar23;" (assignment_expression "cVar19 = *pcVar23" identifier = (pointer_expression "*pcVar23" * identifier)) ;) (if_statement "if (cVar19 != ' ') goto LAB_00044eac;" if (parenthesized_expression "(cVar19 != ' ')" ( (binary_expression "cVar19 != ' '" identifier != (char_literal "' '" ' character ')) )) (goto_statement "goto LAB_00044eac;" goto statement_identifier ;)) (labeled_statement "LAB_00044fc8:\n        local_30 = 1;" statement_identifier : (expression_statement "local_30 = 1;" (assignment_expression "local_30 = 1" identifier = number_literal) ;)) (if_statement "if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }" if (parenthesized_expression "(*(int *)puVar3 << 6 < 0)" ( (binary_expression "*(int *)puVar3 << 6 < 0" (binary_expression "*(int *)puVar3 << 6" (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal) < number_literal) )) (compound_statement "{\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }" { (expression_statement "iVar9 = *(int *)puVar6;" (assignment_expression "iVar9 = *(int *)puVar6" identifier = (pointer_expression "*(int *)puVar6" * (cast_expression "(int *)puVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar21 = puVar22;" (assignment_expression "puVar21 = puVar22" identifier = identifier) ;) (if_statement "if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }" if (parenthesized_expression "(0 < *(int *)(puVar6 + 4))" ( (binary_expression "0 < *(int *)(puVar6 + 4)" number_literal < (pointer_expression "*(int *)(puVar6 + 4)" * (cast_expression "(int *)(puVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 4)" ( (binary_expression "puVar6 + 4" identifier + number_literal) ))))) )) (compound_statement "{\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }" { (expression_statement "iVar12 = iVar9;" (assignment_expression "iVar12 = iVar9" identifier = identifier) ;) (do_statement "do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));" do (compound_statement "{\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            }" { (expression_statement "iVar1 = iVar12 - iVar9;" (assignment_expression "iVar1 = iVar12 - iVar9" identifier = (binary_expression "iVar12 - iVar9" identifier - identifier)) ;) (expression_statement "iVar2 = iVar12 + (1 - iVar9);" (assignment_expression "iVar2 = iVar12 + (1 - iVar9)" identifier = (binary_expression "iVar12 + (1 - iVar9)" identifier + (parenthesized_expression "(1 - iVar9)" ( (binary_expression "1 - iVar9" number_literal - identifier) )))) ;) (expression_statement "puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);" (assignment_expression "puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12)" identifier = (cast_expression "(undefined1 *)(*(int *)puVar5 + iVar12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar5 + iVar12)" ( (binary_expression "*(int *)puVar5 + iVar12" (pointer_expression "*(int *)puVar5" * (cast_expression "(int *)puVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + identifier) )))) ;) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar11[(int)(puVar22 + iVar1)] = *puVar21;" (assignment_expression "puVar11[(int)(puVar22 + iVar1)] = *puVar21" (subscript_expression "puVar11[(int)(puVar22 + iVar1)]" identifier [ (cast_expression "(int)(puVar22 + iVar1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar22 + iVar1)" ( (binary_expression "puVar22 + iVar1" identifier + identifier) ))) ]) = (pointer_expression "*puVar21" * identifier)) ;) (expression_statement "puVar21 = puVar22 + iVar2;" (assignment_expression "puVar21 = puVar22 + iVar2" identifier = (binary_expression "puVar22 + iVar2" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4))" ( (binary_expression "iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4)" identifier < (binary_expression "*(int *)puVar6 + *(int *)(puVar6 + 4)" (pointer_expression "*(int *)puVar6" * (cast_expression "(int *)puVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + (pointer_expression "*(int *)(puVar6 + 4)" * (cast_expression "(int *)(puVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 4)" ( (binary_expression "puVar6 + 4" identifier + number_literal) )))))) )) ;) })) }) (else_clause "else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }" else (compound_statement "{\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }" { (expression_statement "puVar11[(int)puVar22] = cVar19;" (assignment_expression "puVar11[(int)puVar22] = cVar19" (subscript_expression "puVar11[(int)puVar22]" identifier [ (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) ]) = identifier) ;) (expression_statement "puVar21 = puVar22 + 1;" (assignment_expression "puVar21 = puVar22 + 1" identifier = (binary_expression "puVar22 + 1" identifier + number_literal)) ;) }))) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "pcVar23 = pcVar23 + 1;" (assignment_expression "pcVar23 = pcVar23 + 1" identifier = (binary_expression "pcVar23 + 1" identifier + number_literal)) ;) (expression_statement "cVar19 = *pcVar23;" (assignment_expression "cVar19 = *pcVar23" identifier = (pointer_expression "*pcVar23" * identifier)) ;) (expression_statement "puVar22 = puVar21;" (assignment_expression "puVar22 = puVar21" identifier = identifier) ;) }))) })) (labeled_statement "LAB_00044f3c:\n    puVar22 = puVar11 + (int)puVar22;" statement_identifier : (expression_statement "puVar22 = puVar11 + (int)puVar22;" (assignment_expression "puVar22 = puVar11 + (int)puVar22" identifier = (binary_expression "puVar11 + (int)puVar22" identifier + (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (labeled_statement "LAB_00044f40:\n    *puVar22 = 0;" statement_identifier : (expression_statement "*puVar22 = 0;" (assignment_expression "*puVar22 = 0" (pointer_expression "*puVar22" * identifier) = number_literal) ;)) (if_statement "if (local_2c == *(int *)puVar8) {\n      return puVar11;\n    }" if (parenthesized_expression "(local_2c == *(int *)puVar8)" ( (binary_expression "local_2c == *(int *)puVar8" identifier == (pointer_expression "*(int *)puVar8" * (cast_expression "(int *)puVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return puVar11;\n    }" { (return_statement "return puVar11;" return identifier ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_000780c0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000780c0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000780c0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000780c0" * (cast_expression "(code *)PTR___stack_chk_fail_000780c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_0004536c:\n    iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);" statement_identifier : (expression_statement "iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);" (assignment_expression "iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23)" identifier = (call_expression "(*(code *)PTR_mbwidth_00077df0)(pcVar23)" (parenthesized_expression "(*(code *)PTR_mbwidth_00077df0)" ( (pointer_expression "*(code *)PTR_mbwidth_00077df0" * (cast_expression "(code *)PTR_mbwidth_00077df0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar23)" ( identifier )))) ;)) (if_statement "if (iVar9 == 2) {\n      if (param_2 == uVar10) {\n        param_2 = param_2 + 1;\n        *puVar11 = 0x20;\n        puVar22 = (undefined1 *)0x2;\n        puVar21 = puVar11 + 1;\n      }\n      else {\n        puVar22 = (undefined1 *)0x1;\n        puVar21 = puVar11;\n      }\nLAB_000452ec:\n      puVar3 = PTR_parse_mbchar_00077718;\n      *puVar21 = 0x3c;\n      iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n      param_2 = param_2 + 1;\n      pcVar23 = pcVar23 + iVar9;\n      cVar19 = *pcVar23;\n    }\n    else {\nLAB_0004529c:\n      cVar19 = *pcVar23;\n    }" if (parenthesized_expression "(iVar9 == 2)" ( (binary_expression "iVar9 == 2" identifier == number_literal) )) (compound_statement "{\n      if (param_2 == uVar10) {\n        param_2 = param_2 + 1;\n        *puVar11 = 0x20;\n        puVar22 = (undefined1 *)0x2;\n        puVar21 = puVar11 + 1;\n      }\n      else {\n        puVar22 = (undefined1 *)0x1;\n        puVar21 = puVar11;\n      }\nLAB_000452ec:\n      puVar3 = PTR_parse_mbchar_00077718;\n      *puVar21 = 0x3c;\n      iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n      param_2 = param_2 + 1;\n      pcVar23 = pcVar23 + iVar9;\n      cVar19 = *pcVar23;\n    }" { (if_statement "if (param_2 == uVar10) {\n        param_2 = param_2 + 1;\n        *puVar11 = 0x20;\n        puVar22 = (undefined1 *)0x2;\n        puVar21 = puVar11 + 1;\n      }\n      else {\n        puVar22 = (undefined1 *)0x1;\n        puVar21 = puVar11;\n      }" if (parenthesized_expression "(param_2 == uVar10)" ( (binary_expression "param_2 == uVar10" identifier == identifier) )) (compound_statement "{\n        param_2 = param_2 + 1;\n        *puVar11 = 0x20;\n        puVar22 = (undefined1 *)0x2;\n        puVar21 = puVar11 + 1;\n      }" { (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "*puVar11 = 0x20;" (assignment_expression "*puVar11 = 0x20" (pointer_expression "*puVar11" * identifier) = number_literal) ;) (expression_statement "puVar22 = (undefined1 *)0x2;" (assignment_expression "puVar22 = (undefined1 *)0x2" identifier = (cast_expression "(undefined1 *)0x2" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar21 = puVar11 + 1;" (assignment_expression "puVar21 = puVar11 + 1" identifier = (binary_expression "puVar11 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n        puVar22 = (undefined1 *)0x1;\n        puVar21 = puVar11;\n      }" else (compound_statement "{\n        puVar22 = (undefined1 *)0x1;\n        puVar21 = puVar11;\n      }" { (expression_statement "puVar22 = (undefined1 *)0x1;" (assignment_expression "puVar22 = (undefined1 *)0x1" identifier = (cast_expression "(undefined1 *)0x1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar21 = puVar11;" (assignment_expression "puVar21 = puVar11" identifier = identifier) ;) }))) (labeled_statement "LAB_000452ec:\n      puVar3 = PTR_parse_mbchar_00077718;" statement_identifier : (expression_statement "puVar3 = PTR_parse_mbchar_00077718;" (assignment_expression "puVar3 = PTR_parse_mbchar_00077718" identifier = identifier) ;)) (expression_statement "*puVar21 = 0x3c;" (assignment_expression "*puVar21 = 0x3c" (pointer_expression "*puVar21" * identifier) = number_literal) ;) (expression_statement "iVar9 = (*(code *)puVar3)(pcVar23,0,0);" (assignment_expression "iVar9 = (*(code *)puVar3)(pcVar23,0,0)" identifier = (call_expression "(*(code *)puVar3)(pcVar23,0,0)" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar23,0,0)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "pcVar23 = pcVar23 + iVar9;" (assignment_expression "pcVar23 = pcVar23 + iVar9" identifier = (binary_expression "pcVar23 + iVar9" identifier + identifier)) ;) (expression_statement "cVar19 = *pcVar23;" (assignment_expression "cVar19 = *pcVar23" identifier = (pointer_expression "*pcVar23" * identifier)) ;) }) (else_clause "else {\nLAB_0004529c:\n      cVar19 = *pcVar23;\n    }" else (compound_statement "{\nLAB_0004529c:\n      cVar19 = *pcVar23;\n    }" { (labeled_statement "LAB_0004529c:\n      cVar19 = *pcVar23;" statement_identifier : (expression_statement "cVar19 = *pcVar23;" (assignment_expression "cVar19 = *pcVar23" identifier = (pointer_expression "*pcVar23" * identifier)) ;)) }))) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit "char * display_string(char *buf,size_t column,size_t span,_Bool isdata)\n\n{\n  undefined *puVar1;\n  size_t maxlen;\n  int iVar2;\n  int charwidth;\n  \n  puVar1 = PTR_tabsize_000777bc;\n  maxlen = actual_x(buf,column);\n  strnlenpt(buf,maxlen);\n  iVar2 = (*(code *)PTR_strlen_00077ff8)(buf + maxlen);\n                    /* WARNING: Subroutine does not return */\n  nmalloc((*(int *)puVar1 + 6) * iVar2 + 1);\n}\n\n" (function_definition "char * display_string(char *buf,size_t column,size_t span,_Bool isdata)\n\n{\n  undefined *puVar1;\n  size_t maxlen;\n  int iVar2;\n  int charwidth;\n  \n  puVar1 = PTR_tabsize_000777bc;\n  maxlen = actual_x(buf,column);\n  strnlenpt(buf,maxlen);\n  iVar2 = (*(code *)PTR_strlen_00077ff8)(buf + maxlen);\n                    /* WARNING: Subroutine does not return */\n  nmalloc((*(int *)puVar1 + 6) * iVar2 + 1);\n}" primitive_type (pointer_declarator "* display_string(char *buf,size_t column,size_t span,_Bool isdata)" * (function_declarator "display_string(char *buf,size_t column,size_t span,_Bool isdata)" identifier (parameter_list "(char *buf,size_t column,size_t span,_Bool isdata)" ( (parameter_declaration "char *buf" primitive_type (pointer_declarator "*buf" * identifier)) , (parameter_declaration "size_t column" primitive_type identifier) , (parameter_declaration "size_t span" primitive_type identifier) , (parameter_declaration "_Bool isdata" type_identifier identifier) )))) (compound_statement "{\n  undefined *puVar1;\n  size_t maxlen;\n  int iVar2;\n  int charwidth;\n  \n  puVar1 = PTR_tabsize_000777bc;\n  maxlen = actual_x(buf,column);\n  strnlenpt(buf,maxlen);\n  iVar2 = (*(code *)PTR_strlen_00077ff8)(buf + maxlen);\n                    /* WARNING: Subroutine does not return */\n  nmalloc((*(int *)puVar1 + 6) * iVar2 + 1);\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "size_t maxlen;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int charwidth;" primitive_type identifier ;) (expression_statement "puVar1 = PTR_tabsize_000777bc;" (assignment_expression "puVar1 = PTR_tabsize_000777bc" identifier = identifier) ;) (expression_statement "maxlen = actual_x(buf,column);" (assignment_expression "maxlen = actual_x(buf,column)" identifier = (call_expression "actual_x(buf,column)" identifier (argument_list "(buf,column)" ( identifier , identifier )))) ;) (expression_statement "strnlenpt(buf,maxlen);" (call_expression "strnlenpt(buf,maxlen)" identifier (argument_list "(buf,maxlen)" ( identifier , identifier ))) ;) (expression_statement "iVar2 = (*(code *)PTR_strlen_00077ff8)(buf + maxlen);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_00077ff8)(buf + maxlen)" identifier = (call_expression "(*(code *)PTR_strlen_00077ff8)(buf + maxlen)" (parenthesized_expression "(*(code *)PTR_strlen_00077ff8)" ( (pointer_expression "*(code *)PTR_strlen_00077ff8" * (cast_expression "(code *)PTR_strlen_00077ff8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(buf + maxlen)" ( (binary_expression "buf + maxlen" identifier + identifier) )))) ;) comment (expression_statement "nmalloc((*(int *)puVar1 + 6) * iVar2 + 1);" (call_expression "nmalloc((*(int *)puVar1 + 6) * iVar2 + 1)" identifier (argument_list "((*(int *)puVar1 + 6) * iVar2 + 1)" ( (binary_expression "(*(int *)puVar1 + 6) * iVar2 + 1" (binary_expression "(*(int *)puVar1 + 6) * iVar2" (parenthesized_expression "(*(int *)puVar1 + 6)" ( (binary_expression "*(int *)puVar1 + 6" (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )) * identifier) + number_literal) ))) ;) })))
(translation_unit "undefined1 * display_string(int param_1,uint param_2,int param_3,int param_4)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  int iVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  int iVar12;\n  char *pcVar13;\n  undefined1 uVar15;\n  uint uVar14;\n  char cVar19;\n  char *pcVar16;\n  uint uVar17;\n  undefined1 *puVar18;\n  undefined1 *puVar20;\n  undefined1 *puVar21;\n  undefined1 *puVar22;\n  char *pcVar23;\n  uint uVar24;\n  int local_30;\n  int local_2c;\n  \n  puVar8 = PTR___stack_chk_guard_000780f8;\n  puVar4 = PTR_tabsize_000777bc;\n  uVar24 = param_2 + param_3;\n  local_2c = *(int *)PTR___stack_chk_guard_000780f8;\n  iVar9 = actual_x();\n  pcVar23 = (char *)(param_1 + iVar9);\n  uVar10 = strnlenpt(param_1,iVar9);\n  iVar9 = (*(code *)PTR_strlen_00077ff8)(pcVar23);\n  puVar11 = (undefined1 *)nmalloc((*(int *)puVar4 + 6) * iVar9 + 1);\n  cVar19 = *pcVar23;\n  if (cVar19 == '\0') {\n    puVar22 = (undefined1 *)0x0;\n    goto LAB_00044f3c;\n  }\n  if (cVar19 != '\t') {\n    if (uVar10 < param_2) {\n      iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n      if (iVar9 == 0) {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 == 2) {\n          puVar22 = (undefined1 *)0x1;\n          puVar21 = puVar11;\n          goto LAB_000452ec;\n        }\n        cVar19 = *pcVar23;\n        puVar22 = (undefined1 *)0x0;\n      }\n      else {\n        param_2 = param_2 + 1;\n        puVar22 = (undefined1 *)0x1;\n        uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);\n        puVar3 = PTR_parse_mbchar_00077718;\n        *puVar11 = uVar15;\n        iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n        pcVar23 = pcVar23 + iVar9;\n        cVar19 = *pcVar23;\n      }\n      goto LAB_00044e7c;\n    }\n    if (uVar10 != 0) {\n      puVar22 = (undefined1 *)0x0;\n      if (param_4 == 0) goto LAB_00044e7c;\n      if ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0) {\n        iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n        puVar22 = (undefined1 *)0x0;\n        if (iVar9 == 0) goto LAB_0004536c;\n        goto LAB_0004529c;\n      }\n    }\n  }\n  puVar22 = (undefined1 *)0x0;\nLAB_00044e7c:\n  do {\n    puVar6 = PTR_whitespace_len_000778d4;\n    puVar5 = PTR_whitespace_000777fc;\n    puVar3 = PTR_flags_0007759c;\n    while (cVar19 != '\0') {\n      if (param_2 < uVar24) {\n        if (cVar19 == ' ') goto LAB_00044fc8;\nLAB_00044eac:\n        local_30 = 1;\n        if (cVar19 == '\t') {\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }\n        else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }\n        cVar19 = *pcVar23;\n        if (cVar19 != ' ') goto LAB_00044eac;\nLAB_00044fc8:\n        local_30 = 1;\n        if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }\n        param_2 = param_2 + 1;\n        pcVar23 = pcVar23 + 1;\n        cVar19 = *pcVar23;\n        puVar22 = puVar21;\n      }\n    }\nLAB_00044f3c:\n    puVar22 = puVar11 + (int)puVar22;\nLAB_00044f40:\n    *puVar22 = 0;\n    if (local_2c == *(int *)puVar8) {\n      return puVar11;\n    }\n    (*(code *)PTR___stack_chk_fail_000780c0)();\nLAB_0004536c:\n    iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n    if (iVar9 == 2) {\n      if (param_2 == uVar10) {\n        param_2 = param_2 + 1;\n        *puVar11 = 0x20;\n        puVar22 = (undefined1 *)0x2;\n        puVar21 = puVar11 + 1;\n      }\n      else {\n        puVar22 = (undefined1 *)0x1;\n        puVar21 = puVar11;\n      }\nLAB_000452ec:\n      puVar3 = PTR_parse_mbchar_00077718;\n      *puVar21 = 0x3c;\n      iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n      param_2 = param_2 + 1;\n      pcVar23 = pcVar23 + iVar9;\n      cVar19 = *pcVar23;\n    }\n    else {\nLAB_0004529c:\n      cVar19 = *pcVar23;\n    }\n  } while( true );\n}\n\n" (function_definition "undefined1 * display_string(int param_1,uint param_2,int param_3,int param_4)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  int iVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  int iVar12;\n  char *pcVar13;\n  undefined1 uVar15;\n  uint uVar14;\n  char cVar19;\n  char *pcVar16;\n  uint uVar17;\n  undefined1 *puVar18;\n  undefined1 *puVar20;\n  undefined1 *puVar21;\n  undefined1 *puVar22;\n  char *pcVar23;\n  uint uVar24;\n  int local_30;\n  int local_2c;\n  \n  puVar8 = PTR___stack_chk_guard_000780f8;\n  puVar4 = PTR_tabsize_000777bc;\n  uVar24 = param_2 + param_3;\n  local_2c = *(int *)PTR___stack_chk_guard_000780f8;\n  iVar9 = actual_x();\n  pcVar23 = (char *)(param_1 + iVar9);\n  uVar10 = strnlenpt(param_1,iVar9);\n  iVar9 = (*(code *)PTR_strlen_00077ff8)(pcVar23);\n  puVar11 = (undefined1 *)nmalloc((*(int *)puVar4 + 6) * iVar9 + 1);\n  cVar19 = *pcVar23;\n  if (cVar19 == '\0') {\n    puVar22 = (undefined1 *)0x0;\n    goto LAB_00044f3c;\n  }\n  if (cVar19 != '\t') {\n    if (uVar10 < param_2) {\n      iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n      if (iVar9 == 0) {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 == 2) {\n          puVar22 = (undefined1 *)0x1;\n          puVar21 = puVar11;\n          goto LAB_000452ec;\n        }\n        cVar19 = *pcVar23;\n        puVar22 = (undefined1 *)0x0;\n      }\n      else {\n        param_2 = param_2 + 1;\n        puVar22 = (undefined1 *)0x1;\n        uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);\n        puVar3 = PTR_parse_mbchar_00077718;\n        *puVar11 = uVar15;\n        iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n        pcVar23 = pcVar23 + iVar9;\n        cVar19 = *pcVar23;\n      }\n      goto LAB_00044e7c;\n    }\n    if (uVar10 != 0) {\n      puVar22 = (undefined1 *)0x0;\n      if (param_4 == 0) goto LAB_00044e7c;\n      if ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0) {\n        iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n        puVar22 = (undefined1 *)0x0;\n        if (iVar9 == 0) goto LAB_0004536c;\n        goto LAB_0004529c;\n      }\n    }\n  }\n  puVar22 = (undefined1 *)0x0;\nLAB_00044e7c:\n  do {\n    puVar6 = PTR_whitespace_len_000778d4;\n    puVar5 = PTR_whitespace_000777fc;\n    puVar3 = PTR_flags_0007759c;\n    while (cVar19 != '\0') {\n      if (param_2 < uVar24) {\n        if (cVar19 == ' ') goto LAB_00044fc8;\nLAB_00044eac:\n        local_30 = 1;\n        if (cVar19 == '\t') {\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }\n        else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }\n        cVar19 = *pcVar23;\n        if (cVar19 != ' ') goto LAB_00044eac;\nLAB_00044fc8:\n        local_30 = 1;\n        if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }\n        param_2 = param_2 + 1;\n        pcVar23 = pcVar23 + 1;\n        cVar19 = *pcVar23;\n        puVar22 = puVar21;\n      }\n    }\nLAB_00044f3c:\n    puVar22 = puVar11 + (int)puVar22;\nLAB_00044f40:\n    *puVar22 = 0;\n    if (local_2c == *(int *)puVar8) {\n      return puVar11;\n    }\n    (*(code *)PTR___stack_chk_fail_000780c0)();\nLAB_0004536c:\n    iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n    if (iVar9 == 2) {\n      if (param_2 == uVar10) {\n        param_2 = param_2 + 1;\n        *puVar11 = 0x20;\n        puVar22 = (undefined1 *)0x2;\n        puVar21 = puVar11 + 1;\n      }\n      else {\n        puVar22 = (undefined1 *)0x1;\n        puVar21 = puVar11;\n      }\nLAB_000452ec:\n      puVar3 = PTR_parse_mbchar_00077718;\n      *puVar21 = 0x3c;\n      iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n      param_2 = param_2 + 1;\n      pcVar23 = pcVar23 + iVar9;\n      cVar19 = *pcVar23;\n    }\n    else {\nLAB_0004529c:\n      cVar19 = *pcVar23;\n    }\n  } while( true );\n}" type_identifier (pointer_declarator "* display_string(int param_1,uint param_2,int param_3,int param_4)" * (function_declarator "display_string(int param_1,uint param_2,int param_3,int param_4)" identifier (parameter_list "(int param_1,uint param_2,int param_3,int param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) )))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  int iVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  int iVar12;\n  char *pcVar13;\n  undefined1 uVar15;\n  uint uVar14;\n  char cVar19;\n  char *pcVar16;\n  uint uVar17;\n  undefined1 *puVar18;\n  undefined1 *puVar20;\n  undefined1 *puVar21;\n  undefined1 *puVar22;\n  char *pcVar23;\n  uint uVar24;\n  int local_30;\n  int local_2c;\n  \n  puVar8 = PTR___stack_chk_guard_000780f8;\n  puVar4 = PTR_tabsize_000777bc;\n  uVar24 = param_2 + param_3;\n  local_2c = *(int *)PTR___stack_chk_guard_000780f8;\n  iVar9 = actual_x();\n  pcVar23 = (char *)(param_1 + iVar9);\n  uVar10 = strnlenpt(param_1,iVar9);\n  iVar9 = (*(code *)PTR_strlen_00077ff8)(pcVar23);\n  puVar11 = (undefined1 *)nmalloc((*(int *)puVar4 + 6) * iVar9 + 1);\n  cVar19 = *pcVar23;\n  if (cVar19 == '\0') {\n    puVar22 = (undefined1 *)0x0;\n    goto LAB_00044f3c;\n  }\n  if (cVar19 != '\t') {\n    if (uVar10 < param_2) {\n      iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n      if (iVar9 == 0) {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 == 2) {\n          puVar22 = (undefined1 *)0x1;\n          puVar21 = puVar11;\n          goto LAB_000452ec;\n        }\n        cVar19 = *pcVar23;\n        puVar22 = (undefined1 *)0x0;\n      }\n      else {\n        param_2 = param_2 + 1;\n        puVar22 = (undefined1 *)0x1;\n        uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);\n        puVar3 = PTR_parse_mbchar_00077718;\n        *puVar11 = uVar15;\n        iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n        pcVar23 = pcVar23 + iVar9;\n        cVar19 = *pcVar23;\n      }\n      goto LAB_00044e7c;\n    }\n    if (uVar10 != 0) {\n      puVar22 = (undefined1 *)0x0;\n      if (param_4 == 0) goto LAB_00044e7c;\n      if ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0) {\n        iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n        puVar22 = (undefined1 *)0x0;\n        if (iVar9 == 0) goto LAB_0004536c;\n        goto LAB_0004529c;\n      }\n    }\n  }\n  puVar22 = (undefined1 *)0x0;\nLAB_00044e7c:\n  do {\n    puVar6 = PTR_whitespace_len_000778d4;\n    puVar5 = PTR_whitespace_000777fc;\n    puVar3 = PTR_flags_0007759c;\n    while (cVar19 != '\0') {\n      if (param_2 < uVar24) {\n        if (cVar19 == ' ') goto LAB_00044fc8;\nLAB_00044eac:\n        local_30 = 1;\n        if (cVar19 == '\t') {\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }\n        else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }\n        cVar19 = *pcVar23;\n        if (cVar19 != ' ') goto LAB_00044eac;\nLAB_00044fc8:\n        local_30 = 1;\n        if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }\n        param_2 = param_2 + 1;\n        pcVar23 = pcVar23 + 1;\n        cVar19 = *pcVar23;\n        puVar22 = puVar21;\n      }\n    }\nLAB_00044f3c:\n    puVar22 = puVar11 + (int)puVar22;\nLAB_00044f40:\n    *puVar22 = 0;\n    if (local_2c == *(int *)puVar8) {\n      return puVar11;\n    }\n    (*(code *)PTR___stack_chk_fail_000780c0)();\nLAB_0004536c:\n    iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n    if (iVar9 == 2) {\n      if (param_2 == uVar10) {\n        param_2 = param_2 + 1;\n        *puVar11 = 0x20;\n        puVar22 = (undefined1 *)0x2;\n        puVar21 = puVar11 + 1;\n      }\n      else {\n        puVar22 = (undefined1 *)0x1;\n        puVar21 = puVar11;\n      }\nLAB_000452ec:\n      puVar3 = PTR_parse_mbchar_00077718;\n      *puVar21 = 0x3c;\n      iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n      param_2 = param_2 + 1;\n      pcVar23 = pcVar23 + iVar9;\n      cVar19 = *pcVar23;\n    }\n    else {\nLAB_0004529c:\n      cVar19 = *pcVar23;\n    }\n  } while( true );\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "undefined1 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "undefined1 uVar15;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "char cVar19;" primitive_type identifier ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "undefined1 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "undefined1 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined1 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "undefined1 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "char *pcVar23;" primitive_type (pointer_declarator "*pcVar23" * identifier) ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar8 = PTR___stack_chk_guard_000780f8;" (assignment_expression "puVar8 = PTR___stack_chk_guard_000780f8" identifier = identifier) ;) (expression_statement "puVar4 = PTR_tabsize_000777bc;" (assignment_expression "puVar4 = PTR_tabsize_000777bc" identifier = identifier) ;) (expression_statement "uVar24 = param_2 + param_3;" (assignment_expression "uVar24 = param_2 + param_3" identifier = (binary_expression "param_2 + param_3" identifier + identifier)) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000780f8;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000780f8" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000780f8" * (cast_expression "(int *)PTR___stack_chk_guard_000780f8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar9 = actual_x();" (assignment_expression "iVar9 = actual_x()" identifier = (call_expression "actual_x()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar23 = (char *)(param_1 + iVar9);" (assignment_expression "pcVar23 = (char *)(param_1 + iVar9)" identifier = (cast_expression "(char *)(param_1 + iVar9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar9)" ( (binary_expression "param_1 + iVar9" identifier + identifier) )))) ;) (expression_statement "uVar10 = strnlenpt(param_1,iVar9);" (assignment_expression "uVar10 = strnlenpt(param_1,iVar9)" identifier = (call_expression "strnlenpt(param_1,iVar9)" identifier (argument_list "(param_1,iVar9)" ( identifier , identifier )))) ;) (expression_statement "iVar9 = (*(code *)PTR_strlen_00077ff8)(pcVar23);" (assignment_expression "iVar9 = (*(code *)PTR_strlen_00077ff8)(pcVar23)" identifier = (call_expression "(*(code *)PTR_strlen_00077ff8)(pcVar23)" (parenthesized_expression "(*(code *)PTR_strlen_00077ff8)" ( (pointer_expression "*(code *)PTR_strlen_00077ff8" * (cast_expression "(code *)PTR_strlen_00077ff8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar23)" ( identifier )))) ;) (expression_statement "puVar11 = (undefined1 *)nmalloc((*(int *)puVar4 + 6) * iVar9 + 1);" (assignment_expression "puVar11 = (undefined1 *)nmalloc((*(int *)puVar4 + 6) * iVar9 + 1)" identifier = (cast_expression "(undefined1 *)nmalloc((*(int *)puVar4 + 6) * iVar9 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "nmalloc((*(int *)puVar4 + 6) * iVar9 + 1)" identifier (argument_list "((*(int *)puVar4 + 6) * iVar9 + 1)" ( (binary_expression "(*(int *)puVar4 + 6) * iVar9 + 1" (binary_expression "(*(int *)puVar4 + 6) * iVar9" (parenthesized_expression "(*(int *)puVar4 + 6)" ( (binary_expression "*(int *)puVar4 + 6" (pointer_expression "*(int *)puVar4" * (cast_expression "(int *)puVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )) * identifier) + number_literal) ))))) ;) (expression_statement "cVar19 = *pcVar23;" (assignment_expression "cVar19 = *pcVar23" identifier = (pointer_expression "*pcVar23" * identifier)) ;) (if_statement "if (cVar19 == '\0') {\n    puVar22 = (undefined1 *)0x0;\n    goto LAB_00044f3c;\n  }" if (parenthesized_expression "(cVar19 == '\0')" ( (binary_expression "cVar19 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    puVar22 = (undefined1 *)0x0;\n    goto LAB_00044f3c;\n  }" { (expression_statement "puVar22 = (undefined1 *)0x0;" (assignment_expression "puVar22 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00044f3c;" goto statement_identifier ;) })) (if_statement "if (cVar19 != '\t') {\n    if (uVar10 < param_2) {\n      iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n      if (iVar9 == 0) {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 == 2) {\n          puVar22 = (undefined1 *)0x1;\n          puVar21 = puVar11;\n          goto LAB_000452ec;\n        }\n        cVar19 = *pcVar23;\n        puVar22 = (undefined1 *)0x0;\n      }\n      else {\n        param_2 = param_2 + 1;\n        puVar22 = (undefined1 *)0x1;\n        uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);\n        puVar3 = PTR_parse_mbchar_00077718;\n        *puVar11 = uVar15;\n        iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n        pcVar23 = pcVar23 + iVar9;\n        cVar19 = *pcVar23;\n      }\n      goto LAB_00044e7c;\n    }\n    if (uVar10 != 0) {\n      puVar22 = (undefined1 *)0x0;\n      if (param_4 == 0) goto LAB_00044e7c;\n      if ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0) {\n        iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n        puVar22 = (undefined1 *)0x0;\n        if (iVar9 == 0) goto LAB_0004536c;\n        goto LAB_0004529c;\n      }\n    }\n  }" if (parenthesized_expression "(cVar19 != '\t')" ( (binary_expression "cVar19 != '\t'" identifier != (char_literal "'\t'" ' escape_sequence ')) )) (compound_statement "{\n    if (uVar10 < param_2) {\n      iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n      if (iVar9 == 0) {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 == 2) {\n          puVar22 = (undefined1 *)0x1;\n          puVar21 = puVar11;\n          goto LAB_000452ec;\n        }\n        cVar19 = *pcVar23;\n        puVar22 = (undefined1 *)0x0;\n      }\n      else {\n        param_2 = param_2 + 1;\n        puVar22 = (undefined1 *)0x1;\n        uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);\n        puVar3 = PTR_parse_mbchar_00077718;\n        *puVar11 = uVar15;\n        iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n        pcVar23 = pcVar23 + iVar9;\n        cVar19 = *pcVar23;\n      }\n      goto LAB_00044e7c;\n    }\n    if (uVar10 != 0) {\n      puVar22 = (undefined1 *)0x0;\n      if (param_4 == 0) goto LAB_00044e7c;\n      if ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0) {\n        iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n        puVar22 = (undefined1 *)0x0;\n        if (iVar9 == 0) goto LAB_0004536c;\n        goto LAB_0004529c;\n      }\n    }\n  }" { (if_statement "if (uVar10 < param_2) {\n      iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n      if (iVar9 == 0) {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 == 2) {\n          puVar22 = (undefined1 *)0x1;\n          puVar21 = puVar11;\n          goto LAB_000452ec;\n        }\n        cVar19 = *pcVar23;\n        puVar22 = (undefined1 *)0x0;\n      }\n      else {\n        param_2 = param_2 + 1;\n        puVar22 = (undefined1 *)0x1;\n        uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);\n        puVar3 = PTR_parse_mbchar_00077718;\n        *puVar11 = uVar15;\n        iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n        pcVar23 = pcVar23 + iVar9;\n        cVar19 = *pcVar23;\n      }\n      goto LAB_00044e7c;\n    }" if (parenthesized_expression "(uVar10 < param_2)" ( (binary_expression "uVar10 < param_2" identifier < identifier) )) (compound_statement "{\n      iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n      if (iVar9 == 0) {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 == 2) {\n          puVar22 = (undefined1 *)0x1;\n          puVar21 = puVar11;\n          goto LAB_000452ec;\n        }\n        cVar19 = *pcVar23;\n        puVar22 = (undefined1 *)0x0;\n      }\n      else {\n        param_2 = param_2 + 1;\n        puVar22 = (undefined1 *)0x1;\n        uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);\n        puVar3 = PTR_parse_mbchar_00077718;\n        *puVar11 = uVar15;\n        iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n        pcVar23 = pcVar23 + iVar9;\n        cVar19 = *pcVar23;\n      }\n      goto LAB_00044e7c;\n    }" { (expression_statement "iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);" (assignment_expression "iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23)" identifier = (call_expression "(*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23)" (parenthesized_expression "(*(code *)PTR_is_cntrl_mbchar_0007797c)" ( (pointer_expression "*(code *)PTR_is_cntrl_mbchar_0007797c" * (cast_expression "(code *)PTR_is_cntrl_mbchar_0007797c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar23)" ( identifier )))) ;) (if_statement "if (iVar9 == 0) {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 == 2) {\n          puVar22 = (undefined1 *)0x1;\n          puVar21 = puVar11;\n          goto LAB_000452ec;\n        }\n        cVar19 = *pcVar23;\n        puVar22 = (undefined1 *)0x0;\n      }\n      else {\n        param_2 = param_2 + 1;\n        puVar22 = (undefined1 *)0x1;\n        uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);\n        puVar3 = PTR_parse_mbchar_00077718;\n        *puVar11 = uVar15;\n        iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n        pcVar23 = pcVar23 + iVar9;\n        cVar19 = *pcVar23;\n      }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 == 2) {\n          puVar22 = (undefined1 *)0x1;\n          puVar21 = puVar11;\n          goto LAB_000452ec;\n        }\n        cVar19 = *pcVar23;\n        puVar22 = (undefined1 *)0x0;\n      }" { (expression_statement "iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);" (assignment_expression "iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23)" identifier = (call_expression "(*(code *)PTR_mbwidth_00077df0)(pcVar23)" (parenthesized_expression "(*(code *)PTR_mbwidth_00077df0)" ( (pointer_expression "*(code *)PTR_mbwidth_00077df0" * (cast_expression "(code *)PTR_mbwidth_00077df0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar23)" ( identifier )))) ;) (if_statement "if (iVar9 == 2) {\n          puVar22 = (undefined1 *)0x1;\n          puVar21 = puVar11;\n          goto LAB_000452ec;\n        }" if (parenthesized_expression "(iVar9 == 2)" ( (binary_expression "iVar9 == 2" identifier == number_literal) )) (compound_statement "{\n          puVar22 = (undefined1 *)0x1;\n          puVar21 = puVar11;\n          goto LAB_000452ec;\n        }" { (expression_statement "puVar22 = (undefined1 *)0x1;" (assignment_expression "puVar22 = (undefined1 *)0x1" identifier = (cast_expression "(undefined1 *)0x1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar21 = puVar11;" (assignment_expression "puVar21 = puVar11" identifier = identifier) ;) (goto_statement "goto LAB_000452ec;" goto statement_identifier ;) })) (expression_statement "cVar19 = *pcVar23;" (assignment_expression "cVar19 = *pcVar23" identifier = (pointer_expression "*pcVar23" * identifier)) ;) (expression_statement "puVar22 = (undefined1 *)0x0;" (assignment_expression "puVar22 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        param_2 = param_2 + 1;\n        puVar22 = (undefined1 *)0x1;\n        uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);\n        puVar3 = PTR_parse_mbchar_00077718;\n        *puVar11 = uVar15;\n        iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n        pcVar23 = pcVar23 + iVar9;\n        cVar19 = *pcVar23;\n      }" else (compound_statement "{\n        param_2 = param_2 + 1;\n        puVar22 = (undefined1 *)0x1;\n        uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);\n        puVar3 = PTR_parse_mbchar_00077718;\n        *puVar11 = uVar15;\n        iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n        pcVar23 = pcVar23 + iVar9;\n        cVar19 = *pcVar23;\n      }" { (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "puVar22 = (undefined1 *)0x1;" (assignment_expression "puVar22 = (undefined1 *)0x1" identifier = (cast_expression "(undefined1 *)0x1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);" (assignment_expression "uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4)" identifier = (call_expression "(*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4)" (parenthesized_expression "(*(code *)PTR_control_mbrep_00077df4)" ( (pointer_expression "*(code *)PTR_control_mbrep_00077df4" * (cast_expression "(code *)PTR_control_mbrep_00077df4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar23,param_4)" ( identifier , identifier )))) ;) (expression_statement "puVar3 = PTR_parse_mbchar_00077718;" (assignment_expression "puVar3 = PTR_parse_mbchar_00077718" identifier = identifier) ;) (expression_statement "*puVar11 = uVar15;" (assignment_expression "*puVar11 = uVar15" (pointer_expression "*puVar11" * identifier) = identifier) ;) (expression_statement "iVar9 = (*(code *)puVar3)(pcVar23,0,0);" (assignment_expression "iVar9 = (*(code *)puVar3)(pcVar23,0,0)" identifier = (call_expression "(*(code *)puVar3)(pcVar23,0,0)" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar23,0,0)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "pcVar23 = pcVar23 + iVar9;" (assignment_expression "pcVar23 = pcVar23 + iVar9" identifier = (binary_expression "pcVar23 + iVar9" identifier + identifier)) ;) (expression_statement "cVar19 = *pcVar23;" (assignment_expression "cVar19 = *pcVar23" identifier = (pointer_expression "*pcVar23" * identifier)) ;) }))) (goto_statement "goto LAB_00044e7c;" goto statement_identifier ;) })) (if_statement "if (uVar10 != 0) {\n      puVar22 = (undefined1 *)0x0;\n      if (param_4 == 0) goto LAB_00044e7c;\n      if ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0) {\n        iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n        puVar22 = (undefined1 *)0x0;\n        if (iVar9 == 0) goto LAB_0004536c;\n        goto LAB_0004529c;\n      }\n    }" if (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) (compound_statement "{\n      puVar22 = (undefined1 *)0x0;\n      if (param_4 == 0) goto LAB_00044e7c;\n      if ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0) {\n        iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n        puVar22 = (undefined1 *)0x0;\n        if (iVar9 == 0) goto LAB_0004536c;\n        goto LAB_0004529c;\n      }\n    }" { (expression_statement "puVar22 = (undefined1 *)0x0;" (assignment_expression "puVar22 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (param_4 == 0) goto LAB_00044e7c;" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00044e7c;" goto statement_identifier ;)) (if_statement "if ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0) {\n        iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n        puVar22 = (undefined1 *)0x0;\n        if (iVar9 == 0) goto LAB_0004536c;\n        goto LAB_0004529c;\n      }" if (parenthesized_expression "((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)" ( (binary_expression "(*(uint *)(PTR_flags_0007759c + 4) & 2) == 0" (parenthesized_expression "(*(uint *)(PTR_flags_0007759c + 4) & 2)" ( (binary_expression "*(uint *)(PTR_flags_0007759c + 4) & 2" (pointer_expression "*(uint *)(PTR_flags_0007759c + 4)" * (cast_expression "(uint *)(PTR_flags_0007759c + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_flags_0007759c + 4)" ( (binary_expression "PTR_flags_0007759c + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n        puVar22 = (undefined1 *)0x0;\n        if (iVar9 == 0) goto LAB_0004536c;\n        goto LAB_0004529c;\n      }" { (expression_statement "iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);" (assignment_expression "iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23)" identifier = (call_expression "(*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23)" (parenthesized_expression "(*(code *)PTR_is_cntrl_mbchar_0007797c)" ( (pointer_expression "*(code *)PTR_is_cntrl_mbchar_0007797c" * (cast_expression "(code *)PTR_is_cntrl_mbchar_0007797c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar23)" ( identifier )))) ;) (expression_statement "puVar22 = (undefined1 *)0x0;" (assignment_expression "puVar22 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar9 == 0) goto LAB_0004536c;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004536c;" goto statement_identifier ;)) (goto_statement "goto LAB_0004529c;" goto statement_identifier ;) })) })) })) (expression_statement "puVar22 = (undefined1 *)0x0;" (assignment_expression "puVar22 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00044e7c:\n  do {\n    puVar6 = PTR_whitespace_len_000778d4;\n    puVar5 = PTR_whitespace_000777fc;\n    puVar3 = PTR_flags_0007759c;\n    while (cVar19 != '\0') {\n      if (param_2 < uVar24) {\n        if (cVar19 == ' ') goto LAB_00044fc8;\nLAB_00044eac:\n        local_30 = 1;\n        if (cVar19 == '\t') {\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }\n        else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }\n        cVar19 = *pcVar23;\n        if (cVar19 != ' ') goto LAB_00044eac;\nLAB_00044fc8:\n        local_30 = 1;\n        if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }\n        param_2 = param_2 + 1;\n        pcVar23 = pcVar23 + 1;\n        cVar19 = *pcVar23;\n        puVar22 = puVar21;\n      }\n    }\nLAB_00044f3c:\n    puVar22 = puVar11 + (int)puVar22;\nLAB_00044f40:\n    *puVar22 = 0;\n    if (local_2c == *(int *)puVar8) {\n      return puVar11;\n    }\n    (*(code *)PTR___stack_chk_fail_000780c0)();\nLAB_0004536c:\n    iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n    if (iVar9 == 2) {\n      if (param_2 == uVar10) {\n        param_2 = param_2 + 1;\n        *puVar11 = 0x20;\n        puVar22 = (undefined1 *)0x2;\n        puVar21 = puVar11 + 1;\n      }\n      else {\n        puVar22 = (undefined1 *)0x1;\n        puVar21 = puVar11;\n      }\nLAB_000452ec:\n      puVar3 = PTR_parse_mbchar_00077718;\n      *puVar21 = 0x3c;\n      iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n      param_2 = param_2 + 1;\n      pcVar23 = pcVar23 + iVar9;\n      cVar19 = *pcVar23;\n    }\n    else {\nLAB_0004529c:\n      cVar19 = *pcVar23;\n    }\n  } while( true );" statement_identifier : (do_statement "do {\n    puVar6 = PTR_whitespace_len_000778d4;\n    puVar5 = PTR_whitespace_000777fc;\n    puVar3 = PTR_flags_0007759c;\n    while (cVar19 != '\0') {\n      if (param_2 < uVar24) {\n        if (cVar19 == ' ') goto LAB_00044fc8;\nLAB_00044eac:\n        local_30 = 1;\n        if (cVar19 == '\t') {\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }\n        else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }\n        cVar19 = *pcVar23;\n        if (cVar19 != ' ') goto LAB_00044eac;\nLAB_00044fc8:\n        local_30 = 1;\n        if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }\n        param_2 = param_2 + 1;\n        pcVar23 = pcVar23 + 1;\n        cVar19 = *pcVar23;\n        puVar22 = puVar21;\n      }\n    }\nLAB_00044f3c:\n    puVar22 = puVar11 + (int)puVar22;\nLAB_00044f40:\n    *puVar22 = 0;\n    if (local_2c == *(int *)puVar8) {\n      return puVar11;\n    }\n    (*(code *)PTR___stack_chk_fail_000780c0)();\nLAB_0004536c:\n    iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n    if (iVar9 == 2) {\n      if (param_2 == uVar10) {\n        param_2 = param_2 + 1;\n        *puVar11 = 0x20;\n        puVar22 = (undefined1 *)0x2;\n        puVar21 = puVar11 + 1;\n      }\n      else {\n        puVar22 = (undefined1 *)0x1;\n        puVar21 = puVar11;\n      }\nLAB_000452ec:\n      puVar3 = PTR_parse_mbchar_00077718;\n      *puVar21 = 0x3c;\n      iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n      param_2 = param_2 + 1;\n      pcVar23 = pcVar23 + iVar9;\n      cVar19 = *pcVar23;\n    }\n    else {\nLAB_0004529c:\n      cVar19 = *pcVar23;\n    }\n  } while( true );" do (compound_statement "{\n    puVar6 = PTR_whitespace_len_000778d4;\n    puVar5 = PTR_whitespace_000777fc;\n    puVar3 = PTR_flags_0007759c;\n    while (cVar19 != '\0') {\n      if (param_2 < uVar24) {\n        if (cVar19 == ' ') goto LAB_00044fc8;\nLAB_00044eac:\n        local_30 = 1;\n        if (cVar19 == '\t') {\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }\n        else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }\n        cVar19 = *pcVar23;\n        if (cVar19 != ' ') goto LAB_00044eac;\nLAB_00044fc8:\n        local_30 = 1;\n        if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }\n        param_2 = param_2 + 1;\n        pcVar23 = pcVar23 + 1;\n        cVar19 = *pcVar23;\n        puVar22 = puVar21;\n      }\n    }\nLAB_00044f3c:\n    puVar22 = puVar11 + (int)puVar22;\nLAB_00044f40:\n    *puVar22 = 0;\n    if (local_2c == *(int *)puVar8) {\n      return puVar11;\n    }\n    (*(code *)PTR___stack_chk_fail_000780c0)();\nLAB_0004536c:\n    iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n    if (iVar9 == 2) {\n      if (param_2 == uVar10) {\n        param_2 = param_2 + 1;\n        *puVar11 = 0x20;\n        puVar22 = (undefined1 *)0x2;\n        puVar21 = puVar11 + 1;\n      }\n      else {\n        puVar22 = (undefined1 *)0x1;\n        puVar21 = puVar11;\n      }\nLAB_000452ec:\n      puVar3 = PTR_parse_mbchar_00077718;\n      *puVar21 = 0x3c;\n      iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n      param_2 = param_2 + 1;\n      pcVar23 = pcVar23 + iVar9;\n      cVar19 = *pcVar23;\n    }\n    else {\nLAB_0004529c:\n      cVar19 = *pcVar23;\n    }\n  }" { (expression_statement "puVar6 = PTR_whitespace_len_000778d4;" (assignment_expression "puVar6 = PTR_whitespace_len_000778d4" identifier = identifier) ;) (expression_statement "puVar5 = PTR_whitespace_000777fc;" (assignment_expression "puVar5 = PTR_whitespace_000777fc" identifier = identifier) ;) (expression_statement "puVar3 = PTR_flags_0007759c;" (assignment_expression "puVar3 = PTR_flags_0007759c" identifier = identifier) ;) (while_statement "while (cVar19 != '\0') {\n      if (param_2 < uVar24) {\n        if (cVar19 == ' ') goto LAB_00044fc8;\nLAB_00044eac:\n        local_30 = 1;\n        if (cVar19 == '\t') {\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }\n        else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }\n        cVar19 = *pcVar23;\n        if (cVar19 != ' ') goto LAB_00044eac;\nLAB_00044fc8:\n        local_30 = 1;\n        if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }\n        param_2 = param_2 + 1;\n        pcVar23 = pcVar23 + 1;\n        cVar19 = *pcVar23;\n        puVar22 = puVar21;\n      }\n    }" while (parenthesized_expression "(cVar19 != '\0')" ( (binary_expression "cVar19 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (param_2 < uVar24) {\n        if (cVar19 == ' ') goto LAB_00044fc8;\nLAB_00044eac:\n        local_30 = 1;\n        if (cVar19 == '\t') {\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }\n        else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }\n        cVar19 = *pcVar23;\n        if (cVar19 != ' ') goto LAB_00044eac;\nLAB_00044fc8:\n        local_30 = 1;\n        if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }\n        param_2 = param_2 + 1;\n        pcVar23 = pcVar23 + 1;\n        cVar19 = *pcVar23;\n        puVar22 = puVar21;\n      }\n    }" { (if_statement "if (param_2 < uVar24) {\n        if (cVar19 == ' ') goto LAB_00044fc8;\nLAB_00044eac:\n        local_30 = 1;\n        if (cVar19 == '\t') {\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }\n        else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }\n        cVar19 = *pcVar23;\n        if (cVar19 != ' ') goto LAB_00044eac;\nLAB_00044fc8:\n        local_30 = 1;\n        if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }\n        param_2 = param_2 + 1;\n        pcVar23 = pcVar23 + 1;\n        cVar19 = *pcVar23;\n        puVar22 = puVar21;\n      }" if (parenthesized_expression "(param_2 < uVar24)" ( (binary_expression "param_2 < uVar24" identifier < identifier) )) (compound_statement "{\n        if (cVar19 == ' ') goto LAB_00044fc8;\nLAB_00044eac:\n        local_30 = 1;\n        if (cVar19 == '\t') {\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }\n        else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }\n      }" { (if_statement "if (cVar19 == ' ') goto LAB_00044fc8;" if (parenthesized_expression "(cVar19 == ' ')" ( (binary_expression "cVar19 == ' '" identifier == (char_literal "' '" ' character ')) )) (goto_statement "goto LAB_00044fc8;" goto statement_identifier ;)) (labeled_statement "LAB_00044eac:\n        local_30 = 1;" statement_identifier : (expression_statement "local_30 = 1;" (assignment_expression "local_30 = 1" identifier = number_literal) ;)) (if_statement "if (cVar19 == '\t') {\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }\n        else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }" if (parenthesized_expression "(cVar19 == '\t')" ( (binary_expression "cVar19 == '\t'" identifier == (char_literal "'\t'" ' escape_sequence ')) )) (compound_statement "{\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }" { (if_statement "if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }" if (parenthesized_expression "(*(int *)puVar3 << 6 < 0)" ( (binary_expression "*(int *)puVar3 << 6 < 0" (binary_expression "*(int *)puVar3 << 6" (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal) < number_literal) )) (compound_statement "{\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }" { (if_statement "if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }" if (parenthesized_expression "(((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0))" ( (binary_expression "((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)" (parenthesized_expression "((puVar22 == (undefined1 *)0x0) && (param_4 != 0))" ( (binary_expression "(puVar22 == (undefined1 *)0x0) && (param_4 != 0)" (parenthesized_expression "(puVar22 == (undefined1 *)0x0)" ( (binary_expression "puVar22 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "((*(uint *)(puVar3 + 4) & 2) != 0)" ( (binary_expression "(*(uint *)(puVar3 + 4) & 2) != 0" (parenthesized_expression "(*(uint *)(puVar3 + 4) & 2)" ( (binary_expression "*(uint *)(puVar3 + 4) & 2" (pointer_expression "*(uint *)(puVar3 + 4)" * (cast_expression "(uint *)(puVar3 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 4)" ( (binary_expression "puVar3 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }" { (if_statement "if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }" if (parenthesized_expression "(*(uint *)puVar4 == 0)" ( (binary_expression "*(uint *)puVar4 == 0" (pointer_expression "*(uint *)puVar4" * (cast_expression "(uint *)puVar4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n                trap(7);\n              }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;" if (parenthesized_expression "((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10))" ( (binary_expression "(param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)" (parenthesized_expression "(param_2 % *(uint *)puVar4 != 0)" ( (binary_expression "param_2 % *(uint *)puVar4 != 0" (binary_expression "param_2 % *(uint *)puVar4" identifier % (pointer_expression "*(uint *)puVar4" * (cast_expression "(uint *)puVar4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) != number_literal) )) && (parenthesized_expression "(param_2 != uVar10)" ( (binary_expression "param_2 != uVar10" identifier != identifier) ))) )) (goto_statement "goto LAB_00045094;" goto statement_identifier ;)) })) (expression_statement "puVar21 = puVar22;" (assignment_expression "puVar21 = puVar22" identifier = identifier) ;) (if_statement "if (*(int *)puVar6 < 1) goto LAB_000450a0;" if (parenthesized_expression "(*(int *)puVar6 < 1)" ( (binary_expression "*(int *)puVar6 < 1" (pointer_expression "*(int *)puVar6" * (cast_expression "(int *)puVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) < number_literal) )) (goto_statement "goto LAB_000450a0;" goto statement_identifier ;)) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (do_statement "do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);" do (compound_statement "{\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            }" { (expression_statement "puVar18 = puVar22 + iVar9;" (assignment_expression "puVar18 = puVar22 + iVar9" identifier = (binary_expression "puVar22 + iVar9" identifier + identifier)) ;) (expression_statement "puVar21 = puVar22 + iVar9 + 1;" (assignment_expression "puVar21 = puVar22 + iVar9 + 1" identifier = (binary_expression "puVar22 + iVar9 + 1" (binary_expression "puVar22 + iVar9" identifier + identifier) + number_literal)) ;) (expression_statement "puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);" (assignment_expression "puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9)" identifier = (cast_expression "(undefined1 *)(*(int *)puVar5 + iVar9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar5 + iVar9)" ( (binary_expression "*(int *)puVar5 + iVar9" (pointer_expression "*(int *)puVar5" * (cast_expression "(int *)puVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + identifier) )))) ;) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "puVar11[(int)puVar18] = *puVar20;" (assignment_expression "puVar11[(int)puVar18] = *puVar20" (subscript_expression "puVar11[(int)puVar18]" identifier [ (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) ]) = (pointer_expression "*puVar20" * identifier)) ;) }) while (parenthesized_expression "(iVar9 < *(int *)puVar6)" ( (binary_expression "iVar9 < *(int *)puVar6" identifier < (pointer_expression "*(int *)puVar6" * (cast_expression "(int *)puVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) ;) (expression_statement "uVar17 = *(uint *)puVar4;" (assignment_expression "uVar17 = *(uint *)puVar4" identifier = (pointer_expression "*(uint *)puVar4" * (cast_expression "(uint *)puVar4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) }) (else_clause "else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }" else (compound_statement "{\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }" { (labeled_statement "LAB_00045094:\n            puVar11[(int)puVar22] = 0x20;" statement_identifier : (expression_statement "puVar11[(int)puVar22] = 0x20;" (assignment_expression "puVar11[(int)puVar22] = 0x20" (subscript_expression "puVar11[(int)puVar22]" identifier [ (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) ]) = number_literal) ;)) (expression_statement "puVar21 = puVar22 + 1;" (assignment_expression "puVar21 = puVar22 + 1" identifier = (binary_expression "puVar22 + 1" identifier + number_literal)) ;) (labeled_statement "LAB_000450a0:\n            uVar17 = *(uint *)puVar4;" statement_identifier : (expression_statement "uVar17 = *(uint *)puVar4;" (assignment_expression "uVar17 = *(uint *)puVar4" identifier = (pointer_expression "*(uint *)puVar4" * (cast_expression "(uint *)puVar4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;)) }))) (expression_statement "uVar14 = param_2 + 1;" (assignment_expression "uVar14 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (if_statement "if (uVar17 == 0) {\n            trap(7);\n          }" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (compound_statement "{\n            trap(7);\n          }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "puVar22 = puVar21;" (assignment_expression "puVar22 = puVar21" identifier = identifier) ;) (if_statement "if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }" if (parenthesized_expression "((uVar14 % uVar17 != 0) && (uVar14 < uVar24))" ( (binary_expression "(uVar14 % uVar17 != 0) && (uVar14 < uVar24)" (parenthesized_expression "(uVar14 % uVar17 != 0)" ( (binary_expression "uVar14 % uVar17 != 0" (binary_expression "uVar14 % uVar17" identifier % identifier) != number_literal) )) && (parenthesized_expression "(uVar14 < uVar24)" ( (binary_expression "uVar14 < uVar24" identifier < identifier) ))) )) (compound_statement "{\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }" { (do_statement "do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));" do (compound_statement "{\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            }" { (expression_statement "puVar22 = puVar21 + (uVar14 - param_2);" (assignment_expression "puVar22 = puVar21 + (uVar14 - param_2)" identifier = (binary_expression "puVar21 + (uVar14 - param_2)" identifier + (parenthesized_expression "(uVar14 - param_2)" ( (binary_expression "uVar14 - param_2" identifier - identifier) )))) ;) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "(puVar11 + (int)puVar22)[-1] = 0x20;" (assignment_expression "(puVar11 + (int)puVar22)[-1] = 0x20" (subscript_expression "(puVar11 + (int)puVar22)[-1]" (parenthesized_expression "(puVar11 + (int)puVar22)" ( (binary_expression "puVar11 + (int)puVar22" identifier + (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier)) )) [ number_literal ]) = number_literal) ;) (if_statement "if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }" if (parenthesized_expression "(*(uint *)puVar4 == 0)" ( (binary_expression "*(uint *)puVar4 == 0" (pointer_expression "*(uint *)puVar4" * (cast_expression "(uint *)puVar4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n                trap(7);\n              }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) }) while (parenthesized_expression "((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24))" ( (binary_expression "(uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24)" (parenthesized_expression "(uVar14 % *(uint *)puVar4 != 0)" ( (binary_expression "uVar14 % *(uint *)puVar4 != 0" (binary_expression "uVar14 % *(uint *)puVar4" identifier % (pointer_expression "*(uint *)puVar4" * (cast_expression "(uint *)puVar4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) != number_literal) )) && (parenthesized_expression "(uVar14 < uVar24)" ( (binary_expression "uVar14 < uVar24" identifier < identifier) ))) )) ;) })) (expression_statement "pcVar23 = pcVar23 + 1;" (assignment_expression "pcVar23 = pcVar23 + 1" identifier = (binary_expression "pcVar23 + 1" identifier + number_literal)) ;) (expression_statement "cVar19 = *pcVar23;" (assignment_expression "cVar19 = *pcVar23" identifier = (pointer_expression "*pcVar23" * identifier)) ;) (expression_statement "param_2 = uVar14;" (assignment_expression "param_2 = uVar14" identifier = identifier) ;) }) (else_clause "else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }" else (compound_statement "{\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }" { (expression_statement "iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);" (assignment_expression "iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30)" identifier = (call_expression "(*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30)" (parenthesized_expression "(*(code *)PTR_length_of_char_00077dec)" ( (pointer_expression "*(code *)PTR_length_of_char_00077dec" * (cast_expression "(code *)PTR_length_of_char_00077dec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar23,&local_30)" ( identifier , (pointer_expression "&local_30" & identifier) )))) ;) (expression_statement "iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);" (assignment_expression "iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23)" identifier = (call_expression "(*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23)" (parenthesized_expression "(*(code *)PTR_is_cntrl_mbchar_0007797c)" ( (pointer_expression "*(code *)PTR_is_cntrl_mbchar_0007797c" * (cast_expression "(code *)PTR_is_cntrl_mbchar_0007797c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar23)" ( identifier )))) ;) (expression_statement "puVar7 = PTR_control_mbrep_00077df4;" (assignment_expression "puVar7 = PTR_control_mbrep_00077df4" identifier = identifier) ;) (expression_statement "pcVar16 = puVar11 + (int)puVar22;" (assignment_expression "pcVar16 = puVar11 + (int)puVar22" identifier = (binary_expression "puVar11 + (int)puVar22" identifier + (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }" { (expression_statement "pcVar13 = pcVar23 + 1;" (assignment_expression "pcVar13 = pcVar23 + 1" identifier = (binary_expression "pcVar23 + 1" identifier + number_literal)) ;) (if_statement "if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }" if (parenthesized_expression "(iVar9 < 1)" ( (binary_expression "iVar9 < 1" identifier < number_literal) )) (compound_statement "{\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }" { (expression_statement "*pcVar16 = -0x11;" (assignment_expression "*pcVar16 = -0x11" (pointer_expression "*pcVar16" * identifier) = number_literal) ;) (expression_statement "puVar11[(int)(puVar22 + 1)] = 0xbf;" (assignment_expression "puVar11[(int)(puVar22 + 1)] = 0xbf" (subscript_expression "puVar11[(int)(puVar22 + 1)]" identifier [ (cast_expression "(int)(puVar22 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar22 + 1)" ( (binary_expression "puVar22 + 1" identifier + number_literal) ))) ]) = number_literal) ;) (expression_statement "puVar11[(int)(puVar22 + 2)] = 0xbd;" (assignment_expression "puVar11[(int)(puVar22 + 2)] = 0xbd" (subscript_expression "puVar11[(int)(puVar22 + 2)]" identifier [ (cast_expression "(int)(puVar22 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar22 + 2)" ( (binary_expression "puVar22 + 2" identifier + number_literal) ))) ]) = number_literal) ;) (if_statement "if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }" if (parenthesized_expression "(iVar9 < -1)" ( (binary_expression "iVar9 < -1" identifier < number_literal) )) (compound_statement "{\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }" { (expression_statement "pcVar13 = pcVar13 + iVar9 + 7;" (assignment_expression "pcVar13 = pcVar13 + iVar9 + 7" identifier = (binary_expression "pcVar13 + iVar9 + 7" (binary_expression "pcVar13 + iVar9" identifier + identifier) + number_literal)) ;) })) (expression_statement "cVar19 = *pcVar13;" (assignment_expression "cVar19 = *pcVar13" identifier = (pointer_expression "*pcVar13" * identifier)) ;) (expression_statement "puVar22 = puVar22 + 3;" (assignment_expression "puVar22 = puVar22 + 3" identifier = (binary_expression "puVar22 + 3" identifier + number_literal)) ;) (expression_statement "pcVar23 = pcVar13;" (assignment_expression "pcVar23 = pcVar13" identifier = identifier) ;) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }" else (compound_statement "{\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }" { (while_statement "while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }" { (expression_statement "*pcVar16 = pcVar13[-1];" (assignment_expression "*pcVar16 = pcVar13[-1]" (pointer_expression "*pcVar16" * identifier) = (subscript_expression "pcVar13[-1]" identifier [ number_literal ])) ;) (if_statement "if (pcVar23 + iVar9 == pcVar13) break;" if (parenthesized_expression "(pcVar23 + iVar9 == pcVar13)" ( (binary_expression "pcVar23 + iVar9 == pcVar13" (binary_expression "pcVar23 + iVar9" identifier + identifier) == identifier) )) (break_statement "break;" break ;)) (expression_statement "pcVar13 = pcVar13 + 1;" (assignment_expression "pcVar13 = pcVar13 + 1" identifier = (binary_expression "pcVar13 + 1" identifier + number_literal)) ;) (expression_statement "pcVar16 = pcVar16 + 1;" (assignment_expression "pcVar16 = pcVar16 + 1" identifier = (binary_expression "pcVar16 + 1" identifier + number_literal)) ;) })) (expression_statement "cVar19 = *pcVar13;" (assignment_expression "cVar19 = *pcVar13" identifier = (pointer_expression "*pcVar13" * identifier)) ;) (expression_statement "puVar22 = puVar22 + iVar9;" (assignment_expression "puVar22 = puVar22 + iVar9" identifier = (binary_expression "puVar22 + iVar9" identifier + identifier)) ;) (expression_statement "pcVar23 = pcVar13;" (assignment_expression "pcVar23 = pcVar13" identifier = identifier) ;) (expression_statement "param_2 = param_2 + local_30;" (assignment_expression "param_2 = param_2 + local_30" identifier = (binary_expression "param_2 + local_30" identifier + identifier)) ;) }))) }) (else_clause "else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }" else (compound_statement "{\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }" { (expression_statement "*pcVar16 = '^';" (assignment_expression "*pcVar16 = '^'" (pointer_expression "*pcVar16" * identifier) = (char_literal "'^'" ' character ')) ;) (expression_statement "uVar15 = (*(code *)puVar7)(pcVar23,param_4);" (assignment_expression "uVar15 = (*(code *)puVar7)(pcVar23,param_4)" identifier = (call_expression "(*(code *)puVar7)(pcVar23,param_4)" (parenthesized_expression "(*(code *)puVar7)" ( (pointer_expression "*(code *)puVar7" * (cast_expression "(code *)puVar7" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar23,param_4)" ( identifier , identifier )))) ;) (expression_statement "pcVar23 = pcVar23 + iVar9;" (assignment_expression "pcVar23 = pcVar23 + iVar9" identifier = (binary_expression "pcVar23 + iVar9" identifier + identifier)) ;) (expression_statement "puVar11[(int)(puVar22 + 1)] = uVar15;" (assignment_expression "puVar11[(int)(puVar22 + 1)] = uVar15" (subscript_expression "puVar11[(int)(puVar22 + 1)]" identifier [ (cast_expression "(int)(puVar22 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar22 + 1)" ( (binary_expression "puVar22 + 1" identifier + number_literal) ))) ]) = identifier) ;) (expression_statement "cVar19 = *pcVar23;" (assignment_expression "cVar19 = *pcVar23" identifier = (pointer_expression "*pcVar23" * identifier)) ;) (expression_statement "puVar22 = puVar22 + 2;" (assignment_expression "puVar22 = puVar22 + 2" identifier = (binary_expression "puVar22 + 2" identifier + number_literal)) ;) (expression_statement "param_2 = param_2 + 2;" (assignment_expression "param_2 = param_2 + 2" identifier = (binary_expression "param_2 + 2" identifier + number_literal)) ;) }))) }))) }) (else_clause "else {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }\n        cVar19 = *pcVar23;\n        if (cVar19 != ' ') goto LAB_00044eac;\nLAB_00044fc8:\n        local_30 = 1;\n        if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }\n        param_2 = param_2 + 1;\n        pcVar23 = pcVar23 + 1;\n        cVar19 = *pcVar23;\n        puVar22 = puVar21;\n      }" else (compound_statement "{\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }\n        cVar19 = *pcVar23;\n        if (cVar19 != ' ') goto LAB_00044eac;\nLAB_00044fc8:\n        local_30 = 1;\n        if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }\n        param_2 = param_2 + 1;\n        pcVar23 = pcVar23 + 1;\n        cVar19 = *pcVar23;\n        puVar22 = puVar21;\n      }" { (expression_statement "iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);" (assignment_expression "iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23)" identifier = (call_expression "(*(code *)PTR_mbwidth_00077df0)(pcVar23)" (parenthesized_expression "(*(code *)PTR_mbwidth_00077df0)" ( (pointer_expression "*(code *)PTR_mbwidth_00077df0" * (cast_expression "(code *)PTR_mbwidth_00077df0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar23)" ( identifier )))) ;) (if_statement "if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }" { (if_statement "if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }" if (parenthesized_expression "((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0))))))" ( (binary_expression "(*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))" (parenthesized_expression "(*pcVar23 != '\0')" ( (binary_expression "*pcVar23 != '\0'" (pointer_expression "*pcVar23" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))" ( (parenthesized_expression "(uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0))))" ( (comma_expression "uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))" (assignment_expression "uVar24 = (uint)(uVar24 < param_2)" identifier = (call_expression "(uint)(uVar24 < param_2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar24 < param_2)" ( (binary_expression "uVar24 < param_2" identifier < identifier) )))) , (binary_expression "uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))" (binary_expression "uVar24 != 0" identifier != number_literal) || (parenthesized_expression "((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))" ( (parenthesized_expression "(param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0))" ( (binary_expression "param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)" (binary_expression "param_4 != 0" identifier != number_literal) && (parenthesized_expression "((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)" ( (binary_expression "(*(uint *)(PTR_flags_0007759c + 4) & 2) == 0" (parenthesized_expression "(*(uint *)(PTR_flags_0007759c + 4) & 2)" ( (binary_expression "*(uint *)(PTR_flags_0007759c + 4) & 2" (pointer_expression "*(uint *)(PTR_flags_0007759c + 4)" * (cast_expression "(uint *)(PTR_flags_0007759c + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_flags_0007759c + 4)" ( (binary_expression "PTR_flags_0007759c + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) )))) )) ))) )) (compound_statement "{\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }" { (expression_statement "pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);" (assignment_expression "pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22)" identifier = (cast_expression "(char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22)" (parenthesized_expression "(*(code *)PTR_move_mbleft_00077c18)" ( (pointer_expression "*(code *)PTR_move_mbleft_00077c18" * (cast_expression "(code *)PTR_move_mbleft_00077c18" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar11,puVar22)" ( identifier , identifier ))))) ;) (expression_statement "puVar22 = puVar11 + (int)pcVar23;" (assignment_expression "puVar22 = puVar11 + (int)pcVar23" identifier = (binary_expression "puVar11 + (int)pcVar23" identifier + (cast_expression "(int)pcVar23" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);" (assignment_expression "iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22)" identifier = (call_expression "(*(code *)PTR_mbwidth_00077df0)(puVar22)" (parenthesized_expression "(*(code *)PTR_mbwidth_00077df0)" ( (pointer_expression "*(code *)PTR_mbwidth_00077df0" * (cast_expression "(code *)PTR_mbwidth_00077df0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar22)" ( identifier )))) ;) (if_statement "if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }" if (parenthesized_expression "(iVar9 == 2)" ( (binary_expression "iVar9 == 2" identifier == number_literal) )) (compound_statement "{\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }" { (expression_statement "pcVar23 = pcVar23 + 1;" (assignment_expression "pcVar23 = pcVar23 + 1" identifier = (binary_expression "pcVar23 + 1" identifier + number_literal)) ;) (expression_statement "*puVar22 = 0x3e;" (assignment_expression "*puVar22 = 0x3e" (pointer_expression "*puVar22" * identifier) = number_literal) ;) (expression_statement "puVar22 = puVar11 + (int)pcVar23;" (assignment_expression "puVar22 = puVar11 + (int)pcVar23" identifier = (binary_expression "puVar11 + (int)pcVar23" identifier + (cast_expression "(int)pcVar23" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) (goto_statement "goto LAB_00044f40;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "cVar19 = *pcVar23;" (assignment_expression "cVar19 = *pcVar23" identifier = (pointer_expression "*pcVar23" * identifier)) ;) (if_statement "if (cVar19 != ' ') goto LAB_00044eac;" if (parenthesized_expression "(cVar19 != ' ')" ( (binary_expression "cVar19 != ' '" identifier != (char_literal "' '" ' character ')) )) (goto_statement "goto LAB_00044eac;" goto statement_identifier ;)) (labeled_statement "LAB_00044fc8:\n        local_30 = 1;" statement_identifier : (expression_statement "local_30 = 1;" (assignment_expression "local_30 = 1" identifier = number_literal) ;)) (if_statement "if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }" if (parenthesized_expression "(*(int *)puVar3 << 6 < 0)" ( (binary_expression "*(int *)puVar3 << 6 < 0" (binary_expression "*(int *)puVar3 << 6" (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal) < number_literal) )) (compound_statement "{\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }" { (expression_statement "iVar9 = *(int *)puVar6;" (assignment_expression "iVar9 = *(int *)puVar6" identifier = (pointer_expression "*(int *)puVar6" * (cast_expression "(int *)puVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar21 = puVar22;" (assignment_expression "puVar21 = puVar22" identifier = identifier) ;) (if_statement "if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }" if (parenthesized_expression "(0 < *(int *)(puVar6 + 4))" ( (binary_expression "0 < *(int *)(puVar6 + 4)" number_literal < (pointer_expression "*(int *)(puVar6 + 4)" * (cast_expression "(int *)(puVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 4)" ( (binary_expression "puVar6 + 4" identifier + number_literal) ))))) )) (compound_statement "{\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }" { (expression_statement "iVar12 = iVar9;" (assignment_expression "iVar12 = iVar9" identifier = identifier) ;) (do_statement "do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));" do (compound_statement "{\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            }" { (expression_statement "iVar1 = iVar12 - iVar9;" (assignment_expression "iVar1 = iVar12 - iVar9" identifier = (binary_expression "iVar12 - iVar9" identifier - identifier)) ;) (expression_statement "iVar2 = iVar12 + (1 - iVar9);" (assignment_expression "iVar2 = iVar12 + (1 - iVar9)" identifier = (binary_expression "iVar12 + (1 - iVar9)" identifier + (parenthesized_expression "(1 - iVar9)" ( (binary_expression "1 - iVar9" number_literal - identifier) )))) ;) (expression_statement "puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);" (assignment_expression "puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12)" identifier = (cast_expression "(undefined1 *)(*(int *)puVar5 + iVar12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar5 + iVar12)" ( (binary_expression "*(int *)puVar5 + iVar12" (pointer_expression "*(int *)puVar5" * (cast_expression "(int *)puVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + identifier) )))) ;) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar11[(int)(puVar22 + iVar1)] = *puVar21;" (assignment_expression "puVar11[(int)(puVar22 + iVar1)] = *puVar21" (subscript_expression "puVar11[(int)(puVar22 + iVar1)]" identifier [ (cast_expression "(int)(puVar22 + iVar1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar22 + iVar1)" ( (binary_expression "puVar22 + iVar1" identifier + identifier) ))) ]) = (pointer_expression "*puVar21" * identifier)) ;) (expression_statement "puVar21 = puVar22 + iVar2;" (assignment_expression "puVar21 = puVar22 + iVar2" identifier = (binary_expression "puVar22 + iVar2" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4))" ( (binary_expression "iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4)" identifier < (binary_expression "*(int *)puVar6 + *(int *)(puVar6 + 4)" (pointer_expression "*(int *)puVar6" * (cast_expression "(int *)puVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + (pointer_expression "*(int *)(puVar6 + 4)" * (cast_expression "(int *)(puVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 4)" ( (binary_expression "puVar6 + 4" identifier + number_literal) )))))) )) ;) })) }) (else_clause "else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }" else (compound_statement "{\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }" { (expression_statement "puVar11[(int)puVar22] = cVar19;" (assignment_expression "puVar11[(int)puVar22] = cVar19" (subscript_expression "puVar11[(int)puVar22]" identifier [ (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) ]) = identifier) ;) (expression_statement "puVar21 = puVar22 + 1;" (assignment_expression "puVar21 = puVar22 + 1" identifier = (binary_expression "puVar22 + 1" identifier + number_literal)) ;) }))) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "pcVar23 = pcVar23 + 1;" (assignment_expression "pcVar23 = pcVar23 + 1" identifier = (binary_expression "pcVar23 + 1" identifier + number_literal)) ;) (expression_statement "cVar19 = *pcVar23;" (assignment_expression "cVar19 = *pcVar23" identifier = (pointer_expression "*pcVar23" * identifier)) ;) (expression_statement "puVar22 = puVar21;" (assignment_expression "puVar22 = puVar21" identifier = identifier) ;) }))) })) (labeled_statement "LAB_00044f3c:\n    puVar22 = puVar11 + (int)puVar22;" statement_identifier : (expression_statement "puVar22 = puVar11 + (int)puVar22;" (assignment_expression "puVar22 = puVar11 + (int)puVar22" identifier = (binary_expression "puVar11 + (int)puVar22" identifier + (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (labeled_statement "LAB_00044f40:\n    *puVar22 = 0;" statement_identifier : (expression_statement "*puVar22 = 0;" (assignment_expression "*puVar22 = 0" (pointer_expression "*puVar22" * identifier) = number_literal) ;)) (if_statement "if (local_2c == *(int *)puVar8) {\n      return puVar11;\n    }" if (parenthesized_expression "(local_2c == *(int *)puVar8)" ( (binary_expression "local_2c == *(int *)puVar8" identifier == (pointer_expression "*(int *)puVar8" * (cast_expression "(int *)puVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return puVar11;\n    }" { (return_statement "return puVar11;" return identifier ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_000780c0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000780c0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000780c0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000780c0" * (cast_expression "(code *)PTR___stack_chk_fail_000780c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_0004536c:\n    iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);" statement_identifier : (expression_statement "iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);" (assignment_expression "iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23)" identifier = (call_expression "(*(code *)PTR_mbwidth_00077df0)(pcVar23)" (parenthesized_expression "(*(code *)PTR_mbwidth_00077df0)" ( (pointer_expression "*(code *)PTR_mbwidth_00077df0" * (cast_expression "(code *)PTR_mbwidth_00077df0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar23)" ( identifier )))) ;)) (if_statement "if (iVar9 == 2) {\n      if (param_2 == uVar10) {\n        param_2 = param_2 + 1;\n        *puVar11 = 0x20;\n        puVar22 = (undefined1 *)0x2;\n        puVar21 = puVar11 + 1;\n      }\n      else {\n        puVar22 = (undefined1 *)0x1;\n        puVar21 = puVar11;\n      }\nLAB_000452ec:\n      puVar3 = PTR_parse_mbchar_00077718;\n      *puVar21 = 0x3c;\n      iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n      param_2 = param_2 + 1;\n      pcVar23 = pcVar23 + iVar9;\n      cVar19 = *pcVar23;\n    }\n    else {\nLAB_0004529c:\n      cVar19 = *pcVar23;\n    }" if (parenthesized_expression "(iVar9 == 2)" ( (binary_expression "iVar9 == 2" identifier == number_literal) )) (compound_statement "{\n      if (param_2 == uVar10) {\n        param_2 = param_2 + 1;\n        *puVar11 = 0x20;\n        puVar22 = (undefined1 *)0x2;\n        puVar21 = puVar11 + 1;\n      }\n      else {\n        puVar22 = (undefined1 *)0x1;\n        puVar21 = puVar11;\n      }\nLAB_000452ec:\n      puVar3 = PTR_parse_mbchar_00077718;\n      *puVar21 = 0x3c;\n      iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n      param_2 = param_2 + 1;\n      pcVar23 = pcVar23 + iVar9;\n      cVar19 = *pcVar23;\n    }" { (if_statement "if (param_2 == uVar10) {\n        param_2 = param_2 + 1;\n        *puVar11 = 0x20;\n        puVar22 = (undefined1 *)0x2;\n        puVar21 = puVar11 + 1;\n      }\n      else {\n        puVar22 = (undefined1 *)0x1;\n        puVar21 = puVar11;\n      }" if (parenthesized_expression "(param_2 == uVar10)" ( (binary_expression "param_2 == uVar10" identifier == identifier) )) (compound_statement "{\n        param_2 = param_2 + 1;\n        *puVar11 = 0x20;\n        puVar22 = (undefined1 *)0x2;\n        puVar21 = puVar11 + 1;\n      }" { (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "*puVar11 = 0x20;" (assignment_expression "*puVar11 = 0x20" (pointer_expression "*puVar11" * identifier) = number_literal) ;) (expression_statement "puVar22 = (undefined1 *)0x2;" (assignment_expression "puVar22 = (undefined1 *)0x2" identifier = (cast_expression "(undefined1 *)0x2" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar21 = puVar11 + 1;" (assignment_expression "puVar21 = puVar11 + 1" identifier = (binary_expression "puVar11 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n        puVar22 = (undefined1 *)0x1;\n        puVar21 = puVar11;\n      }" else (compound_statement "{\n        puVar22 = (undefined1 *)0x1;\n        puVar21 = puVar11;\n      }" { (expression_statement "puVar22 = (undefined1 *)0x1;" (assignment_expression "puVar22 = (undefined1 *)0x1" identifier = (cast_expression "(undefined1 *)0x1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar21 = puVar11;" (assignment_expression "puVar21 = puVar11" identifier = identifier) ;) }))) (labeled_statement "LAB_000452ec:\n      puVar3 = PTR_parse_mbchar_00077718;" statement_identifier : (expression_statement "puVar3 = PTR_parse_mbchar_00077718;" (assignment_expression "puVar3 = PTR_parse_mbchar_00077718" identifier = identifier) ;)) (expression_statement "*puVar21 = 0x3c;" (assignment_expression "*puVar21 = 0x3c" (pointer_expression "*puVar21" * identifier) = number_literal) ;) (expression_statement "iVar9 = (*(code *)puVar3)(pcVar23,0,0);" (assignment_expression "iVar9 = (*(code *)puVar3)(pcVar23,0,0)" identifier = (call_expression "(*(code *)puVar3)(pcVar23,0,0)" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar23,0,0)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "pcVar23 = pcVar23 + iVar9;" (assignment_expression "pcVar23 = pcVar23 + iVar9" identifier = (binary_expression "pcVar23 + iVar9" identifier + identifier)) ;) (expression_statement "cVar19 = *pcVar23;" (assignment_expression "cVar19 = *pcVar23" identifier = (pointer_expression "*pcVar23" * identifier)) ;) }) (else_clause "else {\nLAB_0004529c:\n      cVar19 = *pcVar23;\n    }" else (compound_statement "{\nLAB_0004529c:\n      cVar19 = *pcVar23;\n    }" { (labeled_statement "LAB_0004529c:\n      cVar19 = *pcVar23;" statement_identifier : (expression_statement "cVar19 = *pcVar23;" (assignment_expression "cVar19 = *pcVar23" identifier = (pointer_expression "*pcVar23" * identifier)) ;)) }))) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )) * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_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 , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) << LIT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT % (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) = (pointer_expression * IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) = LIT) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT % IDENT) != LIT) )) && (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT % (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) != LIT) )) && (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) == IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) , (binary_expression (binary_expression IDENT != LIT) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) ))) )) )))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) (goto_statement goto statement_identifier ;) })) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) << LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) }))) }) while (parenthesized_expression ( BOOL )) ;)) })))
(function_definition "undefined1 * display_string(int param_1,uint param_2,int param_3,int param_4)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  int iVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  int iVar12;\n  char *pcVar13;\n  undefined1 uVar15;\n  uint uVar14;\n  char cVar19;\n  char *pcVar16;\n  uint uVar17;\n  undefined1 *puVar18;\n  undefined1 *puVar20;\n  undefined1 *puVar21;\n  undefined1 *puVar22;\n  char *pcVar23;\n  uint uVar24;\n  int local_30;\n  int local_2c;\n  \n  puVar8 = PTR___stack_chk_guard_000780f8;\n  puVar4 = PTR_tabsize_000777bc;\n  uVar24 = param_2 + param_3;\n  local_2c = *(int *)PTR___stack_chk_guard_000780f8;\n  iVar9 = actual_x();\n  pcVar23 = (char *)(param_1 + iVar9);\n  uVar10 = strnlenpt(param_1,iVar9);\n  iVar9 = (*(code *)PTR_strlen_00077ff8)(pcVar23);\n  puVar11 = (undefined1 *)nmalloc((*(int *)puVar4 + 6) * iVar9 + 1);\n  cVar19 = *pcVar23;\n  if (cVar19 == '\0') {\n    puVar22 = (undefined1 *)0x0;\n    goto LAB_00044f3c;\n  }\n  if (cVar19 != '\t') {\n    if (uVar10 < param_2) {\n      iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n      if (iVar9 == 0) {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 == 2) {\n          puVar22 = (undefined1 *)0x1;\n          puVar21 = puVar11;\n          goto LAB_000452ec;\n        }\n        cVar19 = *pcVar23;\n        puVar22 = (undefined1 *)0x0;\n      }\n      else {\n        param_2 = param_2 + 1;\n        puVar22 = (undefined1 *)0x1;\n        uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);\n        puVar3 = PTR_parse_mbchar_00077718;\n        *puVar11 = uVar15;\n        iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n        pcVar23 = pcVar23 + iVar9;\n        cVar19 = *pcVar23;\n      }\n      goto LAB_00044e7c;\n    }\n    if (uVar10 != 0) {\n      puVar22 = (undefined1 *)0x0;\n      if (param_4 == 0) goto LAB_00044e7c;\n      if ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0) {\n        iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n        puVar22 = (undefined1 *)0x0;\n        if (iVar9 == 0) goto LAB_0004536c;\n        goto LAB_0004529c;\n      }\n    }\n  }\n  puVar22 = (undefined1 *)0x0;\nLAB_00044e7c:\n  do {\n    puVar6 = PTR_whitespace_len_000778d4;\n    puVar5 = PTR_whitespace_000777fc;\n    puVar3 = PTR_flags_0007759c;\n    while (cVar19 != '\0') {\n      if (param_2 < uVar24) {\n        if (cVar19 == ' ') goto LAB_00044fc8;\nLAB_00044eac:\n        local_30 = 1;\n        if (cVar19 == '\t') {\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }\n        else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }\n        cVar19 = *pcVar23;\n        if (cVar19 != ' ') goto LAB_00044eac;\nLAB_00044fc8:\n        local_30 = 1;\n        if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }\n        param_2 = param_2 + 1;\n        pcVar23 = pcVar23 + 1;\n        cVar19 = *pcVar23;\n        puVar22 = puVar21;\n      }\n    }\nLAB_00044f3c:\n    puVar22 = puVar11 + (int)puVar22;\nLAB_00044f40:\n    *puVar22 = 0;\n    if (local_2c == *(int *)puVar8) {\n      return puVar11;\n    }\n    (*(code *)PTR___stack_chk_fail_000780c0)();\nLAB_0004536c:\n    iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n    if (iVar9 == 2) {\n      if (param_2 == uVar10) {\n        param_2 = param_2 + 1;\n        *puVar11 = 0x20;\n        puVar22 = (undefined1 *)0x2;\n        puVar21 = puVar11 + 1;\n      }\n      else {\n        puVar22 = (undefined1 *)0x1;\n        puVar21 = puVar11;\n      }\nLAB_000452ec:\n      puVar3 = PTR_parse_mbchar_00077718;\n      *puVar21 = 0x3c;\n      iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n      param_2 = param_2 + 1;\n      pcVar23 = pcVar23 + iVar9;\n      cVar19 = *pcVar23;\n    }\n    else {\nLAB_0004529c:\n      cVar19 = *pcVar23;\n    }\n  } while( true );\n}" (type_identifier "undefined1") (pointer_declarator "* display_string(int param_1,uint param_2,int param_3,int param_4)" (* "*") (function_declarator "display_string(int param_1,uint param_2,int param_3,int param_4)" (identifier "display_string") (parameter_list "(int param_1,uint param_2,int param_3,int param_4)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) () ")")))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  int iVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  int iVar12;\n  char *pcVar13;\n  undefined1 uVar15;\n  uint uVar14;\n  char cVar19;\n  char *pcVar16;\n  uint uVar17;\n  undefined1 *puVar18;\n  undefined1 *puVar20;\n  undefined1 *puVar21;\n  undefined1 *puVar22;\n  char *pcVar23;\n  uint uVar24;\n  int local_30;\n  int local_2c;\n  \n  puVar8 = PTR___stack_chk_guard_000780f8;\n  puVar4 = PTR_tabsize_000777bc;\n  uVar24 = param_2 + param_3;\n  local_2c = *(int *)PTR___stack_chk_guard_000780f8;\n  iVar9 = actual_x();\n  pcVar23 = (char *)(param_1 + iVar9);\n  uVar10 = strnlenpt(param_1,iVar9);\n  iVar9 = (*(code *)PTR_strlen_00077ff8)(pcVar23);\n  puVar11 = (undefined1 *)nmalloc((*(int *)puVar4 + 6) * iVar9 + 1);\n  cVar19 = *pcVar23;\n  if (cVar19 == '\0') {\n    puVar22 = (undefined1 *)0x0;\n    goto LAB_00044f3c;\n  }\n  if (cVar19 != '\t') {\n    if (uVar10 < param_2) {\n      iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n      if (iVar9 == 0) {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 == 2) {\n          puVar22 = (undefined1 *)0x1;\n          puVar21 = puVar11;\n          goto LAB_000452ec;\n        }\n        cVar19 = *pcVar23;\n        puVar22 = (undefined1 *)0x0;\n      }\n      else {\n        param_2 = param_2 + 1;\n        puVar22 = (undefined1 *)0x1;\n        uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);\n        puVar3 = PTR_parse_mbchar_00077718;\n        *puVar11 = uVar15;\n        iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n        pcVar23 = pcVar23 + iVar9;\n        cVar19 = *pcVar23;\n      }\n      goto LAB_00044e7c;\n    }\n    if (uVar10 != 0) {\n      puVar22 = (undefined1 *)0x0;\n      if (param_4 == 0) goto LAB_00044e7c;\n      if ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0) {\n        iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n        puVar22 = (undefined1 *)0x0;\n        if (iVar9 == 0) goto LAB_0004536c;\n        goto LAB_0004529c;\n      }\n    }\n  }\n  puVar22 = (undefined1 *)0x0;\nLAB_00044e7c:\n  do {\n    puVar6 = PTR_whitespace_len_000778d4;\n    puVar5 = PTR_whitespace_000777fc;\n    puVar3 = PTR_flags_0007759c;\n    while (cVar19 != '\0') {\n      if (param_2 < uVar24) {\n        if (cVar19 == ' ') goto LAB_00044fc8;\nLAB_00044eac:\n        local_30 = 1;\n        if (cVar19 == '\t') {\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }\n        else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }\n        cVar19 = *pcVar23;\n        if (cVar19 != ' ') goto LAB_00044eac;\nLAB_00044fc8:\n        local_30 = 1;\n        if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }\n        param_2 = param_2 + 1;\n        pcVar23 = pcVar23 + 1;\n        cVar19 = *pcVar23;\n        puVar22 = puVar21;\n      }\n    }\nLAB_00044f3c:\n    puVar22 = puVar11 + (int)puVar22;\nLAB_00044f40:\n    *puVar22 = 0;\n    if (local_2c == *(int *)puVar8) {\n      return puVar11;\n    }\n    (*(code *)PTR___stack_chk_fail_000780c0)();\nLAB_0004536c:\n    iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n    if (iVar9 == 2) {\n      if (param_2 == uVar10) {\n        param_2 = param_2 + 1;\n        *puVar11 = 0x20;\n        puVar22 = (undefined1 *)0x2;\n        puVar21 = puVar11 + 1;\n      }\n      else {\n        puVar22 = (undefined1 *)0x1;\n        puVar21 = puVar11;\n      }\nLAB_000452ec:\n      puVar3 = PTR_parse_mbchar_00077718;\n      *puVar21 = 0x3c;\n      iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n      param_2 = param_2 + 1;\n      pcVar23 = pcVar23 + iVar9;\n      cVar19 = *pcVar23;\n    }\n    else {\nLAB_0004529c:\n      cVar19 = *pcVar23;\n    }\n  } while( true );\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined *puVar5;" (type_identifier "undefined") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined *puVar6;" (type_identifier "undefined") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "undefined *puVar7;" (type_identifier "undefined") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined *puVar8;" (type_identifier "undefined") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "undefined1 *puVar11;" (type_identifier "undefined1") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "char *pcVar13;" (primitive_type "char") (pointer_declarator "*pcVar13" (* "*") (identifier "pcVar13")) (; ";")) (declaration "undefined1 uVar15;" (type_identifier "undefined1") (identifier "uVar15") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "char cVar19;" (primitive_type "char") (identifier "cVar19") (; ";")) (declaration "char *pcVar16;" (primitive_type "char") (pointer_declarator "*pcVar16" (* "*") (identifier "pcVar16")) (; ";")) (declaration "uint uVar17;" (type_identifier "uint") (identifier "uVar17") (; ";")) (declaration "undefined1 *puVar18;" (type_identifier "undefined1") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "undefined1 *puVar20;" (type_identifier "undefined1") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "undefined1 *puVar21;" (type_identifier "undefined1") (pointer_declarator "*puVar21" (* "*") (identifier "puVar21")) (; ";")) (declaration "undefined1 *puVar22;" (type_identifier "undefined1") (pointer_declarator "*puVar22" (* "*") (identifier "puVar22")) (; ";")) (declaration "char *pcVar23;" (primitive_type "char") (pointer_declarator "*pcVar23" (* "*") (identifier "pcVar23")) (; ";")) (declaration "uint uVar24;" (type_identifier "uint") (identifier "uVar24") (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar8 = PTR___stack_chk_guard_000780f8;" (assignment_expression "puVar8 = PTR___stack_chk_guard_000780f8" (identifier "puVar8") (= "=") (identifier "PTR___stack_chk_guard_000780f8")) (; ";")) (expression_statement "puVar4 = PTR_tabsize_000777bc;" (assignment_expression "puVar4 = PTR_tabsize_000777bc" (identifier "puVar4") (= "=") (identifier "PTR_tabsize_000777bc")) (; ";")) (expression_statement "uVar24 = param_2 + param_3;" (assignment_expression "uVar24 = param_2 + param_3" (identifier "uVar24") (= "=") (binary_expression "param_2 + param_3" (identifier "param_2") (+ "+") (identifier "param_3"))) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000780f8;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000780f8" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000780f8" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000780f8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000780f8")))) (; ";")) (expression_statement "iVar9 = actual_x();" (assignment_expression "iVar9 = actual_x()" (identifier "iVar9") (= "=") (call_expression "actual_x()" (identifier "actual_x") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pcVar23 = (char *)(param_1 + iVar9);" (assignment_expression "pcVar23 = (char *)(param_1 + iVar9)" (identifier "pcVar23") (= "=") (cast_expression "(char *)(param_1 + iVar9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + iVar9)" (( "(") (binary_expression "param_1 + iVar9" (identifier "param_1") (+ "+") (identifier "iVar9")) () ")")))) (; ";")) (expression_statement "uVar10 = strnlenpt(param_1,iVar9);" (assignment_expression "uVar10 = strnlenpt(param_1,iVar9)" (identifier "uVar10") (= "=") (call_expression "strnlenpt(param_1,iVar9)" (identifier "strnlenpt") (argument_list "(param_1,iVar9)" (( "(") (identifier "param_1") (, ",") (identifier "iVar9") () ")")))) (; ";")) (expression_statement "iVar9 = (*(code *)PTR_strlen_00077ff8)(pcVar23);" (assignment_expression "iVar9 = (*(code *)PTR_strlen_00077ff8)(pcVar23)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_strlen_00077ff8)(pcVar23)" (parenthesized_expression "(*(code *)PTR_strlen_00077ff8)" (( "(") (pointer_expression "*(code *)PTR_strlen_00077ff8" (* "*") (cast_expression "(code *)PTR_strlen_00077ff8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_00077ff8"))) () ")")) (argument_list "(pcVar23)" (( "(") (identifier "pcVar23") () ")")))) (; ";")) (expression_statement "puVar11 = (undefined1 *)nmalloc((*(int *)puVar4 + 6) * iVar9 + 1);" (assignment_expression "puVar11 = (undefined1 *)nmalloc((*(int *)puVar4 + 6) * iVar9 + 1)" (identifier "puVar11") (= "=") (cast_expression "(undefined1 *)nmalloc((*(int *)puVar4 + 6) * iVar9 + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "nmalloc((*(int *)puVar4 + 6) * iVar9 + 1)" (identifier "nmalloc") (argument_list "((*(int *)puVar4 + 6) * iVar9 + 1)" (( "(") (binary_expression "(*(int *)puVar4 + 6) * iVar9 + 1" (binary_expression "(*(int *)puVar4 + 6) * iVar9" (parenthesized_expression "(*(int *)puVar4 + 6)" (( "(") (binary_expression "*(int *)puVar4 + 6" (pointer_expression "*(int *)puVar4" (* "*") (cast_expression "(int *)puVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) (+ "+") (number_literal "6")) () ")")) (* "*") (identifier "iVar9")) (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "cVar19 = *pcVar23;" (assignment_expression "cVar19 = *pcVar23" (identifier "cVar19") (= "=") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23"))) (; ";")) (if_statement "if (cVar19 == '\0') {\n    puVar22 = (undefined1 *)0x0;\n    goto LAB_00044f3c;\n  }" (if "if") (parenthesized_expression "(cVar19 == '\0')" (( "(") (binary_expression "cVar19 == '\0'" (identifier "cVar19") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    puVar22 = (undefined1 *)0x0;\n    goto LAB_00044f3c;\n  }" ({ "{") (expression_statement "puVar22 = (undefined1 *)0x0;" (assignment_expression "puVar22 = (undefined1 *)0x0" (identifier "puVar22") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_00044f3c;" (goto "goto") (statement_identifier "LAB_00044f3c") (; ";")) (} "}"))) (if_statement "if (cVar19 != '\t') {\n    if (uVar10 < param_2) {\n      iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n      if (iVar9 == 0) {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 == 2) {\n          puVar22 = (undefined1 *)0x1;\n          puVar21 = puVar11;\n          goto LAB_000452ec;\n        }\n        cVar19 = *pcVar23;\n        puVar22 = (undefined1 *)0x0;\n      }\n      else {\n        param_2 = param_2 + 1;\n        puVar22 = (undefined1 *)0x1;\n        uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);\n        puVar3 = PTR_parse_mbchar_00077718;\n        *puVar11 = uVar15;\n        iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n        pcVar23 = pcVar23 + iVar9;\n        cVar19 = *pcVar23;\n      }\n      goto LAB_00044e7c;\n    }\n    if (uVar10 != 0) {\n      puVar22 = (undefined1 *)0x0;\n      if (param_4 == 0) goto LAB_00044e7c;\n      if ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0) {\n        iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n        puVar22 = (undefined1 *)0x0;\n        if (iVar9 == 0) goto LAB_0004536c;\n        goto LAB_0004529c;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(cVar19 != '\t')" (( "(") (binary_expression "cVar19 != '\t'" (identifier "cVar19") (!= "!=") (char_literal "'\t'" (' "'") (escape_sequence "\t") (' "'"))) () ")")) (compound_statement "{\n    if (uVar10 < param_2) {\n      iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n      if (iVar9 == 0) {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 == 2) {\n          puVar22 = (undefined1 *)0x1;\n          puVar21 = puVar11;\n          goto LAB_000452ec;\n        }\n        cVar19 = *pcVar23;\n        puVar22 = (undefined1 *)0x0;\n      }\n      else {\n        param_2 = param_2 + 1;\n        puVar22 = (undefined1 *)0x1;\n        uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);\n        puVar3 = PTR_parse_mbchar_00077718;\n        *puVar11 = uVar15;\n        iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n        pcVar23 = pcVar23 + iVar9;\n        cVar19 = *pcVar23;\n      }\n      goto LAB_00044e7c;\n    }\n    if (uVar10 != 0) {\n      puVar22 = (undefined1 *)0x0;\n      if (param_4 == 0) goto LAB_00044e7c;\n      if ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0) {\n        iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n        puVar22 = (undefined1 *)0x0;\n        if (iVar9 == 0) goto LAB_0004536c;\n        goto LAB_0004529c;\n      }\n    }\n  }" ({ "{") (if_statement "if (uVar10 < param_2) {\n      iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n      if (iVar9 == 0) {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 == 2) {\n          puVar22 = (undefined1 *)0x1;\n          puVar21 = puVar11;\n          goto LAB_000452ec;\n        }\n        cVar19 = *pcVar23;\n        puVar22 = (undefined1 *)0x0;\n      }\n      else {\n        param_2 = param_2 + 1;\n        puVar22 = (undefined1 *)0x1;\n        uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);\n        puVar3 = PTR_parse_mbchar_00077718;\n        *puVar11 = uVar15;\n        iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n        pcVar23 = pcVar23 + iVar9;\n        cVar19 = *pcVar23;\n      }\n      goto LAB_00044e7c;\n    }" (if "if") (parenthesized_expression "(uVar10 < param_2)" (( "(") (binary_expression "uVar10 < param_2" (identifier "uVar10") (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n      iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n      if (iVar9 == 0) {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 == 2) {\n          puVar22 = (undefined1 *)0x1;\n          puVar21 = puVar11;\n          goto LAB_000452ec;\n        }\n        cVar19 = *pcVar23;\n        puVar22 = (undefined1 *)0x0;\n      }\n      else {\n        param_2 = param_2 + 1;\n        puVar22 = (undefined1 *)0x1;\n        uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);\n        puVar3 = PTR_parse_mbchar_00077718;\n        *puVar11 = uVar15;\n        iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n        pcVar23 = pcVar23 + iVar9;\n        cVar19 = *pcVar23;\n      }\n      goto LAB_00044e7c;\n    }" ({ "{") (expression_statement "iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);" (assignment_expression "iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23)" (parenthesized_expression "(*(code *)PTR_is_cntrl_mbchar_0007797c)" (( "(") (pointer_expression "*(code *)PTR_is_cntrl_mbchar_0007797c" (* "*") (cast_expression "(code *)PTR_is_cntrl_mbchar_0007797c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_is_cntrl_mbchar_0007797c"))) () ")")) (argument_list "(pcVar23)" (( "(") (identifier "pcVar23") () ")")))) (; ";")) (if_statement "if (iVar9 == 0) {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 == 2) {\n          puVar22 = (undefined1 *)0x1;\n          puVar21 = puVar11;\n          goto LAB_000452ec;\n        }\n        cVar19 = *pcVar23;\n        puVar22 = (undefined1 *)0x0;\n      }\n      else {\n        param_2 = param_2 + 1;\n        puVar22 = (undefined1 *)0x1;\n        uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);\n        puVar3 = PTR_parse_mbchar_00077718;\n        *puVar11 = uVar15;\n        iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n        pcVar23 = pcVar23 + iVar9;\n        cVar19 = *pcVar23;\n      }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 == 2) {\n          puVar22 = (undefined1 *)0x1;\n          puVar21 = puVar11;\n          goto LAB_000452ec;\n        }\n        cVar19 = *pcVar23;\n        puVar22 = (undefined1 *)0x0;\n      }" ({ "{") (expression_statement "iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);" (assignment_expression "iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_mbwidth_00077df0)(pcVar23)" (parenthesized_expression "(*(code *)PTR_mbwidth_00077df0)" (( "(") (pointer_expression "*(code *)PTR_mbwidth_00077df0" (* "*") (cast_expression "(code *)PTR_mbwidth_00077df0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbwidth_00077df0"))) () ")")) (argument_list "(pcVar23)" (( "(") (identifier "pcVar23") () ")")))) (; ";")) (if_statement "if (iVar9 == 2) {\n          puVar22 = (undefined1 *)0x1;\n          puVar21 = puVar11;\n          goto LAB_000452ec;\n        }" (if "if") (parenthesized_expression "(iVar9 == 2)" (( "(") (binary_expression "iVar9 == 2" (identifier "iVar9") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n          puVar22 = (undefined1 *)0x1;\n          puVar21 = puVar11;\n          goto LAB_000452ec;\n        }" ({ "{") (expression_statement "puVar22 = (undefined1 *)0x1;" (assignment_expression "puVar22 = (undefined1 *)0x1" (identifier "puVar22") (= "=") (cast_expression "(undefined1 *)0x1" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "puVar21 = puVar11;" (assignment_expression "puVar21 = puVar11" (identifier "puVar21") (= "=") (identifier "puVar11")) (; ";")) (goto_statement "goto LAB_000452ec;" (goto "goto") (statement_identifier "LAB_000452ec") (; ";")) (} "}"))) (expression_statement "cVar19 = *pcVar23;" (assignment_expression "cVar19 = *pcVar23" (identifier "cVar19") (= "=") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23"))) (; ";")) (expression_statement "puVar22 = (undefined1 *)0x0;" (assignment_expression "puVar22 = (undefined1 *)0x0" (identifier "puVar22") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n        param_2 = param_2 + 1;\n        puVar22 = (undefined1 *)0x1;\n        uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);\n        puVar3 = PTR_parse_mbchar_00077718;\n        *puVar11 = uVar15;\n        iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n        pcVar23 = pcVar23 + iVar9;\n        cVar19 = *pcVar23;\n      }" (else "else") (compound_statement "{\n        param_2 = param_2 + 1;\n        puVar22 = (undefined1 *)0x1;\n        uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);\n        puVar3 = PTR_parse_mbchar_00077718;\n        *puVar11 = uVar15;\n        iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n        pcVar23 = pcVar23 + iVar9;\n        cVar19 = *pcVar23;\n      }" ({ "{") (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" (identifier "param_2") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar22 = (undefined1 *)0x1;" (assignment_expression "puVar22 = (undefined1 *)0x1" (identifier "puVar22") (= "=") (cast_expression "(undefined1 *)0x1" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);" (assignment_expression "uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4)" (identifier "uVar15") (= "=") (call_expression "(*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4)" (parenthesized_expression "(*(code *)PTR_control_mbrep_00077df4)" (( "(") (pointer_expression "*(code *)PTR_control_mbrep_00077df4" (* "*") (cast_expression "(code *)PTR_control_mbrep_00077df4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_control_mbrep_00077df4"))) () ")")) (argument_list "(pcVar23,param_4)" (( "(") (identifier "pcVar23") (, ",") (identifier "param_4") () ")")))) (; ";")) (expression_statement "puVar3 = PTR_parse_mbchar_00077718;" (assignment_expression "puVar3 = PTR_parse_mbchar_00077718" (identifier "puVar3") (= "=") (identifier "PTR_parse_mbchar_00077718")) (; ";")) (expression_statement "*puVar11 = uVar15;" (assignment_expression "*puVar11 = uVar15" (pointer_expression "*puVar11" (* "*") (identifier "puVar11")) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "iVar9 = (*(code *)puVar3)(pcVar23,0,0);" (assignment_expression "iVar9 = (*(code *)puVar3)(pcVar23,0,0)" (identifier "iVar9") (= "=") (call_expression "(*(code *)puVar3)(pcVar23,0,0)" (parenthesized_expression "(*(code *)puVar3)" (( "(") (pointer_expression "*(code *)puVar3" (* "*") (cast_expression "(code *)puVar3" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3"))) () ")")) (argument_list "(pcVar23,0,0)" (( "(") (identifier "pcVar23") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "pcVar23 = pcVar23 + iVar9;" (assignment_expression "pcVar23 = pcVar23 + iVar9" (identifier "pcVar23") (= "=") (binary_expression "pcVar23 + iVar9" (identifier "pcVar23") (+ "+") (identifier "iVar9"))) (; ";")) (expression_statement "cVar19 = *pcVar23;" (assignment_expression "cVar19 = *pcVar23" (identifier "cVar19") (= "=") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23"))) (; ";")) (} "}")))) (goto_statement "goto LAB_00044e7c;" (goto "goto") (statement_identifier "LAB_00044e7c") (; ";")) (} "}"))) (if_statement "if (uVar10 != 0) {\n      puVar22 = (undefined1 *)0x0;\n      if (param_4 == 0) goto LAB_00044e7c;\n      if ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0) {\n        iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n        puVar22 = (undefined1 *)0x0;\n        if (iVar9 == 0) goto LAB_0004536c;\n        goto LAB_0004529c;\n      }\n    }" (if "if") (parenthesized_expression "(uVar10 != 0)" (( "(") (binary_expression "uVar10 != 0" (identifier "uVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      puVar22 = (undefined1 *)0x0;\n      if (param_4 == 0) goto LAB_00044e7c;\n      if ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0) {\n        iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n        puVar22 = (undefined1 *)0x0;\n        if (iVar9 == 0) goto LAB_0004536c;\n        goto LAB_0004529c;\n      }\n    }" ({ "{") (expression_statement "puVar22 = (undefined1 *)0x0;" (assignment_expression "puVar22 = (undefined1 *)0x0" (identifier "puVar22") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (param_4 == 0) goto LAB_00044e7c;" (if "if") (parenthesized_expression "(param_4 == 0)" (( "(") (binary_expression "param_4 == 0" (identifier "param_4") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00044e7c;" (goto "goto") (statement_identifier "LAB_00044e7c") (; ";"))) (if_statement "if ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0) {\n        iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n        puVar22 = (undefined1 *)0x0;\n        if (iVar9 == 0) goto LAB_0004536c;\n        goto LAB_0004529c;\n      }" (if "if") (parenthesized_expression "((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)" (( "(") (binary_expression "(*(uint *)(PTR_flags_0007759c + 4) & 2) == 0" (parenthesized_expression "(*(uint *)(PTR_flags_0007759c + 4) & 2)" (( "(") (binary_expression "*(uint *)(PTR_flags_0007759c + 4) & 2" (pointer_expression "*(uint *)(PTR_flags_0007759c + 4)" (* "*") (cast_expression "(uint *)(PTR_flags_0007759c + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_flags_0007759c + 4)" (( "(") (binary_expression "PTR_flags_0007759c + 4" (identifier "PTR_flags_0007759c") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n        puVar22 = (undefined1 *)0x0;\n        if (iVar9 == 0) goto LAB_0004536c;\n        goto LAB_0004529c;\n      }" ({ "{") (expression_statement "iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);" (assignment_expression "iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23)" (parenthesized_expression "(*(code *)PTR_is_cntrl_mbchar_0007797c)" (( "(") (pointer_expression "*(code *)PTR_is_cntrl_mbchar_0007797c" (* "*") (cast_expression "(code *)PTR_is_cntrl_mbchar_0007797c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_is_cntrl_mbchar_0007797c"))) () ")")) (argument_list "(pcVar23)" (( "(") (identifier "pcVar23") () ")")))) (; ";")) (expression_statement "puVar22 = (undefined1 *)0x0;" (assignment_expression "puVar22 = (undefined1 *)0x0" (identifier "puVar22") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (iVar9 == 0) goto LAB_0004536c;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004536c;" (goto "goto") (statement_identifier "LAB_0004536c") (; ";"))) (goto_statement "goto LAB_0004529c;" (goto "goto") (statement_identifier "LAB_0004529c") (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "puVar22 = (undefined1 *)0x0;" (assignment_expression "puVar22 = (undefined1 *)0x0" (identifier "puVar22") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_00044e7c:\n  do {\n    puVar6 = PTR_whitespace_len_000778d4;\n    puVar5 = PTR_whitespace_000777fc;\n    puVar3 = PTR_flags_0007759c;\n    while (cVar19 != '\0') {\n      if (param_2 < uVar24) {\n        if (cVar19 == ' ') goto LAB_00044fc8;\nLAB_00044eac:\n        local_30 = 1;\n        if (cVar19 == '\t') {\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }\n        else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }\n        cVar19 = *pcVar23;\n        if (cVar19 != ' ') goto LAB_00044eac;\nLAB_00044fc8:\n        local_30 = 1;\n        if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }\n        param_2 = param_2 + 1;\n        pcVar23 = pcVar23 + 1;\n        cVar19 = *pcVar23;\n        puVar22 = puVar21;\n      }\n    }\nLAB_00044f3c:\n    puVar22 = puVar11 + (int)puVar22;\nLAB_00044f40:\n    *puVar22 = 0;\n    if (local_2c == *(int *)puVar8) {\n      return puVar11;\n    }\n    (*(code *)PTR___stack_chk_fail_000780c0)();\nLAB_0004536c:\n    iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n    if (iVar9 == 2) {\n      if (param_2 == uVar10) {\n        param_2 = param_2 + 1;\n        *puVar11 = 0x20;\n        puVar22 = (undefined1 *)0x2;\n        puVar21 = puVar11 + 1;\n      }\n      else {\n        puVar22 = (undefined1 *)0x1;\n        puVar21 = puVar11;\n      }\nLAB_000452ec:\n      puVar3 = PTR_parse_mbchar_00077718;\n      *puVar21 = 0x3c;\n      iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n      param_2 = param_2 + 1;\n      pcVar23 = pcVar23 + iVar9;\n      cVar19 = *pcVar23;\n    }\n    else {\nLAB_0004529c:\n      cVar19 = *pcVar23;\n    }\n  } while( true );" (statement_identifier "LAB_00044e7c") (: ":") (do_statement "do {\n    puVar6 = PTR_whitespace_len_000778d4;\n    puVar5 = PTR_whitespace_000777fc;\n    puVar3 = PTR_flags_0007759c;\n    while (cVar19 != '\0') {\n      if (param_2 < uVar24) {\n        if (cVar19 == ' ') goto LAB_00044fc8;\nLAB_00044eac:\n        local_30 = 1;\n        if (cVar19 == '\t') {\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }\n        else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }\n        cVar19 = *pcVar23;\n        if (cVar19 != ' ') goto LAB_00044eac;\nLAB_00044fc8:\n        local_30 = 1;\n        if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }\n        param_2 = param_2 + 1;\n        pcVar23 = pcVar23 + 1;\n        cVar19 = *pcVar23;\n        puVar22 = puVar21;\n      }\n    }\nLAB_00044f3c:\n    puVar22 = puVar11 + (int)puVar22;\nLAB_00044f40:\n    *puVar22 = 0;\n    if (local_2c == *(int *)puVar8) {\n      return puVar11;\n    }\n    (*(code *)PTR___stack_chk_fail_000780c0)();\nLAB_0004536c:\n    iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n    if (iVar9 == 2) {\n      if (param_2 == uVar10) {\n        param_2 = param_2 + 1;\n        *puVar11 = 0x20;\n        puVar22 = (undefined1 *)0x2;\n        puVar21 = puVar11 + 1;\n      }\n      else {\n        puVar22 = (undefined1 *)0x1;\n        puVar21 = puVar11;\n      }\nLAB_000452ec:\n      puVar3 = PTR_parse_mbchar_00077718;\n      *puVar21 = 0x3c;\n      iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n      param_2 = param_2 + 1;\n      pcVar23 = pcVar23 + iVar9;\n      cVar19 = *pcVar23;\n    }\n    else {\nLAB_0004529c:\n      cVar19 = *pcVar23;\n    }\n  } while( true );" (do "do") (compound_statement "{\n    puVar6 = PTR_whitespace_len_000778d4;\n    puVar5 = PTR_whitespace_000777fc;\n    puVar3 = PTR_flags_0007759c;\n    while (cVar19 != '\0') {\n      if (param_2 < uVar24) {\n        if (cVar19 == ' ') goto LAB_00044fc8;\nLAB_00044eac:\n        local_30 = 1;\n        if (cVar19 == '\t') {\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }\n        else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }\n        cVar19 = *pcVar23;\n        if (cVar19 != ' ') goto LAB_00044eac;\nLAB_00044fc8:\n        local_30 = 1;\n        if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }\n        param_2 = param_2 + 1;\n        pcVar23 = pcVar23 + 1;\n        cVar19 = *pcVar23;\n        puVar22 = puVar21;\n      }\n    }\nLAB_00044f3c:\n    puVar22 = puVar11 + (int)puVar22;\nLAB_00044f40:\n    *puVar22 = 0;\n    if (local_2c == *(int *)puVar8) {\n      return puVar11;\n    }\n    (*(code *)PTR___stack_chk_fail_000780c0)();\nLAB_0004536c:\n    iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n    if (iVar9 == 2) {\n      if (param_2 == uVar10) {\n        param_2 = param_2 + 1;\n        *puVar11 = 0x20;\n        puVar22 = (undefined1 *)0x2;\n        puVar21 = puVar11 + 1;\n      }\n      else {\n        puVar22 = (undefined1 *)0x1;\n        puVar21 = puVar11;\n      }\nLAB_000452ec:\n      puVar3 = PTR_parse_mbchar_00077718;\n      *puVar21 = 0x3c;\n      iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n      param_2 = param_2 + 1;\n      pcVar23 = pcVar23 + iVar9;\n      cVar19 = *pcVar23;\n    }\n    else {\nLAB_0004529c:\n      cVar19 = *pcVar23;\n    }\n  }" ({ "{") (expression_statement "puVar6 = PTR_whitespace_len_000778d4;" (assignment_expression "puVar6 = PTR_whitespace_len_000778d4" (identifier "puVar6") (= "=") (identifier "PTR_whitespace_len_000778d4")) (; ";")) (expression_statement "puVar5 = PTR_whitespace_000777fc;" (assignment_expression "puVar5 = PTR_whitespace_000777fc" (identifier "puVar5") (= "=") (identifier "PTR_whitespace_000777fc")) (; ";")) (expression_statement "puVar3 = PTR_flags_0007759c;" (assignment_expression "puVar3 = PTR_flags_0007759c" (identifier "puVar3") (= "=") (identifier "PTR_flags_0007759c")) (; ";")) (while_statement "while (cVar19 != '\0') {\n      if (param_2 < uVar24) {\n        if (cVar19 == ' ') goto LAB_00044fc8;\nLAB_00044eac:\n        local_30 = 1;\n        if (cVar19 == '\t') {\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }\n        else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }\n        cVar19 = *pcVar23;\n        if (cVar19 != ' ') goto LAB_00044eac;\nLAB_00044fc8:\n        local_30 = 1;\n        if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }\n        param_2 = param_2 + 1;\n        pcVar23 = pcVar23 + 1;\n        cVar19 = *pcVar23;\n        puVar22 = puVar21;\n      }\n    }" (while "while") (parenthesized_expression "(cVar19 != '\0')" (( "(") (binary_expression "cVar19 != '\0'" (identifier "cVar19") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      if (param_2 < uVar24) {\n        if (cVar19 == ' ') goto LAB_00044fc8;\nLAB_00044eac:\n        local_30 = 1;\n        if (cVar19 == '\t') {\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }\n        else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }\n        cVar19 = *pcVar23;\n        if (cVar19 != ' ') goto LAB_00044eac;\nLAB_00044fc8:\n        local_30 = 1;\n        if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }\n        param_2 = param_2 + 1;\n        pcVar23 = pcVar23 + 1;\n        cVar19 = *pcVar23;\n        puVar22 = puVar21;\n      }\n    }" ({ "{") (if_statement "if (param_2 < uVar24) {\n        if (cVar19 == ' ') goto LAB_00044fc8;\nLAB_00044eac:\n        local_30 = 1;\n        if (cVar19 == '\t') {\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }\n        else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }\n      }\n      else {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }\n        cVar19 = *pcVar23;\n        if (cVar19 != ' ') goto LAB_00044eac;\nLAB_00044fc8:\n        local_30 = 1;\n        if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }\n        param_2 = param_2 + 1;\n        pcVar23 = pcVar23 + 1;\n        cVar19 = *pcVar23;\n        puVar22 = puVar21;\n      }" (if "if") (parenthesized_expression "(param_2 < uVar24)" (( "(") (binary_expression "param_2 < uVar24" (identifier "param_2") (< "<") (identifier "uVar24")) () ")")) (compound_statement "{\n        if (cVar19 == ' ') goto LAB_00044fc8;\nLAB_00044eac:\n        local_30 = 1;\n        if (cVar19 == '\t') {\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }\n        else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }\n      }" ({ "{") (if_statement "if (cVar19 == ' ') goto LAB_00044fc8;" (if "if") (parenthesized_expression "(cVar19 == ' ')" (( "(") (binary_expression "cVar19 == ' '" (identifier "cVar19") (== "==") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (goto_statement "goto LAB_00044fc8;" (goto "goto") (statement_identifier "LAB_00044fc8") (; ";"))) (labeled_statement "LAB_00044eac:\n        local_30 = 1;" (statement_identifier "LAB_00044eac") (: ":") (expression_statement "local_30 = 1;" (assignment_expression "local_30 = 1" (identifier "local_30") (= "=") (number_literal "1")) (; ";"))) (if_statement "if (cVar19 == '\t') {\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }\n        else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }" (if "if") (parenthesized_expression "(cVar19 == '\t')" (( "(") (binary_expression "cVar19 == '\t'" (identifier "cVar19") (== "==") (char_literal "'\t'" (' "'") (escape_sequence "\t") (' "'"))) () ")")) (compound_statement "{\n          if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }\n          uVar14 = param_2 + 1;\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          puVar22 = puVar21;\n          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }\n          pcVar23 = pcVar23 + 1;\n          cVar19 = *pcVar23;\n          param_2 = uVar14;\n        }" ({ "{") (if_statement "if (*(int *)puVar3 << 6 < 0) {\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }\n          else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }" (if "if") (parenthesized_expression "(*(int *)puVar3 << 6 < 0)" (( "(") (binary_expression "*(int *)puVar3 << 6 < 0" (binary_expression "*(int *)puVar3 << 6" (pointer_expression "*(int *)puVar3" (* "*") (cast_expression "(int *)puVar3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3"))) (<< "<<") (number_literal "6")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }\n            puVar21 = puVar22;\n            if (*(int *)puVar6 < 1) goto LAB_000450a0;\n            iVar9 = 0;\n            do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);\n            uVar17 = *(uint *)puVar4;\n          }" ({ "{") (if_statement "if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)) {\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }" (if "if") (parenthesized_expression "(((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0))" (( "(") (binary_expression "((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&\n               ((*(uint *)(puVar3 + 4) & 2) != 0)" (parenthesized_expression "((puVar22 == (undefined1 *)0x0) && (param_4 != 0))" (( "(") (binary_expression "(puVar22 == (undefined1 *)0x0) && (param_4 != 0)" (parenthesized_expression "(puVar22 == (undefined1 *)0x0)" (( "(") (binary_expression "puVar22 == (undefined1 *)0x0" (identifier "puVar22") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(param_4 != 0)" (( "(") (binary_expression "param_4 != 0" (identifier "param_4") (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(uint *)(puVar3 + 4) & 2) != 0)" (( "(") (binary_expression "(*(uint *)(puVar3 + 4) & 2) != 0" (parenthesized_expression "(*(uint *)(puVar3 + 4) & 2)" (( "(") (binary_expression "*(uint *)(puVar3 + 4) & 2" (pointer_expression "*(uint *)(puVar3 + 4)" (* "*") (cast_expression "(uint *)(puVar3 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 4)" (( "(") (binary_expression "puVar3 + 4" (identifier "puVar3") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;\n            }" ({ "{") (if_statement "if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }" (if "if") (parenthesized_expression "(*(uint *)puVar4 == 0)" (( "(") (binary_expression "*(uint *)puVar4 == 0" (pointer_expression "*(uint *)puVar4" (* "*") (cast_expression "(uint *)puVar4" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                trap(7);\n              }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (if_statement "if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;" (if "if") (parenthesized_expression "((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10))" (( "(") (binary_expression "(param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)" (parenthesized_expression "(param_2 % *(uint *)puVar4 != 0)" (( "(") (binary_expression "param_2 % *(uint *)puVar4 != 0" (binary_expression "param_2 % *(uint *)puVar4" (identifier "param_2") (% "%") (pointer_expression "*(uint *)puVar4" (* "*") (cast_expression "(uint *)puVar4" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(param_2 != uVar10)" (( "(") (binary_expression "param_2 != uVar10" (identifier "param_2") (!= "!=") (identifier "uVar10")) () ")"))) () ")")) (goto_statement "goto LAB_00045094;" (goto "goto") (statement_identifier "LAB_00045094") (; ";"))) (} "}"))) (expression_statement "puVar21 = puVar22;" (assignment_expression "puVar21 = puVar22" (identifier "puVar21") (= "=") (identifier "puVar22")) (; ";")) (if_statement "if (*(int *)puVar6 < 1) goto LAB_000450a0;" (if "if") (parenthesized_expression "(*(int *)puVar6 < 1)" (( "(") (binary_expression "*(int *)puVar6 < 1" (pointer_expression "*(int *)puVar6" (* "*") (cast_expression "(int *)puVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar6"))) (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_000450a0;" (goto "goto") (statement_identifier "LAB_000450a0") (; ";"))) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            } while (iVar9 < *(int *)puVar6);" (do "do") (compound_statement "{\n              puVar18 = puVar22 + iVar9;\n              puVar21 = puVar22 + iVar9 + 1;\n              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);\n              iVar9 = iVar9 + 1;\n              puVar11[(int)puVar18] = *puVar20;\n            }" ({ "{") (expression_statement "puVar18 = puVar22 + iVar9;" (assignment_expression "puVar18 = puVar22 + iVar9" (identifier "puVar18") (= "=") (binary_expression "puVar22 + iVar9" (identifier "puVar22") (+ "+") (identifier "iVar9"))) (; ";")) (expression_statement "puVar21 = puVar22 + iVar9 + 1;" (assignment_expression "puVar21 = puVar22 + iVar9 + 1" (identifier "puVar21") (= "=") (binary_expression "puVar22 + iVar9 + 1" (binary_expression "puVar22 + iVar9" (identifier "puVar22") (+ "+") (identifier "iVar9")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);" (assignment_expression "puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9)" (identifier "puVar20") (= "=") (cast_expression "(undefined1 *)(*(int *)puVar5 + iVar9)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)puVar5 + iVar9)" (( "(") (binary_expression "*(int *)puVar5 + iVar9" (pointer_expression "*(int *)puVar5" (* "*") (cast_expression "(int *)puVar5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar5"))) (+ "+") (identifier "iVar9")) () ")")))) (; ";")) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar11[(int)puVar18] = *puVar20;" (assignment_expression "puVar11[(int)puVar18] = *puVar20" (subscript_expression "puVar11[(int)puVar18]" (identifier "puVar11") ([ "[") (cast_expression "(int)puVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar18")) (] "]")) (= "=") (pointer_expression "*puVar20" (* "*") (identifier "puVar20"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar9 < *(int *)puVar6)" (( "(") (binary_expression "iVar9 < *(int *)puVar6" (identifier "iVar9") (< "<") (pointer_expression "*(int *)puVar6" (* "*") (cast_expression "(int *)puVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar6")))) () ")")) (; ";")) (expression_statement "uVar17 = *(uint *)puVar4;" (assignment_expression "uVar17 = *(uint *)puVar4" (identifier "uVar17") (= "=") (pointer_expression "*(uint *)puVar4" (* "*") (cast_expression "(uint *)puVar4" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4")))) (; ";")) (} "}")) (else_clause "else {\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }" (else "else") (compound_statement "{\nLAB_00045094:\n            puVar11[(int)puVar22] = 0x20;\n            puVar21 = puVar22 + 1;\nLAB_000450a0:\n            uVar17 = *(uint *)puVar4;\n          }" ({ "{") (labeled_statement "LAB_00045094:\n            puVar11[(int)puVar22] = 0x20;" (statement_identifier "LAB_00045094") (: ":") (expression_statement "puVar11[(int)puVar22] = 0x20;" (assignment_expression "puVar11[(int)puVar22] = 0x20" (subscript_expression "puVar11[(int)puVar22]" (identifier "puVar11") ([ "[") (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22")) (] "]")) (= "=") (number_literal "0x20")) (; ";"))) (expression_statement "puVar21 = puVar22 + 1;" (assignment_expression "puVar21 = puVar22 + 1" (identifier "puVar21") (= "=") (binary_expression "puVar22 + 1" (identifier "puVar22") (+ "+") (number_literal "1"))) (; ";")) (labeled_statement "LAB_000450a0:\n            uVar17 = *(uint *)puVar4;" (statement_identifier "LAB_000450a0") (: ":") (expression_statement "uVar17 = *(uint *)puVar4;" (assignment_expression "uVar17 = *(uint *)puVar4" (identifier "uVar17") (= "=") (pointer_expression "*(uint *)puVar4" (* "*") (cast_expression "(uint *)puVar4" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4")))) (; ";"))) (} "}")))) (expression_statement "uVar14 = param_2 + 1;" (assignment_expression "uVar14 = param_2 + 1" (identifier "uVar14") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar17 == 0) {\n            trap(7);\n          }" (if "if") (parenthesized_expression "(uVar17 == 0)" (( "(") (binary_expression "uVar17 == 0" (identifier "uVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            trap(7);\n          }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar22 = puVar21;" (assignment_expression "puVar22 = puVar21" (identifier "puVar22") (= "=") (identifier "puVar21")) (; ";")) (if_statement "if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }" (if "if") (parenthesized_expression "((uVar14 % uVar17 != 0) && (uVar14 < uVar24))" (( "(") (binary_expression "(uVar14 % uVar17 != 0) && (uVar14 < uVar24)" (parenthesized_expression "(uVar14 % uVar17 != 0)" (( "(") (binary_expression "uVar14 % uVar17 != 0" (binary_expression "uVar14 % uVar17" (identifier "uVar14") (% "%") (identifier "uVar17")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar14 < uVar24)" (( "(") (binary_expression "uVar14 < uVar24" (identifier "uVar14") (< "<") (identifier "uVar24")) () ")"))) () ")")) (compound_statement "{\n            do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));\n          }" ({ "{") (do_statement "do {\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));" (do "do") (compound_statement "{\n              puVar22 = puVar21 + (uVar14 - param_2);\n              uVar14 = uVar14 + 1;\n              (puVar11 + (int)puVar22)[-1] = 0x20;\n              if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }\n            }" ({ "{") (expression_statement "puVar22 = puVar21 + (uVar14 - param_2);" (assignment_expression "puVar22 = puVar21 + (uVar14 - param_2)" (identifier "puVar22") (= "=") (binary_expression "puVar21 + (uVar14 - param_2)" (identifier "puVar21") (+ "+") (parenthesized_expression "(uVar14 - param_2)" (( "(") (binary_expression "uVar14 - param_2" (identifier "uVar14") (- "-") (identifier "param_2")) () ")")))) (; ";")) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" (identifier "uVar14") (= "=") (binary_expression "uVar14 + 1" (identifier "uVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(puVar11 + (int)puVar22)[-1] = 0x20;" (assignment_expression "(puVar11 + (int)puVar22)[-1] = 0x20" (subscript_expression "(puVar11 + (int)puVar22)[-1]" (parenthesized_expression "(puVar11 + (int)puVar22)" (( "(") (binary_expression "puVar11 + (int)puVar22" (identifier "puVar11") (+ "+") (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22"))) () ")")) ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0x20")) (; ";")) (if_statement "if (*(uint *)puVar4 == 0) {\n                trap(7);\n              }" (if "if") (parenthesized_expression "(*(uint *)puVar4 == 0)" (( "(") (binary_expression "*(uint *)puVar4 == 0" (pointer_expression "*(uint *)puVar4" (* "*") (cast_expression "(uint *)puVar4" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                trap(7);\n              }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24))" (( "(") (binary_expression "(uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24)" (parenthesized_expression "(uVar14 % *(uint *)puVar4 != 0)" (( "(") (binary_expression "uVar14 % *(uint *)puVar4 != 0" (binary_expression "uVar14 % *(uint *)puVar4" (identifier "uVar14") (% "%") (pointer_expression "*(uint *)puVar4" (* "*") (cast_expression "(uint *)puVar4" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar14 < uVar24)" (( "(") (binary_expression "uVar14 < uVar24" (identifier "uVar14") (< "<") (identifier "uVar24")) () ")"))) () ")")) (; ";")) (} "}"))) (expression_statement "pcVar23 = pcVar23 + 1;" (assignment_expression "pcVar23 = pcVar23 + 1" (identifier "pcVar23") (= "=") (binary_expression "pcVar23 + 1" (identifier "pcVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar19 = *pcVar23;" (assignment_expression "cVar19 = *pcVar23" (identifier "cVar19") (= "=") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23"))) (; ";")) (expression_statement "param_2 = uVar14;" (assignment_expression "param_2 = uVar14" (identifier "param_2") (= "=") (identifier "uVar14")) (; ";")) (} "}")) (else_clause "else {\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }" (else "else") (compound_statement "{\n          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);\n          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);\n          puVar7 = PTR_control_mbrep_00077df4;\n          pcVar16 = puVar11 + (int)puVar22;\n          if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }\n        }" ({ "{") (expression_statement "iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);" (assignment_expression "iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30)" (parenthesized_expression "(*(code *)PTR_length_of_char_00077dec)" (( "(") (pointer_expression "*(code *)PTR_length_of_char_00077dec" (* "*") (cast_expression "(code *)PTR_length_of_char_00077dec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_length_of_char_00077dec"))) () ")")) (argument_list "(pcVar23,&local_30)" (( "(") (identifier "pcVar23") (, ",") (pointer_expression "&local_30" (& "&") (identifier "local_30")) () ")")))) (; ";")) (expression_statement "iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);" (assignment_expression "iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23)" (identifier "iVar12") (= "=") (call_expression "(*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23)" (parenthesized_expression "(*(code *)PTR_is_cntrl_mbchar_0007797c)" (( "(") (pointer_expression "*(code *)PTR_is_cntrl_mbchar_0007797c" (* "*") (cast_expression "(code *)PTR_is_cntrl_mbchar_0007797c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_is_cntrl_mbchar_0007797c"))) () ")")) (argument_list "(pcVar23)" (( "(") (identifier "pcVar23") () ")")))) (; ";")) (expression_statement "puVar7 = PTR_control_mbrep_00077df4;" (assignment_expression "puVar7 = PTR_control_mbrep_00077df4" (identifier "puVar7") (= "=") (identifier "PTR_control_mbrep_00077df4")) (; ";")) (expression_statement "pcVar16 = puVar11 + (int)puVar22;" (assignment_expression "pcVar16 = puVar11 + (int)puVar22" (identifier "pcVar16") (= "=") (binary_expression "puVar11 + (int)puVar22" (identifier "puVar11") (+ "+") (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22")))) (; ";")) (if_statement "if (iVar12 == 0) {\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }\n          else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            pcVar13 = pcVar23 + 1;\n            if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }\n          }" ({ "{") (expression_statement "pcVar13 = pcVar23 + 1;" (assignment_expression "pcVar13 = pcVar23 + 1" (identifier "pcVar13") (= "=") (binary_expression "pcVar23 + 1" (identifier "pcVar23") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar9 < 1) {\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }\n            else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }" (if "if") (parenthesized_expression "(iVar9 < 1)" (( "(") (binary_expression "iVar9 < 1" (identifier "iVar9") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n              *pcVar16 = -0x11;\n              puVar11[(int)(puVar22 + 1)] = 0xbf;\n              puVar11[(int)(puVar22 + 2)] = 0xbd;\n              if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + 3;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + 1;\n            }" ({ "{") (expression_statement "*pcVar16 = -0x11;" (assignment_expression "*pcVar16 = -0x11" (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")) (= "=") (number_literal "-0x11")) (; ";")) (expression_statement "puVar11[(int)(puVar22 + 1)] = 0xbf;" (assignment_expression "puVar11[(int)(puVar22 + 1)] = 0xbf" (subscript_expression "puVar11[(int)(puVar22 + 1)]" (identifier "puVar11") ([ "[") (cast_expression "(int)(puVar22 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar22 + 1)" (( "(") (binary_expression "puVar22 + 1" (identifier "puVar22") (+ "+") (number_literal "1")) () ")"))) (] "]")) (= "=") (number_literal "0xbf")) (; ";")) (expression_statement "puVar11[(int)(puVar22 + 2)] = 0xbd;" (assignment_expression "puVar11[(int)(puVar22 + 2)] = 0xbd" (subscript_expression "puVar11[(int)(puVar22 + 2)]" (identifier "puVar11") ([ "[") (cast_expression "(int)(puVar22 + 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar22 + 2)" (( "(") (binary_expression "puVar22 + 2" (identifier "puVar22") (+ "+") (number_literal "2")) () ")"))) (] "]")) (= "=") (number_literal "0xbd")) (; ";")) (if_statement "if (iVar9 < -1) {\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }" (if "if") (parenthesized_expression "(iVar9 < -1)" (( "(") (binary_expression "iVar9 < -1" (identifier "iVar9") (< "<") (number_literal "-1")) () ")")) (compound_statement "{\n                pcVar13 = pcVar13 + iVar9 + 7;\n              }" ({ "{") (expression_statement "pcVar13 = pcVar13 + iVar9 + 7;" (assignment_expression "pcVar13 = pcVar13 + iVar9 + 7" (identifier "pcVar13") (= "=") (binary_expression "pcVar13 + iVar9 + 7" (binary_expression "pcVar13 + iVar9" (identifier "pcVar13") (+ "+") (identifier "iVar9")) (+ "+") (number_literal "7"))) (; ";")) (} "}"))) (expression_statement "cVar19 = *pcVar13;" (assignment_expression "cVar19 = *pcVar13" (identifier "cVar19") (= "=") (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13"))) (; ";")) (expression_statement "puVar22 = puVar22 + 3;" (assignment_expression "puVar22 = puVar22 + 3" (identifier "puVar22") (= "=") (binary_expression "puVar22 + 3" (identifier "puVar22") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "pcVar23 = pcVar13;" (assignment_expression "pcVar23 = pcVar13" (identifier "pcVar23") (= "=") (identifier "pcVar13")) (; ";")) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" (identifier "param_2") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }" (else "else") (compound_statement "{\n              while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }\n              cVar19 = *pcVar13;\n              puVar22 = puVar22 + iVar9;\n              pcVar23 = pcVar13;\n              param_2 = param_2 + local_30;\n            }" ({ "{") (while_statement "while( true ) {\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                *pcVar16 = pcVar13[-1];\n                if (pcVar23 + iVar9 == pcVar13) break;\n                pcVar13 = pcVar13 + 1;\n                pcVar16 = pcVar16 + 1;\n              }" ({ "{") (expression_statement "*pcVar16 = pcVar13[-1];" (assignment_expression "*pcVar16 = pcVar13[-1]" (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")) (= "=") (subscript_expression "pcVar13[-1]" (identifier "pcVar13") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (if_statement "if (pcVar23 + iVar9 == pcVar13) break;" (if "if") (parenthesized_expression "(pcVar23 + iVar9 == pcVar13)" (( "(") (binary_expression "pcVar23 + iVar9 == pcVar13" (binary_expression "pcVar23 + iVar9" (identifier "pcVar23") (+ "+") (identifier "iVar9")) (== "==") (identifier "pcVar13")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pcVar13 = pcVar13 + 1;" (assignment_expression "pcVar13 = pcVar13 + 1" (identifier "pcVar13") (= "=") (binary_expression "pcVar13 + 1" (identifier "pcVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar16 = pcVar16 + 1;" (assignment_expression "pcVar16 = pcVar16 + 1" (identifier "pcVar16") (= "=") (binary_expression "pcVar16 + 1" (identifier "pcVar16") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "cVar19 = *pcVar13;" (assignment_expression "cVar19 = *pcVar13" (identifier "cVar19") (= "=") (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13"))) (; ";")) (expression_statement "puVar22 = puVar22 + iVar9;" (assignment_expression "puVar22 = puVar22 + iVar9" (identifier "puVar22") (= "=") (binary_expression "puVar22 + iVar9" (identifier "puVar22") (+ "+") (identifier "iVar9"))) (; ";")) (expression_statement "pcVar23 = pcVar13;" (assignment_expression "pcVar23 = pcVar13" (identifier "pcVar23") (= "=") (identifier "pcVar13")) (; ";")) (expression_statement "param_2 = param_2 + local_30;" (assignment_expression "param_2 = param_2 + local_30" (identifier "param_2") (= "=") (binary_expression "param_2 + local_30" (identifier "param_2") (+ "+") (identifier "local_30"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }" (else "else") (compound_statement "{\n            *pcVar16 = '^';\n            uVar15 = (*(code *)puVar7)(pcVar23,param_4);\n            pcVar23 = pcVar23 + iVar9;\n            puVar11[(int)(puVar22 + 1)] = uVar15;\n            cVar19 = *pcVar23;\n            puVar22 = puVar22 + 2;\n            param_2 = param_2 + 2;\n          }" ({ "{") (expression_statement "*pcVar16 = '^';" (assignment_expression "*pcVar16 = '^'" (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")) (= "=") (char_literal "'^'" (' "'") (character "^") (' "'"))) (; ";")) (expression_statement "uVar15 = (*(code *)puVar7)(pcVar23,param_4);" (assignment_expression "uVar15 = (*(code *)puVar7)(pcVar23,param_4)" (identifier "uVar15") (= "=") (call_expression "(*(code *)puVar7)(pcVar23,param_4)" (parenthesized_expression "(*(code *)puVar7)" (( "(") (pointer_expression "*(code *)puVar7" (* "*") (cast_expression "(code *)puVar7" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar7"))) () ")")) (argument_list "(pcVar23,param_4)" (( "(") (identifier "pcVar23") (, ",") (identifier "param_4") () ")")))) (; ";")) (expression_statement "pcVar23 = pcVar23 + iVar9;" (assignment_expression "pcVar23 = pcVar23 + iVar9" (identifier "pcVar23") (= "=") (binary_expression "pcVar23 + iVar9" (identifier "pcVar23") (+ "+") (identifier "iVar9"))) (; ";")) (expression_statement "puVar11[(int)(puVar22 + 1)] = uVar15;" (assignment_expression "puVar11[(int)(puVar22 + 1)] = uVar15" (subscript_expression "puVar11[(int)(puVar22 + 1)]" (identifier "puVar11") ([ "[") (cast_expression "(int)(puVar22 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar22 + 1)" (( "(") (binary_expression "puVar22 + 1" (identifier "puVar22") (+ "+") (number_literal "1")) () ")"))) (] "]")) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "cVar19 = *pcVar23;" (assignment_expression "cVar19 = *pcVar23" (identifier "cVar19") (= "=") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23"))) (; ";")) (expression_statement "puVar22 = puVar22 + 2;" (assignment_expression "puVar22 = puVar22 + 2" (identifier "puVar22") (= "=") (binary_expression "puVar22 + 2" (identifier "puVar22") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "param_2 = param_2 + 2;" (assignment_expression "param_2 = param_2 + 2" (identifier "param_2") (= "=") (binary_expression "param_2 + 2" (identifier "param_2") (+ "+") (number_literal "2"))) (; ";")) (} "}")))) (} "}")))) (} "}")) (else_clause "else {\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }\n        cVar19 = *pcVar23;\n        if (cVar19 != ' ') goto LAB_00044eac;\nLAB_00044fc8:\n        local_30 = 1;\n        if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }\n        param_2 = param_2 + 1;\n        pcVar23 = pcVar23 + 1;\n        cVar19 = *pcVar23;\n        puVar22 = puVar21;\n      }" (else "else") (compound_statement "{\n        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);\n        if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }\n        cVar19 = *pcVar23;\n        if (cVar19 != ' ') goto LAB_00044eac;\nLAB_00044fc8:\n        local_30 = 1;\n        if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }\n        param_2 = param_2 + 1;\n        pcVar23 = pcVar23 + 1;\n        cVar19 = *pcVar23;\n        puVar22 = puVar21;\n      }" ({ "{") (expression_statement "iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);" (assignment_expression "iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_mbwidth_00077df0)(pcVar23)" (parenthesized_expression "(*(code *)PTR_mbwidth_00077df0)" (( "(") (pointer_expression "*(code *)PTR_mbwidth_00077df0" (* "*") (cast_expression "(code *)PTR_mbwidth_00077df0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbwidth_00077df0"))) () ")")) (argument_list "(pcVar23)" (( "(") (identifier "pcVar23") () ")")))) (; ";")) (if_statement "if (iVar9 != 0) {\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }\n          break;\n        }" ({ "{") (if_statement "if ((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }" (if "if") (parenthesized_expression "((*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0))))))" (( "(") (binary_expression "(*pcVar23 != '\0') &&\n             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))" (parenthesized_expression "(*pcVar23 != '\0')" (( "(") (binary_expression "*pcVar23 != '\0'" (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))" (( "(") (parenthesized_expression "(uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0))))" (( "(") (comma_expression "uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))" (assignment_expression "uVar24 = (uint)(uVar24 < param_2)" (identifier "uVar24") (= "=") (call_expression "(uint)(uVar24 < param_2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar24 < param_2)" (( "(") (binary_expression "uVar24 < param_2" (identifier "uVar24") (< "<") (identifier "param_2")) () ")")))) (, ",") (binary_expression "uVar24 != 0 ||\n              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))" (binary_expression "uVar24 != 0" (identifier "uVar24") (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))" (( "(") (parenthesized_expression "(param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0))" (( "(") (binary_expression "param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)" (binary_expression "param_4 != 0" (identifier "param_4") (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)" (( "(") (binary_expression "(*(uint *)(PTR_flags_0007759c + 4) & 2) == 0" (parenthesized_expression "(*(uint *)(PTR_flags_0007759c + 4) & 2)" (( "(") (binary_expression "*(uint *)(PTR_flags_0007759c + 4) & 2" (pointer_expression "*(uint *)(PTR_flags_0007759c + 4)" (* "*") (cast_expression "(uint *)(PTR_flags_0007759c + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_flags_0007759c + 4)" (( "(") (binary_expression "PTR_flags_0007759c + 4" (identifier "PTR_flags_0007759c") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);\n            puVar22 = puVar11 + (int)pcVar23;\n            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);\n            if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }\n            goto LAB_00044f40;\n          }" ({ "{") (expression_statement "pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);" (assignment_expression "pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22)" (identifier "pcVar23") (= "=") (cast_expression "(char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22)" (parenthesized_expression "(*(code *)PTR_move_mbleft_00077c18)" (( "(") (pointer_expression "*(code *)PTR_move_mbleft_00077c18" (* "*") (cast_expression "(code *)PTR_move_mbleft_00077c18" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_move_mbleft_00077c18"))) () ")")) (argument_list "(puVar11,puVar22)" (( "(") (identifier "puVar11") (, ",") (identifier "puVar22") () ")"))))) (; ";")) (expression_statement "puVar22 = puVar11 + (int)pcVar23;" (assignment_expression "puVar22 = puVar11 + (int)pcVar23" (identifier "puVar22") (= "=") (binary_expression "puVar11 + (int)pcVar23" (identifier "puVar11") (+ "+") (cast_expression "(int)pcVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar23")))) (; ";")) (expression_statement "iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);" (assignment_expression "iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_mbwidth_00077df0)(puVar22)" (parenthesized_expression "(*(code *)PTR_mbwidth_00077df0)" (( "(") (pointer_expression "*(code *)PTR_mbwidth_00077df0" (* "*") (cast_expression "(code *)PTR_mbwidth_00077df0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbwidth_00077df0"))) () ")")) (argument_list "(puVar22)" (( "(") (identifier "puVar22") () ")")))) (; ";")) (if_statement "if (iVar9 == 2) {\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }" (if "if") (parenthesized_expression "(iVar9 == 2)" (( "(") (binary_expression "iVar9 == 2" (identifier "iVar9") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n              pcVar23 = pcVar23 + 1;\n              *puVar22 = 0x3e;\n              puVar22 = puVar11 + (int)pcVar23;\n            }" ({ "{") (expression_statement "pcVar23 = pcVar23 + 1;" (assignment_expression "pcVar23 = pcVar23 + 1" (identifier "pcVar23") (= "=") (binary_expression "pcVar23 + 1" (identifier "pcVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar22 = 0x3e;" (assignment_expression "*puVar22 = 0x3e" (pointer_expression "*puVar22" (* "*") (identifier "puVar22")) (= "=") (number_literal "0x3e")) (; ";")) (expression_statement "puVar22 = puVar11 + (int)pcVar23;" (assignment_expression "puVar22 = puVar11 + (int)pcVar23" (identifier "puVar22") (= "=") (binary_expression "puVar11 + (int)pcVar23" (identifier "puVar11") (+ "+") (cast_expression "(int)pcVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar23")))) (; ";")) (} "}"))) (goto_statement "goto LAB_00044f40;" (goto "goto") (statement_identifier "LAB_00044f40") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "cVar19 = *pcVar23;" (assignment_expression "cVar19 = *pcVar23" (identifier "cVar19") (= "=") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23"))) (; ";")) (if_statement "if (cVar19 != ' ') goto LAB_00044eac;" (if "if") (parenthesized_expression "(cVar19 != ' ')" (( "(") (binary_expression "cVar19 != ' '" (identifier "cVar19") (!= "!=") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (goto_statement "goto LAB_00044eac;" (goto "goto") (statement_identifier "LAB_00044eac") (; ";"))) (labeled_statement "LAB_00044fc8:\n        local_30 = 1;" (statement_identifier "LAB_00044fc8") (: ":") (expression_statement "local_30 = 1;" (assignment_expression "local_30 = 1" (identifier "local_30") (= "=") (number_literal "1")) (; ";"))) (if_statement "if (*(int *)puVar3 << 6 < 0) {\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }\n        else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }" (if "if") (parenthesized_expression "(*(int *)puVar3 << 6 < 0)" (( "(") (binary_expression "*(int *)puVar3 << 6 < 0" (binary_expression "*(int *)puVar3 << 6" (pointer_expression "*(int *)puVar3" (* "*") (cast_expression "(int *)puVar3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3"))) (<< "<<") (number_literal "6")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          iVar9 = *(int *)puVar6;\n          puVar21 = puVar22;\n          if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }\n        }" ({ "{") (expression_statement "iVar9 = *(int *)puVar6;" (assignment_expression "iVar9 = *(int *)puVar6" (identifier "iVar9") (= "=") (pointer_expression "*(int *)puVar6" (* "*") (cast_expression "(int *)puVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar6")))) (; ";")) (expression_statement "puVar21 = puVar22;" (assignment_expression "puVar21 = puVar22" (identifier "puVar21") (= "=") (identifier "puVar22")) (; ";")) (if_statement "if (0 < *(int *)(puVar6 + 4)) {\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }" (if "if") (parenthesized_expression "(0 < *(int *)(puVar6 + 4))" (( "(") (binary_expression "0 < *(int *)(puVar6 + 4)" (number_literal "0") (< "<") (pointer_expression "*(int *)(puVar6 + 4)" (* "*") (cast_expression "(int *)(puVar6 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 4)" (( "(") (binary_expression "puVar6 + 4" (identifier "puVar6") (+ "+") (number_literal "4")) () ")"))))) () ")")) (compound_statement "{\n            iVar12 = iVar9;\n            do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));\n          }" ({ "{") (expression_statement "iVar12 = iVar9;" (assignment_expression "iVar12 = iVar9" (identifier "iVar12") (= "=") (identifier "iVar9")) (; ";")) (do_statement "do {\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));" (do "do") (compound_statement "{\n              iVar1 = iVar12 - iVar9;\n              iVar2 = iVar12 + (1 - iVar9);\n              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);\n              iVar12 = iVar12 + 1;\n              puVar11[(int)(puVar22 + iVar1)] = *puVar21;\n              puVar21 = puVar22 + iVar2;\n            }" ({ "{") (expression_statement "iVar1 = iVar12 - iVar9;" (assignment_expression "iVar1 = iVar12 - iVar9" (identifier "iVar1") (= "=") (binary_expression "iVar12 - iVar9" (identifier "iVar12") (- "-") (identifier "iVar9"))) (; ";")) (expression_statement "iVar2 = iVar12 + (1 - iVar9);" (assignment_expression "iVar2 = iVar12 + (1 - iVar9)" (identifier "iVar2") (= "=") (binary_expression "iVar12 + (1 - iVar9)" (identifier "iVar12") (+ "+") (parenthesized_expression "(1 - iVar9)" (( "(") (binary_expression "1 - iVar9" (number_literal "1") (- "-") (identifier "iVar9")) () ")")))) (; ";")) (expression_statement "puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);" (assignment_expression "puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12)" (identifier "puVar21") (= "=") (cast_expression "(undefined1 *)(*(int *)puVar5 + iVar12)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)puVar5 + iVar12)" (( "(") (binary_expression "*(int *)puVar5 + iVar12" (pointer_expression "*(int *)puVar5" (* "*") (cast_expression "(int *)puVar5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar5"))) (+ "+") (identifier "iVar12")) () ")")))) (; ";")) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + 1" (identifier "iVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar11[(int)(puVar22 + iVar1)] = *puVar21;" (assignment_expression "puVar11[(int)(puVar22 + iVar1)] = *puVar21" (subscript_expression "puVar11[(int)(puVar22 + iVar1)]" (identifier "puVar11") ([ "[") (cast_expression "(int)(puVar22 + iVar1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar22 + iVar1)" (( "(") (binary_expression "puVar22 + iVar1" (identifier "puVar22") (+ "+") (identifier "iVar1")) () ")"))) (] "]")) (= "=") (pointer_expression "*puVar21" (* "*") (identifier "puVar21"))) (; ";")) (expression_statement "puVar21 = puVar22 + iVar2;" (assignment_expression "puVar21 = puVar22 + iVar2" (identifier "puVar21") (= "=") (binary_expression "puVar22 + iVar2" (identifier "puVar22") (+ "+") (identifier "iVar2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4))" (( "(") (binary_expression "iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4)" (identifier "iVar12") (< "<") (binary_expression "*(int *)puVar6 + *(int *)(puVar6 + 4)" (pointer_expression "*(int *)puVar6" (* "*") (cast_expression "(int *)puVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar6"))) (+ "+") (pointer_expression "*(int *)(puVar6 + 4)" (* "*") (cast_expression "(int *)(puVar6 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 4)" (( "(") (binary_expression "puVar6 + 4" (identifier "puVar6") (+ "+") (number_literal "4")) () ")")))))) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }" (else "else") (compound_statement "{\n          puVar11[(int)puVar22] = cVar19;\n          puVar21 = puVar22 + 1;\n        }" ({ "{") (expression_statement "puVar11[(int)puVar22] = cVar19;" (assignment_expression "puVar11[(int)puVar22] = cVar19" (subscript_expression "puVar11[(int)puVar22]" (identifier "puVar11") ([ "[") (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22")) (] "]")) (= "=") (identifier "cVar19")) (; ";")) (expression_statement "puVar21 = puVar22 + 1;" (assignment_expression "puVar21 = puVar22 + 1" (identifier "puVar21") (= "=") (binary_expression "puVar22 + 1" (identifier "puVar22") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" (identifier "param_2") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar23 = pcVar23 + 1;" (assignment_expression "pcVar23 = pcVar23 + 1" (identifier "pcVar23") (= "=") (binary_expression "pcVar23 + 1" (identifier "pcVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar19 = *pcVar23;" (assignment_expression "cVar19 = *pcVar23" (identifier "cVar19") (= "=") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23"))) (; ";")) (expression_statement "puVar22 = puVar21;" (assignment_expression "puVar22 = puVar21" (identifier "puVar22") (= "=") (identifier "puVar21")) (; ";")) (} "}")))) (} "}"))) (labeled_statement "LAB_00044f3c:\n    puVar22 = puVar11 + (int)puVar22;" (statement_identifier "LAB_00044f3c") (: ":") (expression_statement "puVar22 = puVar11 + (int)puVar22;" (assignment_expression "puVar22 = puVar11 + (int)puVar22" (identifier "puVar22") (= "=") (binary_expression "puVar11 + (int)puVar22" (identifier "puVar11") (+ "+") (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22")))) (; ";"))) (labeled_statement "LAB_00044f40:\n    *puVar22 = 0;" (statement_identifier "LAB_00044f40") (: ":") (expression_statement "*puVar22 = 0;" (assignment_expression "*puVar22 = 0" (pointer_expression "*puVar22" (* "*") (identifier "puVar22")) (= "=") (number_literal "0")) (; ";"))) (if_statement "if (local_2c == *(int *)puVar8) {\n      return puVar11;\n    }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar8)" (( "(") (binary_expression "local_2c == *(int *)puVar8" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar8" (* "*") (cast_expression "(int *)puVar8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar8")))) () ")")) (compound_statement "{\n      return puVar11;\n    }" ({ "{") (return_statement "return puVar11;" (return "return") (identifier "puVar11") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR___stack_chk_fail_000780c0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000780c0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000780c0)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000780c0" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000780c0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000780c0"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_0004536c:\n    iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);" (statement_identifier "LAB_0004536c") (: ":") (expression_statement "iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);" (assignment_expression "iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_mbwidth_00077df0)(pcVar23)" (parenthesized_expression "(*(code *)PTR_mbwidth_00077df0)" (( "(") (pointer_expression "*(code *)PTR_mbwidth_00077df0" (* "*") (cast_expression "(code *)PTR_mbwidth_00077df0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbwidth_00077df0"))) () ")")) (argument_list "(pcVar23)" (( "(") (identifier "pcVar23") () ")")))) (; ";"))) (if_statement "if (iVar9 == 2) {\n      if (param_2 == uVar10) {\n        param_2 = param_2 + 1;\n        *puVar11 = 0x20;\n        puVar22 = (undefined1 *)0x2;\n        puVar21 = puVar11 + 1;\n      }\n      else {\n        puVar22 = (undefined1 *)0x1;\n        puVar21 = puVar11;\n      }\nLAB_000452ec:\n      puVar3 = PTR_parse_mbchar_00077718;\n      *puVar21 = 0x3c;\n      iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n      param_2 = param_2 + 1;\n      pcVar23 = pcVar23 + iVar9;\n      cVar19 = *pcVar23;\n    }\n    else {\nLAB_0004529c:\n      cVar19 = *pcVar23;\n    }" (if "if") (parenthesized_expression "(iVar9 == 2)" (( "(") (binary_expression "iVar9 == 2" (identifier "iVar9") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      if (param_2 == uVar10) {\n        param_2 = param_2 + 1;\n        *puVar11 = 0x20;\n        puVar22 = (undefined1 *)0x2;\n        puVar21 = puVar11 + 1;\n      }\n      else {\n        puVar22 = (undefined1 *)0x1;\n        puVar21 = puVar11;\n      }\nLAB_000452ec:\n      puVar3 = PTR_parse_mbchar_00077718;\n      *puVar21 = 0x3c;\n      iVar9 = (*(code *)puVar3)(pcVar23,0,0);\n      param_2 = param_2 + 1;\n      pcVar23 = pcVar23 + iVar9;\n      cVar19 = *pcVar23;\n    }" ({ "{") (if_statement "if (param_2 == uVar10) {\n        param_2 = param_2 + 1;\n        *puVar11 = 0x20;\n        puVar22 = (undefined1 *)0x2;\n        puVar21 = puVar11 + 1;\n      }\n      else {\n        puVar22 = (undefined1 *)0x1;\n        puVar21 = puVar11;\n      }" (if "if") (parenthesized_expression "(param_2 == uVar10)" (( "(") (binary_expression "param_2 == uVar10" (identifier "param_2") (== "==") (identifier "uVar10")) () ")")) (compound_statement "{\n        param_2 = param_2 + 1;\n        *puVar11 = 0x20;\n        puVar22 = (undefined1 *)0x2;\n        puVar21 = puVar11 + 1;\n      }" ({ "{") (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" (identifier "param_2") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar11 = 0x20;" (assignment_expression "*puVar11 = 0x20" (pointer_expression "*puVar11" (* "*") (identifier "puVar11")) (= "=") (number_literal "0x20")) (; ";")) (expression_statement "puVar22 = (undefined1 *)0x2;" (assignment_expression "puVar22 = (undefined1 *)0x2" (identifier "puVar22") (= "=") (cast_expression "(undefined1 *)0x2" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";")) (expression_statement "puVar21 = puVar11 + 1;" (assignment_expression "puVar21 = puVar11 + 1" (identifier "puVar21") (= "=") (binary_expression "puVar11 + 1" (identifier "puVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n        puVar22 = (undefined1 *)0x1;\n        puVar21 = puVar11;\n      }" (else "else") (compound_statement "{\n        puVar22 = (undefined1 *)0x1;\n        puVar21 = puVar11;\n      }" ({ "{") (expression_statement "puVar22 = (undefined1 *)0x1;" (assignment_expression "puVar22 = (undefined1 *)0x1" (identifier "puVar22") (= "=") (cast_expression "(undefined1 *)0x1" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "puVar21 = puVar11;" (assignment_expression "puVar21 = puVar11" (identifier "puVar21") (= "=") (identifier "puVar11")) (; ";")) (} "}")))) (labeled_statement "LAB_000452ec:\n      puVar3 = PTR_parse_mbchar_00077718;" (statement_identifier "LAB_000452ec") (: ":") (expression_statement "puVar3 = PTR_parse_mbchar_00077718;" (assignment_expression "puVar3 = PTR_parse_mbchar_00077718" (identifier "puVar3") (= "=") (identifier "PTR_parse_mbchar_00077718")) (; ";"))) (expression_statement "*puVar21 = 0x3c;" (assignment_expression "*puVar21 = 0x3c" (pointer_expression "*puVar21" (* "*") (identifier "puVar21")) (= "=") (number_literal "0x3c")) (; ";")) (expression_statement "iVar9 = (*(code *)puVar3)(pcVar23,0,0);" (assignment_expression "iVar9 = (*(code *)puVar3)(pcVar23,0,0)" (identifier "iVar9") (= "=") (call_expression "(*(code *)puVar3)(pcVar23,0,0)" (parenthesized_expression "(*(code *)puVar3)" (( "(") (pointer_expression "*(code *)puVar3" (* "*") (cast_expression "(code *)puVar3" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3"))) () ")")) (argument_list "(pcVar23,0,0)" (( "(") (identifier "pcVar23") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" (identifier "param_2") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar23 = pcVar23 + iVar9;" (assignment_expression "pcVar23 = pcVar23 + iVar9" (identifier "pcVar23") (= "=") (binary_expression "pcVar23 + iVar9" (identifier "pcVar23") (+ "+") (identifier "iVar9"))) (; ";")) (expression_statement "cVar19 = *pcVar23;" (assignment_expression "cVar19 = *pcVar23" (identifier "cVar19") (= "=") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23"))) (; ";")) (} "}")) (else_clause "else {\nLAB_0004529c:\n      cVar19 = *pcVar23;\n    }" (else "else") (compound_statement "{\nLAB_0004529c:\n      cVar19 = *pcVar23;\n    }" ({ "{") (labeled_statement "LAB_0004529c:\n      cVar19 = *pcVar23;" (statement_identifier "LAB_0004529c") (: ":") (expression_statement "cVar19 = *pcVar23;" (assignment_expression "cVar19 = *pcVar23" (identifier "cVar19") (= "=") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23"))) (; ";"))) (} "}")))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (} "}")))

char * function_1(char *var_3,size_t column,size_t span,type_1 isdata)

{
  type_2 *puVar1;
  size_t var_4;
  int var_6;
  int charwidth;
  
  puVar1 = PTR_tabsize_000777bc;
  var_4 = var_1(var_3,column);
  var_2(var_3,var_4);
  var_6 = (*(type_3 *)PTR_strlen_00077ff8)(var_3 + var_4);
                    /* WARNING: Subroutine does not return */
  var_5((*(int *)puVar1 + 6) * var_6 + 1);
}


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

undefined1 * MASKED(int param_1,uint param_2,int param_3,int param_4)

{
  int iVar1;
  int iVar2;
  undefined *puVar3;
  undefined *puVar4;
  undefined *puVar5;
  undefined *puVar6;
  undefined *puVar7;
  undefined *puVar8;
  int iVar9;
  uint uVar10;
  undefined1 *puVar11;
  int iVar12;
  char *pcVar13;
  undefined1 uVar15;
  uint uVar14;
  char cVar19;
  char *pcVar16;
  uint uVar17;
  undefined1 *puVar18;
  undefined1 *puVar20;
  undefined1 *puVar21;
  undefined1 *puVar22;
  char *pcVar23;
  uint uVar24;
  int local_30;
  int local_2c;
  
  puVar8 = PTR___stack_chk_guard_000780f8;
  puVar4 = PTR_tabsize_000777bc;
  uVar24 = param_2 + param_3;
  local_2c = *(int *)PTR___stack_chk_guard_000780f8;
  iVar9 = actual_x();
  pcVar23 = (char *)(param_1 + iVar9);
  uVar10 = strnlenpt(param_1,iVar9);
  iVar9 = (*(code *)PTR_strlen_00077ff8)(pcVar23);
  puVar11 = (undefined1 *)nmalloc((*(int *)puVar4 + 6) * iVar9 + 1);
  cVar19 = *pcVar23;
  if (cVar19 == '\0') {
    puVar22 = (undefined1 *)0x0;
    goto LAB_00044f3c;
  }
  if (cVar19 != '\t') {
    if (uVar10 < param_2) {
      iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);
      if (iVar9 == 0) {
        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);
        if (iVar9 == 2) {
          puVar22 = (undefined1 *)0x1;
          puVar21 = puVar11;
          goto LAB_000452ec;
        }
        cVar19 = *pcVar23;
        puVar22 = (undefined1 *)0x0;
      }
      else {
        param_2 = param_2 + 1;
        puVar22 = (undefined1 *)0x1;
        uVar15 = (*(code *)PTR_control_mbrep_00077df4)(pcVar23,param_4);
        puVar3 = PTR_parse_mbchar_00077718;
        *puVar11 = uVar15;
        iVar9 = (*(code *)puVar3)(pcVar23,0,0);
        pcVar23 = pcVar23 + iVar9;
        cVar19 = *pcVar23;
      }
      goto LAB_00044e7c;
    }
    if (uVar10 != 0) {
      puVar22 = (undefined1 *)0x0;
      if (param_4 == 0) goto LAB_00044e7c;
      if ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0) {
        iVar9 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);
        puVar22 = (undefined1 *)0x0;
        if (iVar9 == 0) goto LAB_0004536c;
        goto LAB_0004529c;
      }
    }
  }
  puVar22 = (undefined1 *)0x0;
LAB_00044e7c:
  do {
    puVar6 = PTR_whitespace_len_000778d4;
    puVar5 = PTR_whitespace_000777fc;
    puVar3 = PTR_flags_0007759c;
    while (cVar19 != '\0') {
      if (param_2 < uVar24) {
        if (cVar19 == ' ') goto LAB_00044fc8;
LAB_00044eac:
        local_30 = 1;
        if (cVar19 == '\t') {
          if (*(int *)puVar3 << 6 < 0) {
            if (((puVar22 == (undefined1 *)0x0) && (param_4 != 0)) &&
               ((*(uint *)(puVar3 + 4) & 2) != 0)) {
              if (*(uint *)puVar4 == 0) {
                trap(7);
              }
              if ((param_2 % *(uint *)puVar4 != 0) && (param_2 != uVar10)) goto LAB_00045094;
            }
            puVar21 = puVar22;
            if (*(int *)puVar6 < 1) goto LAB_000450a0;
            iVar9 = 0;
            do {
              puVar18 = puVar22 + iVar9;
              puVar21 = puVar22 + iVar9 + 1;
              puVar20 = (undefined1 *)(*(int *)puVar5 + iVar9);
              iVar9 = iVar9 + 1;
              puVar11[(int)puVar18] = *puVar20;
            } while (iVar9 < *(int *)puVar6);
            uVar17 = *(uint *)puVar4;
          }
          else {
LAB_00045094:
            puVar11[(int)puVar22] = 0x20;
            puVar21 = puVar22 + 1;
LAB_000450a0:
            uVar17 = *(uint *)puVar4;
          }
          uVar14 = param_2 + 1;
          if (uVar17 == 0) {
            trap(7);
          }
          puVar22 = puVar21;
          if ((uVar14 % uVar17 != 0) && (uVar14 < uVar24)) {
            do {
              puVar22 = puVar21 + (uVar14 - param_2);
              uVar14 = uVar14 + 1;
              (puVar11 + (int)puVar22)[-1] = 0x20;
              if (*(uint *)puVar4 == 0) {
                trap(7);
              }
            } while ((uVar14 % *(uint *)puVar4 != 0) && (uVar14 < uVar24));
          }
          pcVar23 = pcVar23 + 1;
          cVar19 = *pcVar23;
          param_2 = uVar14;
        }
        else {
          iVar9 = (*(code *)PTR_length_of_char_00077dec)(pcVar23,&local_30);
          iVar12 = (*(code *)PTR_is_cntrl_mbchar_0007797c)(pcVar23);
          puVar7 = PTR_control_mbrep_00077df4;
          pcVar16 = puVar11 + (int)puVar22;
          if (iVar12 == 0) {
            pcVar13 = pcVar23 + 1;
            if (iVar9 < 1) {
              *pcVar16 = -0x11;
              puVar11[(int)(puVar22 + 1)] = 0xbf;
              puVar11[(int)(puVar22 + 2)] = 0xbd;
              if (iVar9 < -1) {
                pcVar13 = pcVar13 + iVar9 + 7;
              }
              cVar19 = *pcVar13;
              puVar22 = puVar22 + 3;
              pcVar23 = pcVar13;
              param_2 = param_2 + 1;
            }
            else {
              while( true ) {
                *pcVar16 = pcVar13[-1];
                if (pcVar23 + iVar9 == pcVar13) break;
                pcVar13 = pcVar13 + 1;
                pcVar16 = pcVar16 + 1;
              }
              cVar19 = *pcVar13;
              puVar22 = puVar22 + iVar9;
              pcVar23 = pcVar13;
              param_2 = param_2 + local_30;
            }
          }
          else {
            *pcVar16 = '^';
            uVar15 = (*(code *)puVar7)(pcVar23,param_4);
            pcVar23 = pcVar23 + iVar9;
            puVar11[(int)(puVar22 + 1)] = uVar15;
            cVar19 = *pcVar23;
            puVar22 = puVar22 + 2;
            param_2 = param_2 + 2;
          }
        }
      }
      else {
        iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);
        if (iVar9 != 0) {
          if ((*pcVar23 != '\0') &&
             ((uVar24 = (uint)(uVar24 < param_2), uVar24 != 0 ||
              ((param_4 != 0 && ((*(uint *)(PTR_flags_0007759c + 4) & 2) == 0)))))) {
            pcVar23 = (char *)(*(code *)PTR_move_mbleft_00077c18)(puVar11,puVar22);
            puVar22 = puVar11 + (int)pcVar23;
            iVar9 = (*(code *)PTR_mbwidth_00077df0)(puVar22);
            if (iVar9 == 2) {
              pcVar23 = pcVar23 + 1;
              *puVar22 = 0x3e;
              puVar22 = puVar11 + (int)pcVar23;
            }
            goto LAB_00044f40;
          }
          break;
        }
        cVar19 = *pcVar23;
        if (cVar19 != ' ') goto LAB_00044eac;
LAB_00044fc8:
        local_30 = 1;
        if (*(int *)puVar3 << 6 < 0) {
          iVar9 = *(int *)puVar6;
          puVar21 = puVar22;
          if (0 < *(int *)(puVar6 + 4)) {
            iVar12 = iVar9;
            do {
              iVar1 = iVar12 - iVar9;
              iVar2 = iVar12 + (1 - iVar9);
              puVar21 = (undefined1 *)(*(int *)puVar5 + iVar12);
              iVar12 = iVar12 + 1;
              puVar11[(int)(puVar22 + iVar1)] = *puVar21;
              puVar21 = puVar22 + iVar2;
            } while (iVar12 < *(int *)puVar6 + *(int *)(puVar6 + 4));
          }
        }
        else {
          puVar11[(int)puVar22] = cVar19;
          puVar21 = puVar22 + 1;
        }
        param_2 = param_2 + 1;
        pcVar23 = pcVar23 + 1;
        cVar19 = *pcVar23;
        puVar22 = puVar21;
      }
    }
LAB_00044f3c:
    puVar22 = puVar11 + (int)puVar22;
LAB_00044f40:
    *puVar22 = 0;
    if (local_2c == *(int *)puVar8) {
      return puVar11;
    }
    (*(code *)PTR___stack_chk_fail_000780c0)();
LAB_0004536c:
    iVar9 = (*(code *)PTR_mbwidth_00077df0)(pcVar23);
    if (iVar9 == 2) {
      if (param_2 == uVar10) {
        param_2 = param_2 + 1;
        *puVar11 = 0x20;
        puVar22 = (undefined1 *)0x2;
        puVar21 = puVar11 + 1;
      }
      else {
        puVar22 = (undefined1 *)0x1;
        puVar21 = puVar11;
      }
LAB_000452ec:
      puVar3 = PTR_parse_mbchar_00077718;
      *puVar21 = 0x3c;
      iVar9 = (*(code *)puVar3)(pcVar23,0,0);
      param_2 = param_2 + 1;
      pcVar23 = pcVar23 + iVar9;
      cVar19 = *pcVar23;
    }
    else {
LAB_0004529c:
      cVar19 = *pcVar23;
    }
  } while( true );
}

