
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */
/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */

int * d_unqualified_name(int param_1)

{
  undefined *puVar1;
  uint uVar2;
  int *piVar3;
  int iVar4;
  int iVar5;
  int *piVar6;
  int iVar7;
  undefined4 uVar8;
  byte *pbVar9;
  int iVar10;
  undefined *puVar11;
  int iVar12;
  byte bVar13;
  
  pbVar9 = *(byte **)(param_1 + 0xc);
  bVar13 = *pbVar9;
  uVar2 = (uint)bVar13;
  if (uVar2 - 0x30 < 10) {
    piVar3 = (int *)d_source_name();
    bVar13 = **(byte **)(param_1 + 0xc);
    goto joined_r0x003de0b0;
  }
  if (uVar2 - 0x61 < 0x1a) {
    if ((bVar13 == 0x6f) && (pbVar9[1] == 0x6e)) {
      *(byte **)(param_1 + 0xc) = pbVar9 + 2;
    }
    piVar3 = (int *)d_operator_name(param_1);
    puVar1 = PTR_strcmp_004c5a68;
    if ((piVar3 != (int *)0x0) && (*piVar3 == 0x31)) {
      uVar8 = *(undefined4 *)piVar3[2];
      puVar11 = PTR_UINT_004c12dc + -0x57c0;
      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];
      iVar4 = (*(code *)puVar1)(uVar8,puVar11);
      if (iVar4 == 0) {
        uVar8 = d_source_name(param_1);
        piVar3 = (int *)d_make_comp(param_1,0x36,piVar3,uVar8);
        bVar13 = **(byte **)(param_1 + 0xc);
        goto joined_r0x003de0b0;
      }
    }
  }
  else {
    if (uVar2 - 0x43 < 2) {
      piVar6 = *(int **)(param_1 + 0x28);
      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {
        if (bVar13 == 0x44) goto LAB_003de2a0;
      }
      else {
        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];
        bVar13 = *pbVar9;
        if (bVar13 != 0x43) {
          piVar3 = (int *)0x0;
          if (bVar13 != 0x44) goto joined_r0x003de0b0;
LAB_003de2a0:
          uVar2 = pbVar9[1] - 0x30 & 0xff;
          if (uVar2 < 6) {
                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */
                    /* WARNING: Treating indirect jump as call */
            piVar3 = (int *)(*(code *)(&gold::Position_dependent_options::default_options_.relax_.
                                        user_set_via_option +
                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)))();
            return piVar3;
          }
          piVar3 = (int *)0x0;
          goto joined_r0x003de0b0;
        }
      }
      puVar1 = PTR_UINT_004c12dc;
      if ((char)pbVar9[1] == 0x49) {
        *(byte **)(param_1 + 0xc) = pbVar9 + 1;
        puVar1 = PTR_UINT_004c12dc;
        uVar2 = pbVar9[2] - 0x31 & 0xff;
        if (4 < uVar2) {
          bVar13 = pbVar9[1];
          piVar3 = (int *)0x0;
          goto joined_r0x003de0b0;
        }
        *(byte **)(param_1 + 0xc) = pbVar9 + 3;
        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);
        d_type(param_1);
        piVar6 = *(int **)(param_1 + 0x28);
        pbVar9 = *(byte **)(param_1 + 0xc);
      }
      else {
        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;
        if (4 < uVar2) {
          return (int *)0x0;
        }
        pbVar9 = pbVar9 + 2;
        *(byte **)(param_1 + 0xc) = pbVar9;
        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);
      }
      iVar5 = *(int *)(param_1 + 0x14);
      if (iVar5 < *(int *)(param_1 + 0x18)) {
        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);
        piVar3[1] = 0;
        *(int *)(param_1 + 0x14) = iVar5 + 1;
        if (piVar6 != (int *)0x0) {
          piVar3[1] = 0;
          piVar3[2] = iVar4;
          *piVar3 = 7;
          piVar3[3] = (int)piVar6;
          bVar13 = *pbVar9;
          goto joined_r0x003de0b0;
        }
      }
      bVar13 = *pbVar9;
      piVar3 = (int *)0x0;
      goto joined_r0x003de0b0;
    }
    if (bVar13 != 0x4c) {
      if (bVar13 != 0x55) {
        return (int *)0x0;
      }
      if (pbVar9[1] == 0x6c) {
        *(byte **)(param_1 + 0xc) = pbVar9 + 1;
        bVar13 = pbVar9[1];
        if (bVar13 == 0x6c) {
          *(byte **)(param_1 + 0xc) = pbVar9 + 2;
          iVar4 = d_parmlist();
          if (iVar4 != 0) {
            bVar13 = **(byte **)(param_1 + 0xc);
            if (bVar13 != 0x45) goto LAB_003de1ac;
            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;
            iVar5 = d_compact_number(param_1);
            if (-1 < iVar5) {
              iVar10 = *(int *)(param_1 + 0x14);
              pbVar9 = *(byte **)(param_1 + 0xc);
              if (iVar10 < *(int *)(param_1 + 0x18)) {
                iVar7 = *(int *)(param_1 + 0x20);
                iVar12 = *(int *)(param_1 + 0x24);
                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);
                piVar3[1] = 0;
                *(int *)(param_1 + 0x14) = iVar10 + 1;
                piVar3[2] = iVar4;
                *piVar3 = 0x45;
                piVar3[3] = iVar5;
                if (iVar7 < iVar12) goto LAB_003de070;
              }
              goto LAB_003de404;
            }
          }
LAB_003de468:
          piVar3 = (int *)0x0;
          bVar13 = **(byte **)(param_1 + 0xc);
          goto joined_r0x003de0b0;
        }
      }
      else {
        if (pbVar9[1] != 0x74) {
          return (int *)0x0;
        }
        *(byte **)(param_1 + 0xc) = pbVar9 + 1;
        bVar13 = pbVar9[1];
        if (bVar13 == 0x74) {
          *(byte **)(param_1 + 0xc) = pbVar9 + 2;
          iVar4 = d_compact_number();
          if (-1 < iVar4) {
            iVar5 = *(int *)(param_1 + 0x14);
            if (iVar5 < *(int *)(param_1 + 0x18)) {
              iVar7 = *(int *)(param_1 + 0x20);
              iVar10 = *(int *)(param_1 + 0x24);
              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);
              pbVar9 = *(byte **)(param_1 + 0xc);
              piVar3[1] = 0;
              *(int *)(param_1 + 0x14) = iVar5 + 1;
              piVar3[2] = iVar4;
              *piVar3 = 0x47;
              if (iVar7 < iVar10) {
LAB_003de070:
                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;
                *(int *)(param_1 + 0x20) = iVar7 + 1;
                bVar13 = *pbVar9;
                goto joined_r0x003de0b0;
              }
LAB_003de404:
              bVar13 = *pbVar9;
              piVar3 = (int *)0x0;
              goto joined_r0x003de0b0;
            }
          }
          goto LAB_003de468;
        }
      }
LAB_003de1ac:
      piVar3 = (int *)0x0;
      goto joined_r0x003de0b0;
    }
    *(byte **)(param_1 + 0xc) = pbVar9 + 1;
    piVar3 = (int *)d_source_name();
    if (piVar3 == (int *)0x0) {
      return (int *)0x0;
    }
    iVar4 = d_discriminator(param_1);
    if (iVar4 == 0) {
      return (int *)0x0;
    }
  }
  bVar13 = **(byte **)(param_1 + 0xc);
joined_r0x003de0b0:
  if (bVar13 != 0x42) {
    return piVar3;
  }
  piVar3 = (int *)d_abi_tags(param_1,piVar3);
  return piVar3;
}



int * FUN_003ddf14(int param_1)

{
  undefined *puVar1;
  uint uVar2;
  int *piVar3;
  int iVar4;
  int iVar5;
  int *piVar6;
  int iVar7;
  undefined4 uVar8;
  byte *pbVar9;
  int iVar10;
  undefined *puVar11;
  int iVar12;
  byte bVar13;
  
  pbVar9 = *(byte **)(param_1 + 0xc);
  bVar13 = *pbVar9;
  uVar2 = (uint)bVar13;
  if (uVar2 - 0x30 < 10) {
    piVar3 = (int *)FUN_003da8b0();
    bVar13 = **(byte **)(param_1 + 0xc);
    goto joined_r0x003de0b0;
  }
  if (uVar2 - 0x61 < 0x1a) {
    if ((bVar13 == 0x6f) && (pbVar9[1] == 0x6e)) {
      *(byte **)(param_1 + 0xc) = pbVar9 + 2;
    }
    piVar3 = (int *)FUN_003dd6ac(param_1);
    puVar1 = PTR_strcmp_004c5a68;
    if ((piVar3 != (int *)0x0) && (*piVar3 == 0x31)) {
      uVar8 = *(undefined4 *)piVar3[2];
      puVar11 = PTR_UINT_004c12dc + -0x57c0;
      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];
      iVar4 = (*(code *)puVar1)(uVar8,puVar11);
      if (iVar4 == 0) {
        uVar8 = FUN_003da8b0(param_1);
        piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8);
        bVar13 = **(byte **)(param_1 + 0xc);
        goto joined_r0x003de0b0;
      }
    }
  }
  else {
    if (uVar2 - 0x43 < 2) {
      piVar6 = *(int **)(param_1 + 0x28);
      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {
        if (bVar13 == 0x44) goto LAB_003de2a0;
      }
      else {
        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];
        bVar13 = *pbVar9;
        if (bVar13 != 0x43) {
          piVar3 = (int *)0x0;
          if (bVar13 != 0x44) goto joined_r0x003de0b0;
LAB_003de2a0:
          uVar2 = pbVar9[1] - 0x30 & 0xff;
          if (uVar2 < 6) {
                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */
                    /* WARNING: Treating indirect jump as call */
            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +
                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();
            return piVar3;
          }
          piVar3 = (int *)0x0;
          goto joined_r0x003de0b0;
        }
      }
      puVar1 = PTR_UINT_004c12dc;
      if ((char)pbVar9[1] == 0x49) {
        *(byte **)(param_1 + 0xc) = pbVar9 + 1;
        puVar1 = PTR_UINT_004c12dc;
        uVar2 = pbVar9[2] - 0x31 & 0xff;
        if (4 < uVar2) {
          bVar13 = pbVar9[1];
          piVar3 = (int *)0x0;
          goto joined_r0x003de0b0;
        }
        *(byte **)(param_1 + 0xc) = pbVar9 + 3;
        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);
        FUN_003dc9d0(param_1);
        piVar6 = *(int **)(param_1 + 0x28);
        pbVar9 = *(byte **)(param_1 + 0xc);
      }
      else {
        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;
        if (4 < uVar2) {
          return (int *)0x0;
        }
        pbVar9 = pbVar9 + 2;
        *(byte **)(param_1 + 0xc) = pbVar9;
        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);
      }
      iVar5 = *(int *)(param_1 + 0x14);
      if (iVar5 < *(int *)(param_1 + 0x18)) {
        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);
        piVar3[1] = 0;
        *(int *)(param_1 + 0x14) = iVar5 + 1;
        if (piVar6 != (int *)0x0) {
          piVar3[1] = 0;
          piVar3[2] = iVar4;
          *piVar3 = 7;
          piVar3[3] = (int)piVar6;
          bVar13 = *pbVar9;
          goto joined_r0x003de0b0;
        }
      }
      bVar13 = *pbVar9;
      piVar3 = (int *)0x0;
      goto joined_r0x003de0b0;
    }
    if (bVar13 != 0x4c) {
      if (bVar13 != 0x55) {
        return (int *)0x0;
      }
      if (pbVar9[1] == 0x6c) {
        *(byte **)(param_1 + 0xc) = pbVar9 + 1;
        bVar13 = pbVar9[1];
        if (bVar13 == 0x6c) {
          *(byte **)(param_1 + 0xc) = pbVar9 + 2;
          iVar4 = FUN_003dd8b0();
          if (iVar4 != 0) {
            bVar13 = **(byte **)(param_1 + 0xc);
            if (bVar13 != 0x45) goto LAB_003de1ac;
            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;
            iVar5 = FUN_003da780(param_1);
            if (-1 < iVar5) {
              iVar10 = *(int *)(param_1 + 0x14);
              pbVar9 = *(byte **)(param_1 + 0xc);
              if (iVar10 < *(int *)(param_1 + 0x18)) {
                iVar7 = *(int *)(param_1 + 0x20);
                iVar12 = *(int *)(param_1 + 0x24);
                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);
                piVar3[1] = 0;
                *(int *)(param_1 + 0x14) = iVar10 + 1;
                piVar3[2] = iVar4;
                *piVar3 = 0x45;
                piVar3[3] = iVar5;
                if (iVar7 < iVar12) goto LAB_003de070;
              }
              goto LAB_003de404;
            }
          }
LAB_003de468:
          piVar3 = (int *)0x0;
          bVar13 = **(byte **)(param_1 + 0xc);
          goto joined_r0x003de0b0;
        }
      }
      else {
        if (pbVar9[1] != 0x74) {
          return (int *)0x0;
        }
        *(byte **)(param_1 + 0xc) = pbVar9 + 1;
        bVar13 = pbVar9[1];
        if (bVar13 == 0x74) {
          *(byte **)(param_1 + 0xc) = pbVar9 + 2;
          iVar4 = FUN_003da780();
          if (-1 < iVar4) {
            iVar5 = *(int *)(param_1 + 0x14);
            if (iVar5 < *(int *)(param_1 + 0x18)) {
              iVar7 = *(int *)(param_1 + 0x20);
              iVar10 = *(int *)(param_1 + 0x24);
              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);
              pbVar9 = *(byte **)(param_1 + 0xc);
              piVar3[1] = 0;
              *(int *)(param_1 + 0x14) = iVar5 + 1;
              piVar3[2] = iVar4;
              *piVar3 = 0x47;
              if (iVar7 < iVar10) {
LAB_003de070:
                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;
                *(int *)(param_1 + 0x20) = iVar7 + 1;
                bVar13 = *pbVar9;
                goto joined_r0x003de0b0;
              }
LAB_003de404:
              bVar13 = *pbVar9;
              piVar3 = (int *)0x0;
              goto joined_r0x003de0b0;
            }
          }
          goto LAB_003de468;
        }
      }
LAB_003de1ac:
      piVar3 = (int *)0x0;
      goto joined_r0x003de0b0;
    }
    *(byte **)(param_1 + 0xc) = pbVar9 + 1;
    piVar3 = (int *)FUN_003da8b0();
    if (piVar3 == (int *)0x0) {
      return (int *)0x0;
    }
    iVar4 = FUN_003daf14(param_1);
    if (iVar4 == 0) {
      return (int *)0x0;
    }
  }
  bVar13 = **(byte **)(param_1 + 0xc);
joined_r0x003de0b0:
  if (bVar13 != 0x42) {
    return piVar3;
  }
  piVar3 = (int *)FUN_003daab4(param_1,piVar3);
  return piVar3;
}


lui gp,0xf
addiu gp,gp,-0x4cd4
addu gp,gp,t9
addiu sp,sp,-0x28
lw a1,0xc(a0)
sw s0,0x18(sp)
sw gp,0x10(sp)
sw ra,0x24(sp)
sw s2,0x20(sp)
sw s1,0x1c(sp)
lb a2,0x0(a1)
andi v0,a2,0xff
addiu v1,v0,-0x30
sltiu v1,v1,0xa
bne v1,zero,0x003de090
_or s0,a0,zero
addiu v1,v0,-0x61
sltiu v1,v1,0x1a
beq v1,zero,0x003ddfcc
_addiu v0,v0,-0x43
li v0,0x6f
beq a2,v0,0x003de1b4
_li v0,0x6e
lw t9,-0x398c(gp)
addiu t9,t9,-0x2954
bal 0x003dd6ac
_or a0,s0,zero
lw gp,0x10(sp)
beq v0,zero,0x003ddf9c
_or s1,v0,zero
lw v1,0x0(v0)
li v0,0x31
beq v1,v0,0x003de0e0
_lw a1,-0x7f64(gp)
lw v0,0xc(s0)
lb v0,0x0(v0)
li v1,0x42
beq v0,v1,0x003de0bc
_lw t9,-0x398c(gp)
lw ra,0x24(sp)
or v0,s1,zero
lw s2,0x20(sp)
lw s1,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x28
sltiu v0,v0,0x2
bne v0,zero,0x003de1cc
_li v0,0x4c
beq a2,v0,0x003de154
_li v0,0x55
bne a2,v0,0x003de18c
_li v0,0x6c
lb v1,0x1(a1)
beq v1,v0,0x003de358
_li v0,0x74
bne v1,v0,0x003de190
_lw ra,0x24(sp)
addiu v0,a1,0x1
sw v0,0xc(a0)
lb v0,0x1(a1)
bne v0,v1,0x003de1ac
_lw t9,-0x398c(gp)
addiu a1,a1,0x2
addiu t9,t9,-0x5880
bal 0x003da780
_sw a1,0xc(a0)
bltz v0,0x003de468
_lw gp,0x10(sp)
lw v1,0x14(s0)
lw a0,0x18(s0)
slt a0,v1,a0
beq a0,zero,0x003de468
_sll a2,v1,0x4
lw s1,0x10(s0)
lw a0,0x20(s0)
addiu v1,v1,0x1
lw a1,0x24(s0)
addu s1,s1,a2
lw a2,0xc(s0)
slt a1,a0,a1
sw zero,0x4(s1)
sw v1,0x14(s0)
li v1,0x47
sw v0,0x8(s1)
beq a1,zero,0x003de404
_sw v1,0x0(s1)
lw v0,0x1c(s0)
sll v1,a0,0x2
addiu a0,a0,0x1
addu v0,v0,v1
sw s1,0x0(v0)
sw a0,0x20(s0)
b 0x003ddfa4
_lb v0,0x0(a2)
lw t9,-0x398c(gp)
addiu t9,t9,-0x5750
bal 0x003da8b0
_nop
lw v1,0xc(s0)
or s1,v0,zero
lb v0,0x0(v1)
li v1,0x42
bne v0,v1,0x003ddfb0
_lw gp,0x10(sp)
lw t9,-0x398c(gp)
or a1,s1,zero
lw ra,0x24(sp)
or a0,s0,zero
lw s2,0x20(sp)
lw s1,0x1c(sp)
addiu t9,t9,-0x554c
lw s0,0x18(sp)
b 0x003daab4
_addiu sp,sp,0x28
lw v1,0x8(s1)
lw v0,0x2c(s0)
lw t9,-0x37d8(gp)
lw a2,0x8(v1)
addiu v0,v0,0x7
lw a0,0x0(v1)
addiu a1,a1,-0x57c0
addu v0,v0,a2
jalr t9
_sw v0,0x2c(s0)
bne v0,zero,0x003ddf9c
_lw gp,0x10(sp)
lw t9,-0x398c(gp)
addiu t9,t9,-0x5750
bal 0x003da8b0
_or a0,s0,zero
li a1,0x36
lw gp,0x10(sp)
or a2,s1,zero
or a3,v0,zero
lw t9,-0x398c(gp)
addiu t9,t9,-0x5cd0
bal 0x003da330
_or a0,s0,zero
lw v1,0xc(s0)
or s1,v0,zero
lw gp,0x10(sp)
b 0x003ddfa4
_lb v0,0x0(v1)
lw t9,-0x398c(gp)
addiu a1,a1,0x1
addiu t9,t9,-0x5750
bal 0x003da8b0
_sw a1,0xc(a0)
lw gp,0x10(sp)
beq v0,zero,0x003de18c
_or s1,v0,zero
lw t9,-0x398c(gp)
addiu t9,t9,-0x50ec
bal 0x003daf14
_or a0,s0,zero
bne v0,zero,0x003ddf9c
_lw gp,0x10(sp)
lw ra,0x24(sp)
or s1,zero,zero
lw s2,0x20(sp)
or v0,s1,zero
lw s0,0x18(sp)
lw s1,0x1c(sp)
jr ra
_addiu sp,sp,0x28
b 0x003ddfa4
_or s1,zero,zero
lb v1,0x1(a1)
bne v1,v0,0x003ddf74
_lw t9,-0x398c(gp)
addiu a1,a1,0x2
b 0x003ddf74
_sw a1,0xc(a0)
lw v1,0x28(a0)
beq v1,zero,0x003de1ec
_li v0,0x44
lw v0,0x0(v1)
beq v0,zero,0x003de274
_li a0,0x18
beq v0,a0,0x003de274
_li v0,0x44
beq a2,v0,0x003de2a0
_nop
lb v0,0x1(a1)
li a0,0x49
beq v0,a0,0x003de410
_addiu v0,v0,-0x31
andi v0,v0,0xff
sltiu a0,v0,0x5
beq a0,zero,0x003de18c
_sll v0,v0,0x2
lw a0,-0x7f64(gp)
addiu a1,a1,0x2
addiu a0,a0,0x538
sw a1,0xc(s0)
addu v0,v0,a0
lw s2,0x0(v0)
lw v0,0x14(s0)
lw a0,0x18(s0)
slt a0,v0,a0
beq a0,zero,0x003de484
_sll a2,v0,0x4
lw s1,0x10(s0)
addiu v0,v0,0x1
addu s1,s1,a2
sw zero,0x4(s1)
beq v1,zero,0x003de484
_sw v0,0x14(s0)
li v0,0x7
sw zero,0x4(s1)
sw s2,0x8(s1)
sw v0,0x0(s1)
sw v1,0xc(s1)
b 0x003ddfa4
_lb v0,0x0(a1)
lw a0,0xc(v1)
lw v0,0x2c(s0)
addu v0,v0,a0
li a0,0x43
sw v0,0x2c(s0)
lb v0,0x0(a1)
beq v0,a0,0x003de1f4
_or a2,v0,zero
li a0,0x44
bne v0,a0,0x003ddfa4
_or s1,zero,zero
lbu v0,0x1(a1)
addiu v0,v0,-0x30
andi v0,v0,0xff
sltiu a0,v0,0x6
beq a0,zero,0x003de34c
_nop
lw a0,-0x7f64(gp)
sll v0,v0,0x2
addiu a0,a0,0x100
addu v0,a0,v0
lw v0,0x0(v0)
addu v0,v0,gp
jr v0
_nop
li a3,0x1
lw v0,0x14(s0)
addiu a2,a1,0x2
lw a0,0x18(s0)
slt a0,v0,a0
beq a0,zero,0x003de478
_sw a2,0xc(s0)
lw s1,0x10(s0)
sll a2,v0,0x4
addiu v0,v0,0x1
addu s1,s1,a2
sw zero,0x4(s1)
beq v1,zero,0x003de478
_sw v0,0x14(s0)
li v0,0x8
sw zero,0x4(s1)
sw a3,0x8(s1)
sw v0,0x0(s1)
sw v1,0xc(s1)
b 0x003ddfa4
_lb v0,0x2(a1)
b 0x003de2dc
_li a3,0x4
b 0x003de2dc
_li a3,0x3
b 0x003de2dc
_li a3,0x5
b 0x003de2dc
_li a3,0x2
or v0,a2,zero
b 0x003ddfa4
_or s1,zero,zero
addiu v0,a1,0x1
sw v0,0xc(a0)
lb v0,0x1(a1)
bne v0,v1,0x003de1ac
_lw t9,-0x398c(gp)
addiu a1,a1,0x2
addiu t9,t9,-0x2750
bal 0x003dd8b0
_sw a1,0xc(a0)
lw gp,0x10(sp)
beq v0,zero,0x003de468
_or t7,v0,zero
lw v1,0xc(s0)
li a0,0x45
lb v0,0x0(v1)
bne v0,a0,0x003de1ac
_lw t9,-0x398c(gp)
addiu v1,v1,0x1
or a0,s0,zero
addiu t9,t9,-0x5880
bal 0x003da780
_sw v1,0xc(s0)
bltz v0,0x003de468
_lw gp,0x10(sp)
lw v1,0x14(s0)
lw a0,0x18(s0)
slt a0,v1,a0
beq a0,zero,0x003de404
_lw a2,0xc(s0)
lw s1,0x10(s0)
sll a3,v1,0x4
lw a0,0x20(s0)
addiu v1,v1,0x1
lw a1,0x24(s0)
addu s1,s1,a3
slt a1,a0,a1
sw zero,0x4(s1)
sw v1,0x14(s0)
li v1,0x45
sw t7,0x8(s1)
sw v1,0x0(s1)
bne a1,zero,0x003de070
_sw v0,0xc(s1)
lb v0,0x0(a2)
b 0x003ddfa4
_or s1,zero,zero
addiu v0,a1,0x1
sw v0,0xc(s0)
lbu v0,0x2(a1)
addiu v0,v0,-0x31
andi v0,v0,0xff
sltiu v1,v0,0x5
beq v1,zero,0x003de490
_lw v1,-0x7f64(gp)
sll v0,v0,0x2
lw t9,-0x398c(gp)
addiu a1,a1,0x3
or a0,s0,zero
addiu v1,v1,0x538
sw a1,0xc(s0)
addiu t9,t9,-0x3630
addu v0,v0,v1
bal 0x003dc9d0
_lw s2,0x0(v0)
lw gp,0x10(sp)
lw v1,0x28(s0)
b 0x003de22c
_lw a1,0xc(s0)
lw v0,0xc(s0)
or s1,zero,zero
b 0x003ddfa4
_lb v0,0x0(v0)
lb v0,0x2(a1)
b 0x003ddfa4
_or s1,zero,zero
lb v0,0x0(a1)
b 0x003ddfa4
_or s1,zero,zero
lb v0,0x1(a1)
b 0x003ddfa4
_or s1,zero,zero
(translation_unit "int * FUN_003ddf14(int param_1)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  undefined4 uVar8;\n  byte *pbVar9;\n  int iVar10;\n  undefined *puVar11;\n  int iVar12;\n  byte bVar13;\n  \n  pbVar9 = *(byte **)(param_1 + 0xc);\n  bVar13 = *pbVar9;\n  uVar2 = (uint)bVar13;\n  if (uVar2 - 0x30 < 10) {\n    piVar3 = (int *)FUN_003da8b0();\n    bVar13 = **(byte **)(param_1 + 0xc);\n    goto joined_r0x003de0b0;\n  }\n  if (uVar2 - 0x61 < 0x1a) {\n    if ((bVar13 == 0x6f) && (pbVar9[1] == 0x6e)) {\n      *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n    }\n    piVar3 = (int *)FUN_003dd6ac(param_1);\n    puVar1 = PTR_strcmp_004c5a68;\n    if ((piVar3 != (int *)0x0) && (*piVar3 == 0x31)) {\n      uVar8 = *(undefined4 *)piVar3[2];\n      puVar11 = PTR_UINT_004c12dc + -0x57c0;\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];\n      iVar4 = (*(code *)puVar1)(uVar8,puVar11);\n      if (iVar4 == 0) {\n        uVar8 = FUN_003da8b0(param_1);\n        piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }\n    }\n  }\n  else {\n    if (uVar2 - 0x43 < 2) {\n      piVar6 = *(int **)(param_1 + 0x28);\n      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */\n                    /* WARNING: Treating indirect jump as call */\n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }\n      puVar1 = PTR_UINT_004c12dc;\n      if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        FUN_003dc9d0(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }\n      iVar5 = *(int *)(param_1 + 0x14);\n      if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }\n      bVar13 = *pbVar9;\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    if (bVar13 != 0x4c) {\n      if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }\n      if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }\nLAB_003de1ac:\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n    piVar3 = (int *)FUN_003da8b0();\n    if (piVar3 == (int *)0x0) {\n      return (int *)0x0;\n    }\n    iVar4 = FUN_003daf14(param_1);\n    if (iVar4 == 0) {\n      return (int *)0x0;\n    }\n  }\n  bVar13 = **(byte **)(param_1 + 0xc);\njoined_r0x003de0b0:\n  if (bVar13 != 0x42) {\n    return piVar3;\n  }\n  piVar3 = (int *)FUN_003daab4(param_1,piVar3);\n  return piVar3;\n}\n\n" (function_definition "int * FUN_003ddf14(int param_1)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  undefined4 uVar8;\n  byte *pbVar9;\n  int iVar10;\n  undefined *puVar11;\n  int iVar12;\n  byte bVar13;\n  \n  pbVar9 = *(byte **)(param_1 + 0xc);\n  bVar13 = *pbVar9;\n  uVar2 = (uint)bVar13;\n  if (uVar2 - 0x30 < 10) {\n    piVar3 = (int *)FUN_003da8b0();\n    bVar13 = **(byte **)(param_1 + 0xc);\n    goto joined_r0x003de0b0;\n  }\n  if (uVar2 - 0x61 < 0x1a) {\n    if ((bVar13 == 0x6f) && (pbVar9[1] == 0x6e)) {\n      *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n    }\n    piVar3 = (int *)FUN_003dd6ac(param_1);\n    puVar1 = PTR_strcmp_004c5a68;\n    if ((piVar3 != (int *)0x0) && (*piVar3 == 0x31)) {\n      uVar8 = *(undefined4 *)piVar3[2];\n      puVar11 = PTR_UINT_004c12dc + -0x57c0;\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];\n      iVar4 = (*(code *)puVar1)(uVar8,puVar11);\n      if (iVar4 == 0) {\n        uVar8 = FUN_003da8b0(param_1);\n        piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }\n    }\n  }\n  else {\n    if (uVar2 - 0x43 < 2) {\n      piVar6 = *(int **)(param_1 + 0x28);\n      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */\n                    /* WARNING: Treating indirect jump as call */\n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }\n      puVar1 = PTR_UINT_004c12dc;\n      if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        FUN_003dc9d0(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }\n      iVar5 = *(int *)(param_1 + 0x14);\n      if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }\n      bVar13 = *pbVar9;\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    if (bVar13 != 0x4c) {\n      if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }\n      if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }\nLAB_003de1ac:\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n    piVar3 = (int *)FUN_003da8b0();\n    if (piVar3 == (int *)0x0) {\n      return (int *)0x0;\n    }\n    iVar4 = FUN_003daf14(param_1);\n    if (iVar4 == 0) {\n      return (int *)0x0;\n    }\n  }\n  bVar13 = **(byte **)(param_1 + 0xc);\njoined_r0x003de0b0:\n  if (bVar13 != 0x42) {\n    return piVar3;\n  }\n  piVar3 = (int *)FUN_003daab4(param_1,piVar3);\n  return piVar3;\n}" primitive_type (pointer_declarator "* FUN_003ddf14(int param_1)" * (function_declarator "FUN_003ddf14(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) )))) (compound_statement "{\n  undefined *puVar1;\n  uint uVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  undefined4 uVar8;\n  byte *pbVar9;\n  int iVar10;\n  undefined *puVar11;\n  int iVar12;\n  byte bVar13;\n  \n  pbVar9 = *(byte **)(param_1 + 0xc);\n  bVar13 = *pbVar9;\n  uVar2 = (uint)bVar13;\n  if (uVar2 - 0x30 < 10) {\n    piVar3 = (int *)FUN_003da8b0();\n    bVar13 = **(byte **)(param_1 + 0xc);\n    goto joined_r0x003de0b0;\n  }\n  if (uVar2 - 0x61 < 0x1a) {\n    if ((bVar13 == 0x6f) && (pbVar9[1] == 0x6e)) {\n      *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n    }\n    piVar3 = (int *)FUN_003dd6ac(param_1);\n    puVar1 = PTR_strcmp_004c5a68;\n    if ((piVar3 != (int *)0x0) && (*piVar3 == 0x31)) {\n      uVar8 = *(undefined4 *)piVar3[2];\n      puVar11 = PTR_UINT_004c12dc + -0x57c0;\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];\n      iVar4 = (*(code *)puVar1)(uVar8,puVar11);\n      if (iVar4 == 0) {\n        uVar8 = FUN_003da8b0(param_1);\n        piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }\n    }\n  }\n  else {\n    if (uVar2 - 0x43 < 2) {\n      piVar6 = *(int **)(param_1 + 0x28);\n      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */\n                    /* WARNING: Treating indirect jump as call */\n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }\n      puVar1 = PTR_UINT_004c12dc;\n      if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        FUN_003dc9d0(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }\n      iVar5 = *(int *)(param_1 + 0x14);\n      if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }\n      bVar13 = *pbVar9;\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    if (bVar13 != 0x4c) {\n      if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }\n      if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }\nLAB_003de1ac:\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n    piVar3 = (int *)FUN_003da8b0();\n    if (piVar3 == (int *)0x0) {\n      return (int *)0x0;\n    }\n    iVar4 = FUN_003daf14(param_1);\n    if (iVar4 == 0) {\n      return (int *)0x0;\n    }\n  }\n  bVar13 = **(byte **)(param_1 + 0xc);\njoined_r0x003de0b0:\n  if (bVar13 != 0x42) {\n    return piVar3;\n  }\n  piVar3 = (int *)FUN_003daab4(param_1,piVar3);\n  return piVar3;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "byte bVar13;" type_identifier identifier ;) (expression_statement "pbVar9 = *(byte **)(param_1 + 0xc);" (assignment_expression "pbVar9 = *(byte **)(param_1 + 0xc)" identifier = (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "bVar13 = *pbVar9;" (assignment_expression "bVar13 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) (expression_statement "uVar2 = (uint)bVar13;" (assignment_expression "uVar2 = (uint)bVar13" identifier = (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar2 - 0x30 < 10) {\n    piVar3 = (int *)FUN_003da8b0();\n    bVar13 = **(byte **)(param_1 + 0xc);\n    goto joined_r0x003de0b0;\n  }" if (parenthesized_expression "(uVar2 - 0x30 < 10)" ( (binary_expression "uVar2 - 0x30 < 10" (binary_expression "uVar2 - 0x30" identifier - number_literal) < number_literal) )) (compound_statement "{\n    piVar3 = (int *)FUN_003da8b0();\n    bVar13 = **(byte **)(param_1 + 0xc);\n    goto joined_r0x003de0b0;\n  }" { (expression_statement "piVar3 = (int *)FUN_003da8b0();" (assignment_expression "piVar3 = (int *)FUN_003da8b0()" identifier = (cast_expression "(int *)FUN_003da8b0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003da8b0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "bVar13 = **(byte **)(param_1 + 0xc);" (assignment_expression "bVar13 = **(byte **)(param_1 + 0xc)" identifier = (pointer_expression "**(byte **)(param_1 + 0xc)" * (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))))) ;) (goto_statement "goto joined_r0x003de0b0;" goto statement_identifier ;) })) (if_statement "if (uVar2 - 0x61 < 0x1a) {\n    if ((bVar13 == 0x6f) && (pbVar9[1] == 0x6e)) {\n      *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n    }\n    piVar3 = (int *)FUN_003dd6ac(param_1);\n    puVar1 = PTR_strcmp_004c5a68;\n    if ((piVar3 != (int *)0x0) && (*piVar3 == 0x31)) {\n      uVar8 = *(undefined4 *)piVar3[2];\n      puVar11 = PTR_UINT_004c12dc + -0x57c0;\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];\n      iVar4 = (*(code *)puVar1)(uVar8,puVar11);\n      if (iVar4 == 0) {\n        uVar8 = FUN_003da8b0(param_1);\n        piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }\n    }\n  }\n  else {\n    if (uVar2 - 0x43 < 2) {\n      piVar6 = *(int **)(param_1 + 0x28);\n      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */\n                    /* WARNING: Treating indirect jump as call */\n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }\n      puVar1 = PTR_UINT_004c12dc;\n      if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        FUN_003dc9d0(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }\n      iVar5 = *(int *)(param_1 + 0x14);\n      if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }\n      bVar13 = *pbVar9;\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    if (bVar13 != 0x4c) {\n      if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }\n      if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }\nLAB_003de1ac:\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n    piVar3 = (int *)FUN_003da8b0();\n    if (piVar3 == (int *)0x0) {\n      return (int *)0x0;\n    }\n    iVar4 = FUN_003daf14(param_1);\n    if (iVar4 == 0) {\n      return (int *)0x0;\n    }\n  }" if (parenthesized_expression "(uVar2 - 0x61 < 0x1a)" ( (binary_expression "uVar2 - 0x61 < 0x1a" (binary_expression "uVar2 - 0x61" identifier - number_literal) < number_literal) )) (compound_statement "{\n    if ((bVar13 == 0x6f) && (pbVar9[1] == 0x6e)) {\n      *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n    }\n    piVar3 = (int *)FUN_003dd6ac(param_1);\n    puVar1 = PTR_strcmp_004c5a68;\n    if ((piVar3 != (int *)0x0) && (*piVar3 == 0x31)) {\n      uVar8 = *(undefined4 *)piVar3[2];\n      puVar11 = PTR_UINT_004c12dc + -0x57c0;\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];\n      iVar4 = (*(code *)puVar1)(uVar8,puVar11);\n      if (iVar4 == 0) {\n        uVar8 = FUN_003da8b0(param_1);\n        piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }\n    }\n  }" { (if_statement "if ((bVar13 == 0x6f) && (pbVar9[1] == 0x6e)) {\n      *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n    }" if (parenthesized_expression "((bVar13 == 0x6f) && (pbVar9[1] == 0x6e))" ( (binary_expression "(bVar13 == 0x6f) && (pbVar9[1] == 0x6e)" (parenthesized_expression "(bVar13 == 0x6f)" ( (binary_expression "bVar13 == 0x6f" identifier == number_literal) )) && (parenthesized_expression "(pbVar9[1] == 0x6e)" ( (binary_expression "pbVar9[1] == 0x6e" (subscript_expression "pbVar9[1]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n      *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n    }" { (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9 + 2;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9 + 2" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pbVar9 + 2" identifier + number_literal)) ;) })) (expression_statement "piVar3 = (int *)FUN_003dd6ac(param_1);" (assignment_expression "piVar3 = (int *)FUN_003dd6ac(param_1)" identifier = (cast_expression "(int *)FUN_003dd6ac(param_1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003dd6ac(param_1)" identifier (argument_list "(param_1)" ( identifier ))))) ;) (expression_statement "puVar1 = PTR_strcmp_004c5a68;" (assignment_expression "puVar1 = PTR_strcmp_004c5a68" identifier = identifier) ;) (if_statement "if ((piVar3 != (int *)0x0) && (*piVar3 == 0x31)) {\n      uVar8 = *(undefined4 *)piVar3[2];\n      puVar11 = PTR_UINT_004c12dc + -0x57c0;\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];\n      iVar4 = (*(code *)puVar1)(uVar8,puVar11);\n      if (iVar4 == 0) {\n        uVar8 = FUN_003da8b0(param_1);\n        piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }\n    }" if (parenthesized_expression "((piVar3 != (int *)0x0) && (*piVar3 == 0x31))" ( (binary_expression "(piVar3 != (int *)0x0) && (*piVar3 == 0x31)" (parenthesized_expression "(piVar3 != (int *)0x0)" ( (binary_expression "piVar3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*piVar3 == 0x31)" ( (binary_expression "*piVar3 == 0x31" (pointer_expression "*piVar3" * identifier) == number_literal) ))) )) (compound_statement "{\n      uVar8 = *(undefined4 *)piVar3[2];\n      puVar11 = PTR_UINT_004c12dc + -0x57c0;\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];\n      iVar4 = (*(code *)puVar1)(uVar8,puVar11);\n      if (iVar4 == 0) {\n        uVar8 = FUN_003da8b0(param_1);\n        piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }\n    }" { (expression_statement "uVar8 = *(undefined4 *)piVar3[2];" (assignment_expression "uVar8 = *(undefined4 *)piVar3[2]" identifier = (pointer_expression "*(undefined4 *)piVar3[2]" * (cast_expression "(undefined4 *)piVar3[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[2]" identifier [ number_literal ])))) ;) (expression_statement "puVar11 = PTR_UINT_004c12dc + -0x57c0;" (assignment_expression "puVar11 = PTR_UINT_004c12dc + -0x57c0" identifier = (binary_expression "PTR_UINT_004c12dc + -0x57c0" identifier + number_literal)) ;) (expression_statement "*(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];" (assignment_expression "*(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2]" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2]" (binary_expression "*(int *)(param_1 + 0x2c) + 7" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) + number_literal) + (subscript_expression "((undefined4 *)piVar3[2])[2]" (parenthesized_expression "((undefined4 *)piVar3[2])" ( (cast_expression "(undefined4 *)piVar3[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[2]" identifier [ number_literal ])) )) [ number_literal ]))) ;) (expression_statement "iVar4 = (*(code *)puVar1)(uVar8,puVar11);" (assignment_expression "iVar4 = (*(code *)puVar1)(uVar8,puVar11)" identifier = (call_expression "(*(code *)puVar1)(uVar8,puVar11)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar8,puVar11)" ( identifier , identifier )))) ;) (if_statement "if (iVar4 == 0) {\n        uVar8 = FUN_003da8b0(param_1);\n        piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar8 = FUN_003da8b0(param_1);\n        piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }" { (expression_statement "uVar8 = FUN_003da8b0(param_1);" (assignment_expression "uVar8 = FUN_003da8b0(param_1)" identifier = (call_expression "FUN_003da8b0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8);" (assignment_expression "piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8)" identifier = (cast_expression "(int *)FUN_003da330(param_1,0x36,piVar3,uVar8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003da330(param_1,0x36,piVar3,uVar8)" identifier (argument_list "(param_1,0x36,piVar3,uVar8)" ( identifier , number_literal , identifier , identifier ))))) ;) (expression_statement "bVar13 = **(byte **)(param_1 + 0xc);" (assignment_expression "bVar13 = **(byte **)(param_1 + 0xc)" identifier = (pointer_expression "**(byte **)(param_1 + 0xc)" * (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))))) ;) (goto_statement "goto joined_r0x003de0b0;" goto statement_identifier ;) })) })) }) (else_clause "else {\n    if (uVar2 - 0x43 < 2) {\n      piVar6 = *(int **)(param_1 + 0x28);\n      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */\n                    /* WARNING: Treating indirect jump as call */\n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }\n      puVar1 = PTR_UINT_004c12dc;\n      if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        FUN_003dc9d0(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }\n      iVar5 = *(int *)(param_1 + 0x14);\n      if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }\n      bVar13 = *pbVar9;\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    if (bVar13 != 0x4c) {\n      if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }\n      if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }\nLAB_003de1ac:\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n    piVar3 = (int *)FUN_003da8b0();\n    if (piVar3 == (int *)0x0) {\n      return (int *)0x0;\n    }\n    iVar4 = FUN_003daf14(param_1);\n    if (iVar4 == 0) {\n      return (int *)0x0;\n    }\n  }" else (compound_statement "{\n    if (uVar2 - 0x43 < 2) {\n      piVar6 = *(int **)(param_1 + 0x28);\n      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */\n                    /* WARNING: Treating indirect jump as call */\n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }\n      puVar1 = PTR_UINT_004c12dc;\n      if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        FUN_003dc9d0(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }\n      iVar5 = *(int *)(param_1 + 0x14);\n      if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }\n      bVar13 = *pbVar9;\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    if (bVar13 != 0x4c) {\n      if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }\n      if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }\nLAB_003de1ac:\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n    piVar3 = (int *)FUN_003da8b0();\n    if (piVar3 == (int *)0x0) {\n      return (int *)0x0;\n    }\n    iVar4 = FUN_003daf14(param_1);\n    if (iVar4 == 0) {\n      return (int *)0x0;\n    }\n  }" { (if_statement "if (uVar2 - 0x43 < 2) {\n      piVar6 = *(int **)(param_1 + 0x28);\n      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */\n                    /* WARNING: Treating indirect jump as call */\n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }\n      puVar1 = PTR_UINT_004c12dc;\n      if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        FUN_003dc9d0(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }\n      iVar5 = *(int *)(param_1 + 0x14);\n      if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }\n      bVar13 = *pbVar9;\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }" if (parenthesized_expression "(uVar2 - 0x43 < 2)" ( (binary_expression "uVar2 - 0x43 < 2" (binary_expression "uVar2 - 0x43" identifier - number_literal) < number_literal) )) (compound_statement "{\n      piVar6 = *(int **)(param_1 + 0x28);\n      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */\n                    /* WARNING: Treating indirect jump as call */\n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }\n      puVar1 = PTR_UINT_004c12dc;\n      if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        FUN_003dc9d0(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }\n      iVar5 = *(int *)(param_1 + 0x14);\n      if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }\n      bVar13 = *pbVar9;\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }" { (expression_statement "piVar6 = *(int **)(param_1 + 0x28);" (assignment_expression "piVar6 = *(int **)(param_1 + 0x28)" identifier = (pointer_expression "*(int **)(param_1 + 0x28)" * (cast_expression "(int **)(param_1 + 0x28)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */\n                    /* WARNING: Treating indirect jump as call */\n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }" if (parenthesized_expression "((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18))))" ( (binary_expression "(piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))" (parenthesized_expression "(piVar6 == (int *)0x0)" ( (binary_expression "piVar6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((*piVar6 != 0 && (*piVar6 != 0x18)))" ( (parenthesized_expression "(*piVar6 != 0 && (*piVar6 != 0x18))" ( (binary_expression "*piVar6 != 0 && (*piVar6 != 0x18)" (binary_expression "*piVar6 != 0" (pointer_expression "*piVar6" * identifier) != number_literal) && (parenthesized_expression "(*piVar6 != 0x18)" ( (binary_expression "*piVar6 != 0x18" (pointer_expression "*piVar6" * identifier) != number_literal) ))) )) ))) )) (compound_statement "{\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }" { (if_statement "if (bVar13 == 0x44) goto LAB_003de2a0;" if (parenthesized_expression "(bVar13 == 0x44)" ( (binary_expression "bVar13 == 0x44" identifier == number_literal) )) (goto_statement "goto LAB_003de2a0;" goto statement_identifier ;)) }) (else_clause "else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */\n                    /* WARNING: Treating indirect jump as call */\n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }" else (compound_statement "{\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */\n                    /* WARNING: Treating indirect jump as call */\n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }" { (expression_statement "*(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];" (assignment_expression "*(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3]" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x2c) + piVar6[3]" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) + (subscript_expression "piVar6[3]" identifier [ number_literal ]))) ;) (expression_statement "bVar13 = *pbVar9;" (assignment_expression "bVar13 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) (if_statement "if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */\n                    /* WARNING: Treating indirect jump as call */\n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }" if (parenthesized_expression "(bVar13 != 0x43)" ( (binary_expression "bVar13 != 0x43" identifier != number_literal) )) (compound_statement "{\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */\n                    /* WARNING: Treating indirect jump as call */\n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }" { (expression_statement "piVar3 = (int *)0x0;" (assignment_expression "piVar3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (bVar13 != 0x44) goto joined_r0x003de0b0;" if (parenthesized_expression "(bVar13 != 0x44)" ( (binary_expression "bVar13 != 0x44" identifier != number_literal) )) (goto_statement "goto joined_r0x003de0b0;" goto statement_identifier ;)) (labeled_statement "LAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;" statement_identifier : (expression_statement "uVar2 = pbVar9[1] - 0x30 & 0xff;" (assignment_expression "uVar2 = pbVar9[1] - 0x30 & 0xff" identifier = (binary_expression "pbVar9[1] - 0x30 & 0xff" (binary_expression "pbVar9[1] - 0x30" (subscript_expression "pbVar9[1]" identifier [ number_literal ]) - number_literal) & number_literal)) ;)) (if_statement "if (uVar2 < 6) {\n                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */\n                    /* WARNING: Treating indirect jump as call */\n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }" if (parenthesized_expression "(uVar2 < 6)" ( (binary_expression "uVar2 < 6" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */\n                    /* WARNING: Treating indirect jump as call */\n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }" { comment comment (expression_statement "piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();" (assignment_expression "piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))()" identifier = (cast_expression "(int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))()" (parenthesized_expression "(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))" ( (pointer_expression "*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210)" * (cast_expression "(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210)" ( (ERROR "gold::Position_dependent_options::" identifier : : identifier : :) (binary_expression "default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210" (binary_expression "default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)" identifier + (pointer_expression "*(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)" * (cast_expression "(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)" ( (binary_expression "PTR_UINT_004c12dc + uVar2 * 4 + 0x100" (binary_expression "PTR_UINT_004c12dc + uVar2 * 4" identifier + (binary_expression "uVar2 * 4" identifier * number_literal)) + number_literal) ))))) + number_literal) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return piVar3;" return identifier ;) })) (expression_statement "piVar3 = (int *)0x0;" (assignment_expression "piVar3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto joined_r0x003de0b0;" goto statement_identifier ;) })) }))) (expression_statement "puVar1 = PTR_UINT_004c12dc;" (assignment_expression "puVar1 = PTR_UINT_004c12dc" identifier = identifier) ;) (if_statement "if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        FUN_003dc9d0(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }" if (parenthesized_expression "((char)pbVar9[1] == 0x49)" ( (binary_expression "(char)pbVar9[1] == 0x49" (cast_expression "(char)pbVar9[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar9[1]" identifier [ number_literal ])) == number_literal) )) (compound_statement "{\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        FUN_003dc9d0(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }" { (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9 + 1;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9 + 1" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "puVar1 = PTR_UINT_004c12dc;" (assignment_expression "puVar1 = PTR_UINT_004c12dc" identifier = identifier) ;) (expression_statement "uVar2 = pbVar9[2] - 0x31 & 0xff;" (assignment_expression "uVar2 = pbVar9[2] - 0x31 & 0xff" identifier = (binary_expression "pbVar9[2] - 0x31 & 0xff" (binary_expression "pbVar9[2] - 0x31" (subscript_expression "pbVar9[2]" identifier [ number_literal ]) - number_literal) & number_literal)) ;) (if_statement "if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }" if (parenthesized_expression "(4 < uVar2)" ( (binary_expression "4 < uVar2" number_literal < identifier) )) (compound_statement "{\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }" { (expression_statement "bVar13 = pbVar9[1];" (assignment_expression "bVar13 = pbVar9[1]" identifier = (subscript_expression "pbVar9[1]" identifier [ number_literal ])) ;) (expression_statement "piVar3 = (int *)0x0;" (assignment_expression "piVar3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto joined_r0x003de0b0;" goto statement_identifier ;) })) (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9 + 3;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9 + 3" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pbVar9 + 3" identifier + number_literal)) ;) (expression_statement "iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);" (assignment_expression "iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538)" identifier = (pointer_expression "*(int *)(puVar1 + uVar2 * 4 + 0x538)" * (cast_expression "(int *)(puVar1 + uVar2 * 4 + 0x538)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + uVar2 * 4 + 0x538)" ( (binary_expression "puVar1 + uVar2 * 4 + 0x538" (binary_expression "puVar1 + uVar2 * 4" identifier + (binary_expression "uVar2 * 4" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "FUN_003dc9d0(param_1);" (call_expression "FUN_003dc9d0(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "piVar6 = *(int **)(param_1 + 0x28);" (assignment_expression "piVar6 = *(int **)(param_1 + 0x28)" identifier = (pointer_expression "*(int **)(param_1 + 0x28)" * (cast_expression "(int **)(param_1 + 0x28)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "pbVar9 = *(byte **)(param_1 + 0xc);" (assignment_expression "pbVar9 = *(byte **)(param_1 + 0xc)" identifier = (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }" else (compound_statement "{\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }" { (expression_statement "uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;" (assignment_expression "uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff" identifier = (binary_expression "(int)(char)pbVar9[1] - 0x31U & 0xff" (binary_expression "(int)(char)pbVar9[1] - 0x31U" (cast_expression "(int)(char)pbVar9[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar9[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar9[1]" identifier [ number_literal ]))) - number_literal) & number_literal)) ;) (if_statement "if (4 < uVar2) {\n          return (int *)0x0;\n        }" if (parenthesized_expression "(4 < uVar2)" ( (binary_expression "4 < uVar2" number_literal < identifier) )) (compound_statement "{\n          return (int *)0x0;\n        }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "pbVar9 = pbVar9 + 2;" (assignment_expression "pbVar9 = pbVar9 + 2" identifier = (binary_expression "pbVar9 + 2" identifier + number_literal)) ;) (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);" (assignment_expression "iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538)" identifier = (pointer_expression "*(int *)(puVar1 + uVar2 * 4 + 0x538)" * (cast_expression "(int *)(puVar1 + uVar2 * 4 + 0x538)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + uVar2 * 4 + 0x538)" ( (binary_expression "puVar1 + uVar2 * 4 + 0x538" (binary_expression "puVar1 + uVar2 * 4" identifier + (binary_expression "uVar2 * 4" identifier * number_literal)) + number_literal) ))))) ;) }))) (expression_statement "iVar5 = *(int *)(param_1 + 0x14);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x14)" identifier = (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }" if (parenthesized_expression "(iVar5 < *(int *)(param_1 + 0x18))" ( (binary_expression "iVar5 < *(int *)(param_1 + 0x18)" identifier < (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }" { (expression_statement "piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);" (assignment_expression "piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10)" identifier = (cast_expression "(int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x10) + iVar5 * 0x10)" ( (binary_expression "*(int *)(param_1 + 0x10) + iVar5 * 0x10" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) + (binary_expression "iVar5 * 0x10" identifier * number_literal)) )))) ;) (expression_statement "piVar3[1] = 0;" (assignment_expression "piVar3[1] = 0" (subscript_expression "piVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int *)(param_1 + 0x14) = iVar5 + 1;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar5 + 1" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (if_statement "if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }" if (parenthesized_expression "(piVar6 != (int *)0x0)" ( (binary_expression "piVar6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }" { (expression_statement "piVar3[1] = 0;" (assignment_expression "piVar3[1] = 0" (subscript_expression "piVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar3[2] = iVar4;" (assignment_expression "piVar3[2] = iVar4" (subscript_expression "piVar3[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar3 = 7;" (assignment_expression "*piVar3 = 7" (pointer_expression "*piVar3" * identifier) = number_literal) ;) (expression_statement "piVar3[3] = (int)piVar6;" (assignment_expression "piVar3[3] = (int)piVar6" (subscript_expression "piVar3[3]" identifier [ number_literal ]) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "bVar13 = *pbVar9;" (assignment_expression "bVar13 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) (goto_statement "goto joined_r0x003de0b0;" goto statement_identifier ;) })) })) (expression_statement "bVar13 = *pbVar9;" (assignment_expression "bVar13 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) (expression_statement "piVar3 = (int *)0x0;" (assignment_expression "piVar3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto joined_r0x003de0b0;" goto statement_identifier ;) })) (if_statement "if (bVar13 != 0x4c) {\n      if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }\n      if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }\nLAB_003de1ac:\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }" if (parenthesized_expression "(bVar13 != 0x4c)" ( (binary_expression "bVar13 != 0x4c" identifier != number_literal) )) (compound_statement "{\n      if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }\n      if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }\nLAB_003de1ac:\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }" { (if_statement "if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }" if (parenthesized_expression "(bVar13 != 0x55)" ( (binary_expression "bVar13 != 0x55" identifier != number_literal) )) (compound_statement "{\n        return (int *)0x0;\n      }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }" if (parenthesized_expression "(pbVar9[1] == 0x6c)" ( (binary_expression "pbVar9[1] == 0x6c" (subscript_expression "pbVar9[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }" { (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9 + 1;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9 + 1" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "bVar13 = pbVar9[1];" (assignment_expression "bVar13 = pbVar9[1]" identifier = (subscript_expression "pbVar9[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }" if (parenthesized_expression "(bVar13 == 0x6c)" ( (binary_expression "bVar13 == 0x6c" identifier == number_literal) )) (compound_statement "{\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }" { (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9 + 2;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9 + 2" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pbVar9 + 2" identifier + number_literal)) ;) (expression_statement "iVar4 = FUN_003dd8b0();" (assignment_expression "iVar4 = FUN_003dd8b0()" identifier = (call_expression "FUN_003dd8b0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }" { (expression_statement "bVar13 = **(byte **)(param_1 + 0xc);" (assignment_expression "bVar13 = **(byte **)(param_1 + 0xc)" identifier = (pointer_expression "**(byte **)(param_1 + 0xc)" * (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))))) ;) (if_statement "if (bVar13 != 0x45) goto LAB_003de1ac;" if (parenthesized_expression "(bVar13 != 0x45)" ( (binary_expression "bVar13 != 0x45" identifier != number_literal) )) (goto_statement "goto LAB_003de1ac;" goto statement_identifier ;)) (expression_statement "*(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;" (assignment_expression "*(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "*(byte **)(param_1 + 0xc) + 1" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar5 = FUN_003da780(param_1);" (assignment_expression "iVar5 = FUN_003da780(param_1)" identifier = (call_expression "FUN_003da780(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }" if (parenthesized_expression "(-1 < iVar5)" ( (binary_expression "-1 < iVar5" number_literal < identifier) )) (compound_statement "{\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }" { (expression_statement "iVar10 = *(int *)(param_1 + 0x14);" (assignment_expression "iVar10 = *(int *)(param_1 + 0x14)" identifier = (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "pbVar9 = *(byte **)(param_1 + 0xc);" (assignment_expression "pbVar9 = *(byte **)(param_1 + 0xc)" identifier = (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }" if (parenthesized_expression "(iVar10 < *(int *)(param_1 + 0x18))" ( (binary_expression "iVar10 < *(int *)(param_1 + 0x18)" identifier < (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }" { (expression_statement "iVar7 = *(int *)(param_1 + 0x20);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x20)" identifier = (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(param_1 + 0x24);" (assignment_expression "iVar12 = *(int *)(param_1 + 0x24)" identifier = (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);" (assignment_expression "piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10)" identifier = (cast_expression "(int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x10) + iVar10 * 0x10)" ( (binary_expression "*(int *)(param_1 + 0x10) + iVar10 * 0x10" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) + (binary_expression "iVar10 * 0x10" identifier * number_literal)) )))) ;) (expression_statement "piVar3[1] = 0;" (assignment_expression "piVar3[1] = 0" (subscript_expression "piVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int *)(param_1 + 0x14) = iVar10 + 1;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar10 + 1" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "piVar3[2] = iVar4;" (assignment_expression "piVar3[2] = iVar4" (subscript_expression "piVar3[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar3 = 0x45;" (assignment_expression "*piVar3 = 0x45" (pointer_expression "*piVar3" * identifier) = number_literal) ;) (expression_statement "piVar3[3] = iVar5;" (assignment_expression "piVar3[3] = iVar5" (subscript_expression "piVar3[3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar7 < iVar12) goto LAB_003de070;" if (parenthesized_expression "(iVar7 < iVar12)" ( (binary_expression "iVar7 < iVar12" identifier < identifier) )) (goto_statement "goto LAB_003de070;" goto statement_identifier ;)) })) (goto_statement "goto LAB_003de404;" goto statement_identifier ;) })) })) (labeled_statement "LAB_003de468:\n          piVar3 = (int *)0x0;" statement_identifier : (expression_statement "piVar3 = (int *)0x0;" (assignment_expression "piVar3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "bVar13 = **(byte **)(param_1 + 0xc);" (assignment_expression "bVar13 = **(byte **)(param_1 + 0xc)" identifier = (pointer_expression "**(byte **)(param_1 + 0xc)" * (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))))) ;) (goto_statement "goto joined_r0x003de0b0;" goto statement_identifier ;) })) }) (else_clause "else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }" else (compound_statement "{\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }" { (if_statement "if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }" if (parenthesized_expression "(pbVar9[1] != 0x74)" ( (binary_expression "pbVar9[1] != 0x74" (subscript_expression "pbVar9[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          return (int *)0x0;\n        }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9 + 1;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9 + 1" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "bVar13 = pbVar9[1];" (assignment_expression "bVar13 = pbVar9[1]" identifier = (subscript_expression "pbVar9[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }" if (parenthesized_expression "(bVar13 == 0x74)" ( (binary_expression "bVar13 == 0x74" identifier == number_literal) )) (compound_statement "{\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }" { (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9 + 2;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9 + 2" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pbVar9 + 2" identifier + number_literal)) ;) (expression_statement "iVar4 = FUN_003da780();" (assignment_expression "iVar4 = FUN_003da780()" identifier = (call_expression "FUN_003da780()" identifier (argument_list "()" ( )))) ;) (if_statement "if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }" if (parenthesized_expression "(-1 < iVar4)" ( (binary_expression "-1 < iVar4" number_literal < identifier) )) (compound_statement "{\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }" { (expression_statement "iVar5 = *(int *)(param_1 + 0x14);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x14)" identifier = (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }" if (parenthesized_expression "(iVar5 < *(int *)(param_1 + 0x18))" ( (binary_expression "iVar5 < *(int *)(param_1 + 0x18)" identifier < (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }" { (expression_statement "iVar7 = *(int *)(param_1 + 0x20);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x20)" identifier = (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(param_1 + 0x24);" (assignment_expression "iVar10 = *(int *)(param_1 + 0x24)" identifier = (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);" (assignment_expression "piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10)" identifier = (cast_expression "(int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x10) + iVar5 * 0x10)" ( (binary_expression "*(int *)(param_1 + 0x10) + iVar5 * 0x10" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) + (binary_expression "iVar5 * 0x10" identifier * number_literal)) )))) ;) (expression_statement "pbVar9 = *(byte **)(param_1 + 0xc);" (assignment_expression "pbVar9 = *(byte **)(param_1 + 0xc)" identifier = (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "piVar3[1] = 0;" (assignment_expression "piVar3[1] = 0" (subscript_expression "piVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int *)(param_1 + 0x14) = iVar5 + 1;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar5 + 1" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "piVar3[2] = iVar4;" (assignment_expression "piVar3[2] = iVar4" (subscript_expression "piVar3[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar3 = 0x47;" (assignment_expression "*piVar3 = 0x47" (pointer_expression "*piVar3" * identifier) = number_literal) ;) (if_statement "if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }" if (parenthesized_expression "(iVar7 < iVar10)" ( (binary_expression "iVar7 < iVar10" identifier < identifier) )) (compound_statement "{\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }" { (labeled_statement "LAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;" statement_identifier : (expression_statement "*(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;" (assignment_expression "*(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3" (pointer_expression "*(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4)" * (cast_expression "(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_1 + 0x1c) + iVar7 * 4)" ( (binary_expression "*(int *)(param_1 + 0x1c) + iVar7 * 4" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) + (binary_expression "iVar7 * 4" identifier * number_literal)) )))) = identifier) ;)) (expression_statement "*(int *)(param_1 + 0x20) = iVar7 + 1;" (assignment_expression "*(int *)(param_1 + 0x20) = iVar7 + 1" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar9;" (assignment_expression "bVar13 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) (goto_statement "goto joined_r0x003de0b0;" goto statement_identifier ;) })) (labeled_statement "LAB_003de404:\n              bVar13 = *pbVar9;" statement_identifier : (expression_statement "bVar13 = *pbVar9;" (assignment_expression "bVar13 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;)) (expression_statement "piVar3 = (int *)0x0;" (assignment_expression "piVar3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto joined_r0x003de0b0;" goto statement_identifier ;) })) })) (goto_statement "goto LAB_003de468;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_003de1ac:\n      piVar3 = (int *)0x0;" statement_identifier : (expression_statement "piVar3 = (int *)0x0;" (assignment_expression "piVar3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (goto_statement "goto joined_r0x003de0b0;" goto statement_identifier ;) })) (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9 + 1;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9 + 1" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "piVar3 = (int *)FUN_003da8b0();" (assignment_expression "piVar3 = (int *)FUN_003da8b0()" identifier = (cast_expression "(int *)FUN_003da8b0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003da8b0()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (piVar3 == (int *)0x0) {\n      return (int *)0x0;\n    }" if (parenthesized_expression "(piVar3 == (int *)0x0)" ( (binary_expression "piVar3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return (int *)0x0;\n    }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "iVar4 = FUN_003daf14(param_1);" (assignment_expression "iVar4 = FUN_003daf14(param_1)" identifier = (call_expression "FUN_003daf14(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar4 == 0) {\n      return (int *)0x0;\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      return (int *)0x0;\n    }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) }))) (expression_statement "bVar13 = **(byte **)(param_1 + 0xc);" (assignment_expression "bVar13 = **(byte **)(param_1 + 0xc)" identifier = (pointer_expression "**(byte **)(param_1 + 0xc)" * (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))))) ;) (labeled_statement "joined_r0x003de0b0:\n  if (bVar13 != 0x42) {\n    return piVar3;\n  }" statement_identifier : (if_statement "if (bVar13 != 0x42) {\n    return piVar3;\n  }" if (parenthesized_expression "(bVar13 != 0x42)" ( (binary_expression "bVar13 != 0x42" identifier != number_literal) )) (compound_statement "{\n    return piVar3;\n  }" { (return_statement "return piVar3;" return identifier ;) }))) (expression_statement "piVar3 = (int *)FUN_003daab4(param_1,piVar3);" (assignment_expression "piVar3 = (int *)FUN_003daab4(param_1,piVar3)" identifier = (cast_expression "(int *)FUN_003daab4(param_1,piVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003daab4(param_1,piVar3)" identifier (argument_list "(param_1,piVar3)" ( identifier , identifier ))))) ;) (return_statement "return piVar3;" return identifier ;) })))
(translation_unit "/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */\n/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */\n\nint * d_unqualified_name(int param_1)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  undefined4 uVar8;\n  byte *pbVar9;\n  int iVar10;\n  undefined *puVar11;\n  int iVar12;\n  byte bVar13;\n  \n  pbVar9 = *(byte **)(param_1 + 0xc);\n  bVar13 = *pbVar9;\n  uVar2 = (uint)bVar13;\n  if (uVar2 - 0x30 < 10) {\n    piVar3 = (int *)d_source_name();\n    bVar13 = **(byte **)(param_1 + 0xc);\n    goto joined_r0x003de0b0;\n  }\n  if (uVar2 - 0x61 < 0x1a) {\n    if ((bVar13 == 0x6f) && (pbVar9[1] == 0x6e)) {\n      *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n    }\n    piVar3 = (int *)d_operator_name(param_1);\n    puVar1 = PTR_strcmp_004c5a68;\n    if ((piVar3 != (int *)0x0) && (*piVar3 == 0x31)) {\n      uVar8 = *(undefined4 *)piVar3[2];\n      puVar11 = PTR_UINT_004c12dc + -0x57c0;\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];\n      iVar4 = (*(code *)puVar1)(uVar8,puVar11);\n      if (iVar4 == 0) {\n        uVar8 = d_source_name(param_1);\n        piVar3 = (int *)d_make_comp(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }\n    }\n  }\n  else {\n    if (uVar2 - 0x43 < 2) {\n      piVar6 = *(int **)(param_1 + 0x28);\n      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */\n                    /* WARNING: Treating indirect jump as call */\n            piVar3 = (int *)(*(code *)(&gold::Position_dependent_options::default_options_.relax_.\n                                        user_set_via_option +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }\n      puVar1 = PTR_UINT_004c12dc;\n      if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        d_type(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }\n      iVar5 = *(int *)(param_1 + 0x14);\n      if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }\n      bVar13 = *pbVar9;\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    if (bVar13 != 0x4c) {\n      if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }\n      if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = d_parmlist();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = d_compact_number(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = d_compact_number();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }\nLAB_003de1ac:\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n    piVar3 = (int *)d_source_name();\n    if (piVar3 == (int *)0x0) {\n      return (int *)0x0;\n    }\n    iVar4 = d_discriminator(param_1);\n    if (iVar4 == 0) {\n      return (int *)0x0;\n    }\n  }\n  bVar13 = **(byte **)(param_1 + 0xc);\njoined_r0x003de0b0:\n  if (bVar13 != 0x42) {\n    return piVar3;\n  }\n  piVar3 = (int *)d_abi_tags(param_1,piVar3);\n  return piVar3;\n}\n\n" comment comment comment comment comment comment (function_definition "int * d_unqualified_name(int param_1)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  undefined4 uVar8;\n  byte *pbVar9;\n  int iVar10;\n  undefined *puVar11;\n  int iVar12;\n  byte bVar13;\n  \n  pbVar9 = *(byte **)(param_1 + 0xc);\n  bVar13 = *pbVar9;\n  uVar2 = (uint)bVar13;\n  if (uVar2 - 0x30 < 10) {\n    piVar3 = (int *)d_source_name();\n    bVar13 = **(byte **)(param_1 + 0xc);\n    goto joined_r0x003de0b0;\n  }\n  if (uVar2 - 0x61 < 0x1a) {\n    if ((bVar13 == 0x6f) && (pbVar9[1] == 0x6e)) {\n      *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n    }\n    piVar3 = (int *)d_operator_name(param_1);\n    puVar1 = PTR_strcmp_004c5a68;\n    if ((piVar3 != (int *)0x0) && (*piVar3 == 0x31)) {\n      uVar8 = *(undefined4 *)piVar3[2];\n      puVar11 = PTR_UINT_004c12dc + -0x57c0;\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];\n      iVar4 = (*(code *)puVar1)(uVar8,puVar11);\n      if (iVar4 == 0) {\n        uVar8 = d_source_name(param_1);\n        piVar3 = (int *)d_make_comp(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }\n    }\n  }\n  else {\n    if (uVar2 - 0x43 < 2) {\n      piVar6 = *(int **)(param_1 + 0x28);\n      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */\n                    /* WARNING: Treating indirect jump as call */\n            piVar3 = (int *)(*(code *)(&gold::Position_dependent_options::default_options_.relax_.\n                                        user_set_via_option +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }\n      puVar1 = PTR_UINT_004c12dc;\n      if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        d_type(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }\n      iVar5 = *(int *)(param_1 + 0x14);\n      if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }\n      bVar13 = *pbVar9;\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    if (bVar13 != 0x4c) {\n      if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }\n      if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = d_parmlist();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = d_compact_number(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = d_compact_number();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }\nLAB_003de1ac:\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n    piVar3 = (int *)d_source_name();\n    if (piVar3 == (int *)0x0) {\n      return (int *)0x0;\n    }\n    iVar4 = d_discriminator(param_1);\n    if (iVar4 == 0) {\n      return (int *)0x0;\n    }\n  }\n  bVar13 = **(byte **)(param_1 + 0xc);\njoined_r0x003de0b0:\n  if (bVar13 != 0x42) {\n    return piVar3;\n  }\n  piVar3 = (int *)d_abi_tags(param_1,piVar3);\n  return piVar3;\n}" primitive_type (pointer_declarator "* d_unqualified_name(int param_1)" * (function_declarator "d_unqualified_name(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) )))) (compound_statement "{\n  undefined *puVar1;\n  uint uVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  undefined4 uVar8;\n  byte *pbVar9;\n  int iVar10;\n  undefined *puVar11;\n  int iVar12;\n  byte bVar13;\n  \n  pbVar9 = *(byte **)(param_1 + 0xc);\n  bVar13 = *pbVar9;\n  uVar2 = (uint)bVar13;\n  if (uVar2 - 0x30 < 10) {\n    piVar3 = (int *)d_source_name();\n    bVar13 = **(byte **)(param_1 + 0xc);\n    goto joined_r0x003de0b0;\n  }\n  if (uVar2 - 0x61 < 0x1a) {\n    if ((bVar13 == 0x6f) && (pbVar9[1] == 0x6e)) {\n      *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n    }\n    piVar3 = (int *)d_operator_name(param_1);\n    puVar1 = PTR_strcmp_004c5a68;\n    if ((piVar3 != (int *)0x0) && (*piVar3 == 0x31)) {\n      uVar8 = *(undefined4 *)piVar3[2];\n      puVar11 = PTR_UINT_004c12dc + -0x57c0;\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];\n      iVar4 = (*(code *)puVar1)(uVar8,puVar11);\n      if (iVar4 == 0) {\n        uVar8 = d_source_name(param_1);\n        piVar3 = (int *)d_make_comp(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }\n    }\n  }\n  else {\n    if (uVar2 - 0x43 < 2) {\n      piVar6 = *(int **)(param_1 + 0x28);\n      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */\n                    /* WARNING: Treating indirect jump as call */\n            piVar3 = (int *)(*(code *)(&gold::Position_dependent_options::default_options_.relax_.\n                                        user_set_via_option +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }\n      puVar1 = PTR_UINT_004c12dc;\n      if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        d_type(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }\n      iVar5 = *(int *)(param_1 + 0x14);\n      if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }\n      bVar13 = *pbVar9;\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    if (bVar13 != 0x4c) {\n      if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }\n      if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = d_parmlist();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = d_compact_number(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = d_compact_number();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }\nLAB_003de1ac:\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n    piVar3 = (int *)d_source_name();\n    if (piVar3 == (int *)0x0) {\n      return (int *)0x0;\n    }\n    iVar4 = d_discriminator(param_1);\n    if (iVar4 == 0) {\n      return (int *)0x0;\n    }\n  }\n  bVar13 = **(byte **)(param_1 + 0xc);\njoined_r0x003de0b0:\n  if (bVar13 != 0x42) {\n    return piVar3;\n  }\n  piVar3 = (int *)d_abi_tags(param_1,piVar3);\n  return piVar3;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "byte bVar13;" type_identifier identifier ;) (expression_statement "pbVar9 = *(byte **)(param_1 + 0xc);" (assignment_expression "pbVar9 = *(byte **)(param_1 + 0xc)" identifier = (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "bVar13 = *pbVar9;" (assignment_expression "bVar13 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) (expression_statement "uVar2 = (uint)bVar13;" (assignment_expression "uVar2 = (uint)bVar13" identifier = (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar2 - 0x30 < 10) {\n    piVar3 = (int *)d_source_name();\n    bVar13 = **(byte **)(param_1 + 0xc);\n    goto joined_r0x003de0b0;\n  }" if (parenthesized_expression "(uVar2 - 0x30 < 10)" ( (binary_expression "uVar2 - 0x30 < 10" (binary_expression "uVar2 - 0x30" identifier - number_literal) < number_literal) )) (compound_statement "{\n    piVar3 = (int *)d_source_name();\n    bVar13 = **(byte **)(param_1 + 0xc);\n    goto joined_r0x003de0b0;\n  }" { (expression_statement "piVar3 = (int *)d_source_name();" (assignment_expression "piVar3 = (int *)d_source_name()" identifier = (cast_expression "(int *)d_source_name()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "d_source_name()" identifier (argument_list "()" ( ))))) ;) (expression_statement "bVar13 = **(byte **)(param_1 + 0xc);" (assignment_expression "bVar13 = **(byte **)(param_1 + 0xc)" identifier = (pointer_expression "**(byte **)(param_1 + 0xc)" * (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))))) ;) (goto_statement "goto joined_r0x003de0b0;" goto statement_identifier ;) })) (if_statement "if (uVar2 - 0x61 < 0x1a) {\n    if ((bVar13 == 0x6f) && (pbVar9[1] == 0x6e)) {\n      *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n    }\n    piVar3 = (int *)d_operator_name(param_1);\n    puVar1 = PTR_strcmp_004c5a68;\n    if ((piVar3 != (int *)0x0) && (*piVar3 == 0x31)) {\n      uVar8 = *(undefined4 *)piVar3[2];\n      puVar11 = PTR_UINT_004c12dc + -0x57c0;\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];\n      iVar4 = (*(code *)puVar1)(uVar8,puVar11);\n      if (iVar4 == 0) {\n        uVar8 = d_source_name(param_1);\n        piVar3 = (int *)d_make_comp(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }\n    }\n  }\n  else {\n    if (uVar2 - 0x43 < 2) {\n      piVar6 = *(int **)(param_1 + 0x28);\n      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */\n                    /* WARNING: Treating indirect jump as call */\n            piVar3 = (int *)(*(code *)(&gold::Position_dependent_options::default_options_.relax_.\n                                        user_set_via_option +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }\n      puVar1 = PTR_UINT_004c12dc;\n      if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        d_type(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }\n      iVar5 = *(int *)(param_1 + 0x14);\n      if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }\n      bVar13 = *pbVar9;\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    if (bVar13 != 0x4c) {\n      if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }\n      if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = d_parmlist();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = d_compact_number(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = d_compact_number();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }\nLAB_003de1ac:\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n    piVar3 = (int *)d_source_name();\n    if (piVar3 == (int *)0x0) {\n      return (int *)0x0;\n    }\n    iVar4 = d_discriminator(param_1);\n    if (iVar4 == 0) {\n      return (int *)0x0;\n    }\n  }" if (parenthesized_expression "(uVar2 - 0x61 < 0x1a)" ( (binary_expression "uVar2 - 0x61 < 0x1a" (binary_expression "uVar2 - 0x61" identifier - number_literal) < number_literal) )) (compound_statement "{\n    if ((bVar13 == 0x6f) && (pbVar9[1] == 0x6e)) {\n      *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n    }\n    piVar3 = (int *)d_operator_name(param_1);\n    puVar1 = PTR_strcmp_004c5a68;\n    if ((piVar3 != (int *)0x0) && (*piVar3 == 0x31)) {\n      uVar8 = *(undefined4 *)piVar3[2];\n      puVar11 = PTR_UINT_004c12dc + -0x57c0;\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];\n      iVar4 = (*(code *)puVar1)(uVar8,puVar11);\n      if (iVar4 == 0) {\n        uVar8 = d_source_name(param_1);\n        piVar3 = (int *)d_make_comp(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }\n    }\n  }" { (if_statement "if ((bVar13 == 0x6f) && (pbVar9[1] == 0x6e)) {\n      *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n    }" if (parenthesized_expression "((bVar13 == 0x6f) && (pbVar9[1] == 0x6e))" ( (binary_expression "(bVar13 == 0x6f) && (pbVar9[1] == 0x6e)" (parenthesized_expression "(bVar13 == 0x6f)" ( (binary_expression "bVar13 == 0x6f" identifier == number_literal) )) && (parenthesized_expression "(pbVar9[1] == 0x6e)" ( (binary_expression "pbVar9[1] == 0x6e" (subscript_expression "pbVar9[1]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n      *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n    }" { (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9 + 2;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9 + 2" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pbVar9 + 2" identifier + number_literal)) ;) })) (expression_statement "piVar3 = (int *)d_operator_name(param_1);" (assignment_expression "piVar3 = (int *)d_operator_name(param_1)" identifier = (cast_expression "(int *)d_operator_name(param_1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "d_operator_name(param_1)" identifier (argument_list "(param_1)" ( identifier ))))) ;) (expression_statement "puVar1 = PTR_strcmp_004c5a68;" (assignment_expression "puVar1 = PTR_strcmp_004c5a68" identifier = identifier) ;) (if_statement "if ((piVar3 != (int *)0x0) && (*piVar3 == 0x31)) {\n      uVar8 = *(undefined4 *)piVar3[2];\n      puVar11 = PTR_UINT_004c12dc + -0x57c0;\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];\n      iVar4 = (*(code *)puVar1)(uVar8,puVar11);\n      if (iVar4 == 0) {\n        uVar8 = d_source_name(param_1);\n        piVar3 = (int *)d_make_comp(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }\n    }" if (parenthesized_expression "((piVar3 != (int *)0x0) && (*piVar3 == 0x31))" ( (binary_expression "(piVar3 != (int *)0x0) && (*piVar3 == 0x31)" (parenthesized_expression "(piVar3 != (int *)0x0)" ( (binary_expression "piVar3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*piVar3 == 0x31)" ( (binary_expression "*piVar3 == 0x31" (pointer_expression "*piVar3" * identifier) == number_literal) ))) )) (compound_statement "{\n      uVar8 = *(undefined4 *)piVar3[2];\n      puVar11 = PTR_UINT_004c12dc + -0x57c0;\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];\n      iVar4 = (*(code *)puVar1)(uVar8,puVar11);\n      if (iVar4 == 0) {\n        uVar8 = d_source_name(param_1);\n        piVar3 = (int *)d_make_comp(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }\n    }" { (expression_statement "uVar8 = *(undefined4 *)piVar3[2];" (assignment_expression "uVar8 = *(undefined4 *)piVar3[2]" identifier = (pointer_expression "*(undefined4 *)piVar3[2]" * (cast_expression "(undefined4 *)piVar3[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[2]" identifier [ number_literal ])))) ;) (expression_statement "puVar11 = PTR_UINT_004c12dc + -0x57c0;" (assignment_expression "puVar11 = PTR_UINT_004c12dc + -0x57c0" identifier = (binary_expression "PTR_UINT_004c12dc + -0x57c0" identifier + number_literal)) ;) (expression_statement "*(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];" (assignment_expression "*(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2]" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2]" (binary_expression "*(int *)(param_1 + 0x2c) + 7" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) + number_literal) + (subscript_expression "((undefined4 *)piVar3[2])[2]" (parenthesized_expression "((undefined4 *)piVar3[2])" ( (cast_expression "(undefined4 *)piVar3[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[2]" identifier [ number_literal ])) )) [ number_literal ]))) ;) (expression_statement "iVar4 = (*(code *)puVar1)(uVar8,puVar11);" (assignment_expression "iVar4 = (*(code *)puVar1)(uVar8,puVar11)" identifier = (call_expression "(*(code *)puVar1)(uVar8,puVar11)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar8,puVar11)" ( identifier , identifier )))) ;) (if_statement "if (iVar4 == 0) {\n        uVar8 = d_source_name(param_1);\n        piVar3 = (int *)d_make_comp(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar8 = d_source_name(param_1);\n        piVar3 = (int *)d_make_comp(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }" { (expression_statement "uVar8 = d_source_name(param_1);" (assignment_expression "uVar8 = d_source_name(param_1)" identifier = (call_expression "d_source_name(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "piVar3 = (int *)d_make_comp(param_1,0x36,piVar3,uVar8);" (assignment_expression "piVar3 = (int *)d_make_comp(param_1,0x36,piVar3,uVar8)" identifier = (cast_expression "(int *)d_make_comp(param_1,0x36,piVar3,uVar8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "d_make_comp(param_1,0x36,piVar3,uVar8)" identifier (argument_list "(param_1,0x36,piVar3,uVar8)" ( identifier , number_literal , identifier , identifier ))))) ;) (expression_statement "bVar13 = **(byte **)(param_1 + 0xc);" (assignment_expression "bVar13 = **(byte **)(param_1 + 0xc)" identifier = (pointer_expression "**(byte **)(param_1 + 0xc)" * (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))))) ;) (goto_statement "goto joined_r0x003de0b0;" goto statement_identifier ;) })) })) }) (else_clause "else {\n    if (uVar2 - 0x43 < 2) {\n      piVar6 = *(int **)(param_1 + 0x28);\n      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */\n                    /* WARNING: Treating indirect jump as call */\n            piVar3 = (int *)(*(code *)(&gold::Position_dependent_options::default_options_.relax_.\n                                        user_set_via_option +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }\n      puVar1 = PTR_UINT_004c12dc;\n      if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        d_type(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }\n      iVar5 = *(int *)(param_1 + 0x14);\n      if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }\n      bVar13 = *pbVar9;\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    if (bVar13 != 0x4c) {\n      if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }\n      if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = d_parmlist();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = d_compact_number(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = d_compact_number();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }\nLAB_003de1ac:\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n    piVar3 = (int *)d_source_name();\n    if (piVar3 == (int *)0x0) {\n      return (int *)0x0;\n    }\n    iVar4 = d_discriminator(param_1);\n    if (iVar4 == 0) {\n      return (int *)0x0;\n    }\n  }" else (compound_statement "{\n    if (uVar2 - 0x43 < 2) {\n      piVar6 = *(int **)(param_1 + 0x28);\n      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */\n                    /* WARNING: Treating indirect jump as call */\n            piVar3 = (int *)(*(code *)(&gold::Position_dependent_options::default_options_.relax_.\n                                        user_set_via_option +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }\n      puVar1 = PTR_UINT_004c12dc;\n      if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        d_type(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }\n      iVar5 = *(int *)(param_1 + 0x14);\n      if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }\n      bVar13 = *pbVar9;\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    if (bVar13 != 0x4c) {\n      if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }\n      if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = d_parmlist();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = d_compact_number(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = d_compact_number();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }\nLAB_003de1ac:\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n    piVar3 = (int *)d_source_name();\n    if (piVar3 == (int *)0x0) {\n      return (int *)0x0;\n    }\n    iVar4 = d_discriminator(param_1);\n    if (iVar4 == 0) {\n      return (int *)0x0;\n    }\n  }" { (if_statement "if (uVar2 - 0x43 < 2) {\n      piVar6 = *(int **)(param_1 + 0x28);\n      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */\n                    /* WARNING: Treating indirect jump as call */\n            piVar3 = (int *)(*(code *)(&gold::Position_dependent_options::default_options_.relax_.\n                                        user_set_via_option +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }\n      puVar1 = PTR_UINT_004c12dc;\n      if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        d_type(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }\n      iVar5 = *(int *)(param_1 + 0x14);\n      if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }\n      bVar13 = *pbVar9;\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }" if (parenthesized_expression "(uVar2 - 0x43 < 2)" ( (binary_expression "uVar2 - 0x43 < 2" (binary_expression "uVar2 - 0x43" identifier - number_literal) < number_literal) )) (compound_statement "{\n      piVar6 = *(int **)(param_1 + 0x28);\n      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */\n                    /* WARNING: Treating indirect jump as call */\n            piVar3 = (int *)(*(code *)(&gold::Position_dependent_options::default_options_.relax_.\n                                        user_set_via_option +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }\n      puVar1 = PTR_UINT_004c12dc;\n      if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        d_type(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }\n      iVar5 = *(int *)(param_1 + 0x14);\n      if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }\n      bVar13 = *pbVar9;\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }" { (expression_statement "piVar6 = *(int **)(param_1 + 0x28);" (assignment_expression "piVar6 = *(int **)(param_1 + 0x28)" identifier = (pointer_expression "*(int **)(param_1 + 0x28)" * (cast_expression "(int **)(param_1 + 0x28)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */\n                    /* WARNING: Treating indirect jump as call */\n            piVar3 = (int *)(*(code *)(&gold::Position_dependent_options::default_options_.relax_.\n                                        user_set_via_option +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }" if (parenthesized_expression "((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18))))" ( (binary_expression "(piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))" (parenthesized_expression "(piVar6 == (int *)0x0)" ( (binary_expression "piVar6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((*piVar6 != 0 && (*piVar6 != 0x18)))" ( (parenthesized_expression "(*piVar6 != 0 && (*piVar6 != 0x18))" ( (binary_expression "*piVar6 != 0 && (*piVar6 != 0x18)" (binary_expression "*piVar6 != 0" (pointer_expression "*piVar6" * identifier) != number_literal) && (parenthesized_expression "(*piVar6 != 0x18)" ( (binary_expression "*piVar6 != 0x18" (pointer_expression "*piVar6" * identifier) != number_literal) ))) )) ))) )) (compound_statement "{\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }" { (if_statement "if (bVar13 == 0x44) goto LAB_003de2a0;" if (parenthesized_expression "(bVar13 == 0x44)" ( (binary_expression "bVar13 == 0x44" identifier == number_literal) )) (goto_statement "goto LAB_003de2a0;" goto statement_identifier ;)) }) (else_clause "else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */\n                    /* WARNING: Treating indirect jump as call */\n            piVar3 = (int *)(*(code *)(&gold::Position_dependent_options::default_options_.relax_.\n                                        user_set_via_option +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }" else (compound_statement "{\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */\n                    /* WARNING: Treating indirect jump as call */\n            piVar3 = (int *)(*(code *)(&gold::Position_dependent_options::default_options_.relax_.\n                                        user_set_via_option +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }" { (expression_statement "*(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];" (assignment_expression "*(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3]" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x2c) + piVar6[3]" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) + (subscript_expression "piVar6[3]" identifier [ number_literal ]))) ;) (expression_statement "bVar13 = *pbVar9;" (assignment_expression "bVar13 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) (if_statement "if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */\n                    /* WARNING: Treating indirect jump as call */\n            piVar3 = (int *)(*(code *)(&gold::Position_dependent_options::default_options_.relax_.\n                                        user_set_via_option +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }" if (parenthesized_expression "(bVar13 != 0x43)" ( (binary_expression "bVar13 != 0x43" identifier != number_literal) )) (compound_statement "{\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */\n                    /* WARNING: Treating indirect jump as call */\n            piVar3 = (int *)(*(code *)(&gold::Position_dependent_options::default_options_.relax_.\n                                        user_set_via_option +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }" { (expression_statement "piVar3 = (int *)0x0;" (assignment_expression "piVar3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (bVar13 != 0x44) goto joined_r0x003de0b0;" if (parenthesized_expression "(bVar13 != 0x44)" ( (binary_expression "bVar13 != 0x44" identifier != number_literal) )) (goto_statement "goto joined_r0x003de0b0;" goto statement_identifier ;)) (labeled_statement "LAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;" statement_identifier : (expression_statement "uVar2 = pbVar9[1] - 0x30 & 0xff;" (assignment_expression "uVar2 = pbVar9[1] - 0x30 & 0xff" identifier = (binary_expression "pbVar9[1] - 0x30 & 0xff" (binary_expression "pbVar9[1] - 0x30" (subscript_expression "pbVar9[1]" identifier [ number_literal ]) - number_literal) & number_literal)) ;)) (if_statement "if (uVar2 < 6) {\n                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */\n                    /* WARNING: Treating indirect jump as call */\n            piVar3 = (int *)(*(code *)(&gold::Position_dependent_options::default_options_.relax_.\n                                        user_set_via_option +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)))();\n            return piVar3;\n          }" if (parenthesized_expression "(uVar2 < 6)" ( (binary_expression "uVar2 < 6" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */\n                    /* WARNING: Treating indirect jump as call */\n            piVar3 = (int *)(*(code *)(&gold::Position_dependent_options::default_options_.relax_.\n                                        user_set_via_option +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)))();\n            return piVar3;\n          }" { comment comment (expression_statement "piVar3 = (int *)(*(code *)(&gold::Position_dependent_options::default_options_.relax_.\n                                        user_set_via_option +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)))();" (assignment_expression "piVar3 = (int *)(*(code *)(&gold::Position_dependent_options::default_options_.relax_.\n                                        user_set_via_option +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)))()" identifier = (cast_expression "(int *)(*(code *)(&gold::Position_dependent_options::default_options_.relax_.\n                                        user_set_via_option +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(&gold::Position_dependent_options::default_options_.relax_.\n                                        user_set_via_option +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)))()" (parenthesized_expression "(*(code *)(&gold::Position_dependent_options::default_options_.relax_.\n                                        user_set_via_option +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)))" ( (pointer_expression "*(code *)(&gold::Position_dependent_options::default_options_.relax_.\n                                        user_set_via_option +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100))" * (cast_expression "(code *)(&gold::Position_dependent_options::default_options_.relax_.\n                                        user_set_via_option +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&gold::Position_dependent_options::default_options_.relax_.\n                                        user_set_via_option +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100))" ( (ERROR "&gold::Position_dependent_options::" (pointer_expression "&gold" & identifier) : : identifier : :) (binary_expression "default_options_.relax_.\n                                        user_set_via_option +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)" (field_expression "default_options_.relax_.\n                                        user_set_via_option" (field_expression "default_options_.relax_" identifier . field_identifier) . field_identifier) + (pointer_expression "*(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)" * (cast_expression "(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)" ( (binary_expression "PTR_UINT_004c12dc + uVar2 * 4 + 0x100" (binary_expression "PTR_UINT_004c12dc + uVar2 * 4" identifier + (binary_expression "uVar2 * 4" identifier * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return piVar3;" return identifier ;) })) (expression_statement "piVar3 = (int *)0x0;" (assignment_expression "piVar3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto joined_r0x003de0b0;" goto statement_identifier ;) })) }))) (expression_statement "puVar1 = PTR_UINT_004c12dc;" (assignment_expression "puVar1 = PTR_UINT_004c12dc" identifier = identifier) ;) (if_statement "if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        d_type(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }" if (parenthesized_expression "((char)pbVar9[1] == 0x49)" ( (binary_expression "(char)pbVar9[1] == 0x49" (cast_expression "(char)pbVar9[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar9[1]" identifier [ number_literal ])) == number_literal) )) (compound_statement "{\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        d_type(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }" { (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9 + 1;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9 + 1" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "puVar1 = PTR_UINT_004c12dc;" (assignment_expression "puVar1 = PTR_UINT_004c12dc" identifier = identifier) ;) (expression_statement "uVar2 = pbVar9[2] - 0x31 & 0xff;" (assignment_expression "uVar2 = pbVar9[2] - 0x31 & 0xff" identifier = (binary_expression "pbVar9[2] - 0x31 & 0xff" (binary_expression "pbVar9[2] - 0x31" (subscript_expression "pbVar9[2]" identifier [ number_literal ]) - number_literal) & number_literal)) ;) (if_statement "if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }" if (parenthesized_expression "(4 < uVar2)" ( (binary_expression "4 < uVar2" number_literal < identifier) )) (compound_statement "{\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }" { (expression_statement "bVar13 = pbVar9[1];" (assignment_expression "bVar13 = pbVar9[1]" identifier = (subscript_expression "pbVar9[1]" identifier [ number_literal ])) ;) (expression_statement "piVar3 = (int *)0x0;" (assignment_expression "piVar3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto joined_r0x003de0b0;" goto statement_identifier ;) })) (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9 + 3;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9 + 3" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pbVar9 + 3" identifier + number_literal)) ;) (expression_statement "iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);" (assignment_expression "iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538)" identifier = (pointer_expression "*(int *)(puVar1 + uVar2 * 4 + 0x538)" * (cast_expression "(int *)(puVar1 + uVar2 * 4 + 0x538)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + uVar2 * 4 + 0x538)" ( (binary_expression "puVar1 + uVar2 * 4 + 0x538" (binary_expression "puVar1 + uVar2 * 4" identifier + (binary_expression "uVar2 * 4" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "d_type(param_1);" (call_expression "d_type(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "piVar6 = *(int **)(param_1 + 0x28);" (assignment_expression "piVar6 = *(int **)(param_1 + 0x28)" identifier = (pointer_expression "*(int **)(param_1 + 0x28)" * (cast_expression "(int **)(param_1 + 0x28)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "pbVar9 = *(byte **)(param_1 + 0xc);" (assignment_expression "pbVar9 = *(byte **)(param_1 + 0xc)" identifier = (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }" else (compound_statement "{\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }" { (expression_statement "uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;" (assignment_expression "uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff" identifier = (binary_expression "(int)(char)pbVar9[1] - 0x31U & 0xff" (binary_expression "(int)(char)pbVar9[1] - 0x31U" (cast_expression "(int)(char)pbVar9[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar9[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar9[1]" identifier [ number_literal ]))) - number_literal) & number_literal)) ;) (if_statement "if (4 < uVar2) {\n          return (int *)0x0;\n        }" if (parenthesized_expression "(4 < uVar2)" ( (binary_expression "4 < uVar2" number_literal < identifier) )) (compound_statement "{\n          return (int *)0x0;\n        }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "pbVar9 = pbVar9 + 2;" (assignment_expression "pbVar9 = pbVar9 + 2" identifier = (binary_expression "pbVar9 + 2" identifier + number_literal)) ;) (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);" (assignment_expression "iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538)" identifier = (pointer_expression "*(int *)(puVar1 + uVar2 * 4 + 0x538)" * (cast_expression "(int *)(puVar1 + uVar2 * 4 + 0x538)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + uVar2 * 4 + 0x538)" ( (binary_expression "puVar1 + uVar2 * 4 + 0x538" (binary_expression "puVar1 + uVar2 * 4" identifier + (binary_expression "uVar2 * 4" identifier * number_literal)) + number_literal) ))))) ;) }))) (expression_statement "iVar5 = *(int *)(param_1 + 0x14);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x14)" identifier = (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }" if (parenthesized_expression "(iVar5 < *(int *)(param_1 + 0x18))" ( (binary_expression "iVar5 < *(int *)(param_1 + 0x18)" identifier < (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }" { (expression_statement "piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);" (assignment_expression "piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10)" identifier = (cast_expression "(int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x10) + iVar5 * 0x10)" ( (binary_expression "*(int *)(param_1 + 0x10) + iVar5 * 0x10" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) + (binary_expression "iVar5 * 0x10" identifier * number_literal)) )))) ;) (expression_statement "piVar3[1] = 0;" (assignment_expression "piVar3[1] = 0" (subscript_expression "piVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int *)(param_1 + 0x14) = iVar5 + 1;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar5 + 1" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (if_statement "if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }" if (parenthesized_expression "(piVar6 != (int *)0x0)" ( (binary_expression "piVar6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }" { (expression_statement "piVar3[1] = 0;" (assignment_expression "piVar3[1] = 0" (subscript_expression "piVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar3[2] = iVar4;" (assignment_expression "piVar3[2] = iVar4" (subscript_expression "piVar3[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar3 = 7;" (assignment_expression "*piVar3 = 7" (pointer_expression "*piVar3" * identifier) = number_literal) ;) (expression_statement "piVar3[3] = (int)piVar6;" (assignment_expression "piVar3[3] = (int)piVar6" (subscript_expression "piVar3[3]" identifier [ number_literal ]) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "bVar13 = *pbVar9;" (assignment_expression "bVar13 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) (goto_statement "goto joined_r0x003de0b0;" goto statement_identifier ;) })) })) (expression_statement "bVar13 = *pbVar9;" (assignment_expression "bVar13 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) (expression_statement "piVar3 = (int *)0x0;" (assignment_expression "piVar3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto joined_r0x003de0b0;" goto statement_identifier ;) })) (if_statement "if (bVar13 != 0x4c) {\n      if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }\n      if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = d_parmlist();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = d_compact_number(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = d_compact_number();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }\nLAB_003de1ac:\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }" if (parenthesized_expression "(bVar13 != 0x4c)" ( (binary_expression "bVar13 != 0x4c" identifier != number_literal) )) (compound_statement "{\n      if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }\n      if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = d_parmlist();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = d_compact_number(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = d_compact_number();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }\nLAB_003de1ac:\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }" { (if_statement "if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }" if (parenthesized_expression "(bVar13 != 0x55)" ( (binary_expression "bVar13 != 0x55" identifier != number_literal) )) (compound_statement "{\n        return (int *)0x0;\n      }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = d_parmlist();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = d_compact_number(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = d_compact_number();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }" if (parenthesized_expression "(pbVar9[1] == 0x6c)" ( (binary_expression "pbVar9[1] == 0x6c" (subscript_expression "pbVar9[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = d_parmlist();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = d_compact_number(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }" { (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9 + 1;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9 + 1" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "bVar13 = pbVar9[1];" (assignment_expression "bVar13 = pbVar9[1]" identifier = (subscript_expression "pbVar9[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = d_parmlist();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = d_compact_number(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }" if (parenthesized_expression "(bVar13 == 0x6c)" ( (binary_expression "bVar13 == 0x6c" identifier == number_literal) )) (compound_statement "{\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = d_parmlist();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = d_compact_number(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }" { (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9 + 2;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9 + 2" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pbVar9 + 2" identifier + number_literal)) ;) (expression_statement "iVar4 = d_parmlist();" (assignment_expression "iVar4 = d_parmlist()" identifier = (call_expression "d_parmlist()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = d_compact_number(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = d_compact_number(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }" { (expression_statement "bVar13 = **(byte **)(param_1 + 0xc);" (assignment_expression "bVar13 = **(byte **)(param_1 + 0xc)" identifier = (pointer_expression "**(byte **)(param_1 + 0xc)" * (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))))) ;) (if_statement "if (bVar13 != 0x45) goto LAB_003de1ac;" if (parenthesized_expression "(bVar13 != 0x45)" ( (binary_expression "bVar13 != 0x45" identifier != number_literal) )) (goto_statement "goto LAB_003de1ac;" goto statement_identifier ;)) (expression_statement "*(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;" (assignment_expression "*(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "*(byte **)(param_1 + 0xc) + 1" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar5 = d_compact_number(param_1);" (assignment_expression "iVar5 = d_compact_number(param_1)" identifier = (call_expression "d_compact_number(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }" if (parenthesized_expression "(-1 < iVar5)" ( (binary_expression "-1 < iVar5" number_literal < identifier) )) (compound_statement "{\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }" { (expression_statement "iVar10 = *(int *)(param_1 + 0x14);" (assignment_expression "iVar10 = *(int *)(param_1 + 0x14)" identifier = (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "pbVar9 = *(byte **)(param_1 + 0xc);" (assignment_expression "pbVar9 = *(byte **)(param_1 + 0xc)" identifier = (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }" if (parenthesized_expression "(iVar10 < *(int *)(param_1 + 0x18))" ( (binary_expression "iVar10 < *(int *)(param_1 + 0x18)" identifier < (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }" { (expression_statement "iVar7 = *(int *)(param_1 + 0x20);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x20)" identifier = (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(param_1 + 0x24);" (assignment_expression "iVar12 = *(int *)(param_1 + 0x24)" identifier = (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);" (assignment_expression "piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10)" identifier = (cast_expression "(int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x10) + iVar10 * 0x10)" ( (binary_expression "*(int *)(param_1 + 0x10) + iVar10 * 0x10" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) + (binary_expression "iVar10 * 0x10" identifier * number_literal)) )))) ;) (expression_statement "piVar3[1] = 0;" (assignment_expression "piVar3[1] = 0" (subscript_expression "piVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int *)(param_1 + 0x14) = iVar10 + 1;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar10 + 1" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "piVar3[2] = iVar4;" (assignment_expression "piVar3[2] = iVar4" (subscript_expression "piVar3[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar3 = 0x45;" (assignment_expression "*piVar3 = 0x45" (pointer_expression "*piVar3" * identifier) = number_literal) ;) (expression_statement "piVar3[3] = iVar5;" (assignment_expression "piVar3[3] = iVar5" (subscript_expression "piVar3[3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar7 < iVar12) goto LAB_003de070;" if (parenthesized_expression "(iVar7 < iVar12)" ( (binary_expression "iVar7 < iVar12" identifier < identifier) )) (goto_statement "goto LAB_003de070;" goto statement_identifier ;)) })) (goto_statement "goto LAB_003de404;" goto statement_identifier ;) })) })) (labeled_statement "LAB_003de468:\n          piVar3 = (int *)0x0;" statement_identifier : (expression_statement "piVar3 = (int *)0x0;" (assignment_expression "piVar3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "bVar13 = **(byte **)(param_1 + 0xc);" (assignment_expression "bVar13 = **(byte **)(param_1 + 0xc)" identifier = (pointer_expression "**(byte **)(param_1 + 0xc)" * (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))))) ;) (goto_statement "goto joined_r0x003de0b0;" goto statement_identifier ;) })) }) (else_clause "else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = d_compact_number();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }" else (compound_statement "{\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = d_compact_number();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }" { (if_statement "if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }" if (parenthesized_expression "(pbVar9[1] != 0x74)" ( (binary_expression "pbVar9[1] != 0x74" (subscript_expression "pbVar9[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          return (int *)0x0;\n        }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9 + 1;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9 + 1" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "bVar13 = pbVar9[1];" (assignment_expression "bVar13 = pbVar9[1]" identifier = (subscript_expression "pbVar9[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = d_compact_number();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }" if (parenthesized_expression "(bVar13 == 0x74)" ( (binary_expression "bVar13 == 0x74" identifier == number_literal) )) (compound_statement "{\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = d_compact_number();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }" { (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9 + 2;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9 + 2" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pbVar9 + 2" identifier + number_literal)) ;) (expression_statement "iVar4 = d_compact_number();" (assignment_expression "iVar4 = d_compact_number()" identifier = (call_expression "d_compact_number()" identifier (argument_list "()" ( )))) ;) (if_statement "if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }" if (parenthesized_expression "(-1 < iVar4)" ( (binary_expression "-1 < iVar4" number_literal < identifier) )) (compound_statement "{\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }" { (expression_statement "iVar5 = *(int *)(param_1 + 0x14);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x14)" identifier = (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }" if (parenthesized_expression "(iVar5 < *(int *)(param_1 + 0x18))" ( (binary_expression "iVar5 < *(int *)(param_1 + 0x18)" identifier < (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }" { (expression_statement "iVar7 = *(int *)(param_1 + 0x20);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x20)" identifier = (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(param_1 + 0x24);" (assignment_expression "iVar10 = *(int *)(param_1 + 0x24)" identifier = (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);" (assignment_expression "piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10)" identifier = (cast_expression "(int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x10) + iVar5 * 0x10)" ( (binary_expression "*(int *)(param_1 + 0x10) + iVar5 * 0x10" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) + (binary_expression "iVar5 * 0x10" identifier * number_literal)) )))) ;) (expression_statement "pbVar9 = *(byte **)(param_1 + 0xc);" (assignment_expression "pbVar9 = *(byte **)(param_1 + 0xc)" identifier = (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "piVar3[1] = 0;" (assignment_expression "piVar3[1] = 0" (subscript_expression "piVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int *)(param_1 + 0x14) = iVar5 + 1;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar5 + 1" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "piVar3[2] = iVar4;" (assignment_expression "piVar3[2] = iVar4" (subscript_expression "piVar3[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar3 = 0x47;" (assignment_expression "*piVar3 = 0x47" (pointer_expression "*piVar3" * identifier) = number_literal) ;) (if_statement "if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }" if (parenthesized_expression "(iVar7 < iVar10)" ( (binary_expression "iVar7 < iVar10" identifier < identifier) )) (compound_statement "{\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }" { (labeled_statement "LAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;" statement_identifier : (expression_statement "*(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;" (assignment_expression "*(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3" (pointer_expression "*(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4)" * (cast_expression "(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_1 + 0x1c) + iVar7 * 4)" ( (binary_expression "*(int *)(param_1 + 0x1c) + iVar7 * 4" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) + (binary_expression "iVar7 * 4" identifier * number_literal)) )))) = identifier) ;)) (expression_statement "*(int *)(param_1 + 0x20) = iVar7 + 1;" (assignment_expression "*(int *)(param_1 + 0x20) = iVar7 + 1" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar9;" (assignment_expression "bVar13 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) (goto_statement "goto joined_r0x003de0b0;" goto statement_identifier ;) })) (labeled_statement "LAB_003de404:\n              bVar13 = *pbVar9;" statement_identifier : (expression_statement "bVar13 = *pbVar9;" (assignment_expression "bVar13 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;)) (expression_statement "piVar3 = (int *)0x0;" (assignment_expression "piVar3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto joined_r0x003de0b0;" goto statement_identifier ;) })) })) (goto_statement "goto LAB_003de468;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_003de1ac:\n      piVar3 = (int *)0x0;" statement_identifier : (expression_statement "piVar3 = (int *)0x0;" (assignment_expression "piVar3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (goto_statement "goto joined_r0x003de0b0;" goto statement_identifier ;) })) (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9 + 1;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9 + 1" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "piVar3 = (int *)d_source_name();" (assignment_expression "piVar3 = (int *)d_source_name()" identifier = (cast_expression "(int *)d_source_name()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "d_source_name()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (piVar3 == (int *)0x0) {\n      return (int *)0x0;\n    }" if (parenthesized_expression "(piVar3 == (int *)0x0)" ( (binary_expression "piVar3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return (int *)0x0;\n    }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "iVar4 = d_discriminator(param_1);" (assignment_expression "iVar4 = d_discriminator(param_1)" identifier = (call_expression "d_discriminator(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar4 == 0) {\n      return (int *)0x0;\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      return (int *)0x0;\n    }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) }))) (expression_statement "bVar13 = **(byte **)(param_1 + 0xc);" (assignment_expression "bVar13 = **(byte **)(param_1 + 0xc)" identifier = (pointer_expression "**(byte **)(param_1 + 0xc)" * (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))))) ;) (labeled_statement "joined_r0x003de0b0:\n  if (bVar13 != 0x42) {\n    return piVar3;\n  }" statement_identifier : (if_statement "if (bVar13 != 0x42) {\n    return piVar3;\n  }" if (parenthesized_expression "(bVar13 != 0x42)" ( (binary_expression "bVar13 != 0x42" identifier != number_literal) )) (compound_statement "{\n    return piVar3;\n  }" { (return_statement "return piVar3;" return identifier ;) }))) (expression_statement "piVar3 = (int *)d_abi_tags(param_1,piVar3);" (assignment_expression "piVar3 = (int *)d_abi_tags(param_1,piVar3)" identifier = (cast_expression "(int *)d_abi_tags(param_1,piVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "d_abi_tags(param_1,piVar3)" identifier (argument_list "(param_1,piVar3)" ( identifier , identifier ))))) ;) (return_statement "return piVar3;" return identifier ;) })))
(translation_unit "int * FUN_003ddf14(int param_1)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  undefined4 uVar8;\n  byte *pbVar9;\n  int iVar10;\n  undefined *puVar11;\n  int iVar12;\n  byte bVar13;\n  \n  pbVar9 = *(byte **)(param_1 + 0xc);\n  bVar13 = *pbVar9;\n  uVar2 = (uint)bVar13;\n  if (uVar2 - 0x30 < 10) {\n    piVar3 = (int *)FUN_003da8b0();\n    bVar13 = **(byte **)(param_1 + 0xc);\n    goto joined_r0x003de0b0;\n  }\n  if (uVar2 - 0x61 < 0x1a) {\n    if ((bVar13 == 0x6f) && (pbVar9[1] == 0x6e)) {\n      *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n    }\n    piVar3 = (int *)FUN_003dd6ac(param_1);\n    puVar1 = PTR_strcmp_004c5a68;\n    if ((piVar3 != (int *)0x0) && (*piVar3 == 0x31)) {\n      uVar8 = *(undefined4 *)piVar3[2];\n      puVar11 = PTR_UINT_004c12dc + -0x57c0;\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];\n      iVar4 = (*(code *)puVar1)(uVar8,puVar11);\n      if (iVar4 == 0) {\n        uVar8 = FUN_003da8b0(param_1);\n        piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }\n    }\n  }\n  else {\n    if (uVar2 - 0x43 < 2) {\n      piVar6 = *(int **)(param_1 + 0x28);\n      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    \n                    \n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }\n      puVar1 = PTR_UINT_004c12dc;\n      if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        FUN_003dc9d0(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }\n      iVar5 = *(int *)(param_1 + 0x14);\n      if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }\n      bVar13 = *pbVar9;\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    if (bVar13 != 0x4c) {\n      if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }\n      if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }\nLAB_003de1ac:\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n    piVar3 = (int *)FUN_003da8b0();\n    if (piVar3 == (int *)0x0) {\n      return (int *)0x0;\n    }\n    iVar4 = FUN_003daf14(param_1);\n    if (iVar4 == 0) {\n      return (int *)0x0;\n    }\n  }\n  bVar13 = **(byte **)(param_1 + 0xc);\njoined_r0x003de0b0:\n  if (bVar13 != 0x42) {\n    return piVar3;\n  }\n  piVar3 = (int *)FUN_003daab4(param_1,piVar3);\n  return piVar3;\n}\n\n" (function_definition "int * FUN_003ddf14(int param_1)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  undefined4 uVar8;\n  byte *pbVar9;\n  int iVar10;\n  undefined *puVar11;\n  int iVar12;\n  byte bVar13;\n  \n  pbVar9 = *(byte **)(param_1 + 0xc);\n  bVar13 = *pbVar9;\n  uVar2 = (uint)bVar13;\n  if (uVar2 - 0x30 < 10) {\n    piVar3 = (int *)FUN_003da8b0();\n    bVar13 = **(byte **)(param_1 + 0xc);\n    goto joined_r0x003de0b0;\n  }\n  if (uVar2 - 0x61 < 0x1a) {\n    if ((bVar13 == 0x6f) && (pbVar9[1] == 0x6e)) {\n      *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n    }\n    piVar3 = (int *)FUN_003dd6ac(param_1);\n    puVar1 = PTR_strcmp_004c5a68;\n    if ((piVar3 != (int *)0x0) && (*piVar3 == 0x31)) {\n      uVar8 = *(undefined4 *)piVar3[2];\n      puVar11 = PTR_UINT_004c12dc + -0x57c0;\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];\n      iVar4 = (*(code *)puVar1)(uVar8,puVar11);\n      if (iVar4 == 0) {\n        uVar8 = FUN_003da8b0(param_1);\n        piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }\n    }\n  }\n  else {\n    if (uVar2 - 0x43 < 2) {\n      piVar6 = *(int **)(param_1 + 0x28);\n      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    \n                    \n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }\n      puVar1 = PTR_UINT_004c12dc;\n      if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        FUN_003dc9d0(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }\n      iVar5 = *(int *)(param_1 + 0x14);\n      if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }\n      bVar13 = *pbVar9;\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    if (bVar13 != 0x4c) {\n      if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }\n      if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }\nLAB_003de1ac:\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n    piVar3 = (int *)FUN_003da8b0();\n    if (piVar3 == (int *)0x0) {\n      return (int *)0x0;\n    }\n    iVar4 = FUN_003daf14(param_1);\n    if (iVar4 == 0) {\n      return (int *)0x0;\n    }\n  }\n  bVar13 = **(byte **)(param_1 + 0xc);\njoined_r0x003de0b0:\n  if (bVar13 != 0x42) {\n    return piVar3;\n  }\n  piVar3 = (int *)FUN_003daab4(param_1,piVar3);\n  return piVar3;\n}" primitive_type (pointer_declarator "* FUN_003ddf14(int param_1)" * (function_declarator "FUN_003ddf14(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) )))) (compound_statement "{\n  undefined *puVar1;\n  uint uVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  undefined4 uVar8;\n  byte *pbVar9;\n  int iVar10;\n  undefined *puVar11;\n  int iVar12;\n  byte bVar13;\n  \n  pbVar9 = *(byte **)(param_1 + 0xc);\n  bVar13 = *pbVar9;\n  uVar2 = (uint)bVar13;\n  if (uVar2 - 0x30 < 10) {\n    piVar3 = (int *)FUN_003da8b0();\n    bVar13 = **(byte **)(param_1 + 0xc);\n    goto joined_r0x003de0b0;\n  }\n  if (uVar2 - 0x61 < 0x1a) {\n    if ((bVar13 == 0x6f) && (pbVar9[1] == 0x6e)) {\n      *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n    }\n    piVar3 = (int *)FUN_003dd6ac(param_1);\n    puVar1 = PTR_strcmp_004c5a68;\n    if ((piVar3 != (int *)0x0) && (*piVar3 == 0x31)) {\n      uVar8 = *(undefined4 *)piVar3[2];\n      puVar11 = PTR_UINT_004c12dc + -0x57c0;\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];\n      iVar4 = (*(code *)puVar1)(uVar8,puVar11);\n      if (iVar4 == 0) {\n        uVar8 = FUN_003da8b0(param_1);\n        piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }\n    }\n  }\n  else {\n    if (uVar2 - 0x43 < 2) {\n      piVar6 = *(int **)(param_1 + 0x28);\n      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    \n                    \n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }\n      puVar1 = PTR_UINT_004c12dc;\n      if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        FUN_003dc9d0(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }\n      iVar5 = *(int *)(param_1 + 0x14);\n      if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }\n      bVar13 = *pbVar9;\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    if (bVar13 != 0x4c) {\n      if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }\n      if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }\nLAB_003de1ac:\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n    piVar3 = (int *)FUN_003da8b0();\n    if (piVar3 == (int *)0x0) {\n      return (int *)0x0;\n    }\n    iVar4 = FUN_003daf14(param_1);\n    if (iVar4 == 0) {\n      return (int *)0x0;\n    }\n  }\n  bVar13 = **(byte **)(param_1 + 0xc);\njoined_r0x003de0b0:\n  if (bVar13 != 0x42) {\n    return piVar3;\n  }\n  piVar3 = (int *)FUN_003daab4(param_1,piVar3);\n  return piVar3;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "byte bVar13;" type_identifier identifier ;) (expression_statement "pbVar9 = *(byte **)(param_1 + 0xc);" (assignment_expression "pbVar9 = *(byte **)(param_1 + 0xc)" identifier = (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "bVar13 = *pbVar9;" (assignment_expression "bVar13 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) (expression_statement "uVar2 = (uint)bVar13;" (assignment_expression "uVar2 = (uint)bVar13" identifier = (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar2 - 0x30 < 10) {\n    piVar3 = (int *)FUN_003da8b0();\n    bVar13 = **(byte **)(param_1 + 0xc);\n    goto joined_r0x003de0b0;\n  }" if (parenthesized_expression "(uVar2 - 0x30 < 10)" ( (binary_expression "uVar2 - 0x30 < 10" (binary_expression "uVar2 - 0x30" identifier - number_literal) < number_literal) )) (compound_statement "{\n    piVar3 = (int *)FUN_003da8b0();\n    bVar13 = **(byte **)(param_1 + 0xc);\n    goto joined_r0x003de0b0;\n  }" { (expression_statement "piVar3 = (int *)FUN_003da8b0();" (assignment_expression "piVar3 = (int *)FUN_003da8b0()" identifier = (cast_expression "(int *)FUN_003da8b0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003da8b0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "bVar13 = **(byte **)(param_1 + 0xc);" (assignment_expression "bVar13 = **(byte **)(param_1 + 0xc)" identifier = (pointer_expression "**(byte **)(param_1 + 0xc)" * (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))))) ;) (goto_statement "goto joined_r0x003de0b0;" goto statement_identifier ;) })) (if_statement "if (uVar2 - 0x61 < 0x1a) {\n    if ((bVar13 == 0x6f) && (pbVar9[1] == 0x6e)) {\n      *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n    }\n    piVar3 = (int *)FUN_003dd6ac(param_1);\n    puVar1 = PTR_strcmp_004c5a68;\n    if ((piVar3 != (int *)0x0) && (*piVar3 == 0x31)) {\n      uVar8 = *(undefined4 *)piVar3[2];\n      puVar11 = PTR_UINT_004c12dc + -0x57c0;\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];\n      iVar4 = (*(code *)puVar1)(uVar8,puVar11);\n      if (iVar4 == 0) {\n        uVar8 = FUN_003da8b0(param_1);\n        piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }\n    }\n  }\n  else {\n    if (uVar2 - 0x43 < 2) {\n      piVar6 = *(int **)(param_1 + 0x28);\n      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    \n                    \n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }\n      puVar1 = PTR_UINT_004c12dc;\n      if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        FUN_003dc9d0(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }\n      iVar5 = *(int *)(param_1 + 0x14);\n      if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }\n      bVar13 = *pbVar9;\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    if (bVar13 != 0x4c) {\n      if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }\n      if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }\nLAB_003de1ac:\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n    piVar3 = (int *)FUN_003da8b0();\n    if (piVar3 == (int *)0x0) {\n      return (int *)0x0;\n    }\n    iVar4 = FUN_003daf14(param_1);\n    if (iVar4 == 0) {\n      return (int *)0x0;\n    }\n  }" if (parenthesized_expression "(uVar2 - 0x61 < 0x1a)" ( (binary_expression "uVar2 - 0x61 < 0x1a" (binary_expression "uVar2 - 0x61" identifier - number_literal) < number_literal) )) (compound_statement "{\n    if ((bVar13 == 0x6f) && (pbVar9[1] == 0x6e)) {\n      *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n    }\n    piVar3 = (int *)FUN_003dd6ac(param_1);\n    puVar1 = PTR_strcmp_004c5a68;\n    if ((piVar3 != (int *)0x0) && (*piVar3 == 0x31)) {\n      uVar8 = *(undefined4 *)piVar3[2];\n      puVar11 = PTR_UINT_004c12dc + -0x57c0;\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];\n      iVar4 = (*(code *)puVar1)(uVar8,puVar11);\n      if (iVar4 == 0) {\n        uVar8 = FUN_003da8b0(param_1);\n        piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }\n    }\n  }" { (if_statement "if ((bVar13 == 0x6f) && (pbVar9[1] == 0x6e)) {\n      *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n    }" if (parenthesized_expression "((bVar13 == 0x6f) && (pbVar9[1] == 0x6e))" ( (binary_expression "(bVar13 == 0x6f) && (pbVar9[1] == 0x6e)" (parenthesized_expression "(bVar13 == 0x6f)" ( (binary_expression "bVar13 == 0x6f" identifier == number_literal) )) && (parenthesized_expression "(pbVar9[1] == 0x6e)" ( (binary_expression "pbVar9[1] == 0x6e" (subscript_expression "pbVar9[1]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n      *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n    }" { (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9 + 2;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9 + 2" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pbVar9 + 2" identifier + number_literal)) ;) })) (expression_statement "piVar3 = (int *)FUN_003dd6ac(param_1);" (assignment_expression "piVar3 = (int *)FUN_003dd6ac(param_1)" identifier = (cast_expression "(int *)FUN_003dd6ac(param_1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003dd6ac(param_1)" identifier (argument_list "(param_1)" ( identifier ))))) ;) (expression_statement "puVar1 = PTR_strcmp_004c5a68;" (assignment_expression "puVar1 = PTR_strcmp_004c5a68" identifier = identifier) ;) (if_statement "if ((piVar3 != (int *)0x0) && (*piVar3 == 0x31)) {\n      uVar8 = *(undefined4 *)piVar3[2];\n      puVar11 = PTR_UINT_004c12dc + -0x57c0;\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];\n      iVar4 = (*(code *)puVar1)(uVar8,puVar11);\n      if (iVar4 == 0) {\n        uVar8 = FUN_003da8b0(param_1);\n        piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }\n    }" if (parenthesized_expression "((piVar3 != (int *)0x0) && (*piVar3 == 0x31))" ( (binary_expression "(piVar3 != (int *)0x0) && (*piVar3 == 0x31)" (parenthesized_expression "(piVar3 != (int *)0x0)" ( (binary_expression "piVar3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*piVar3 == 0x31)" ( (binary_expression "*piVar3 == 0x31" (pointer_expression "*piVar3" * identifier) == number_literal) ))) )) (compound_statement "{\n      uVar8 = *(undefined4 *)piVar3[2];\n      puVar11 = PTR_UINT_004c12dc + -0x57c0;\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];\n      iVar4 = (*(code *)puVar1)(uVar8,puVar11);\n      if (iVar4 == 0) {\n        uVar8 = FUN_003da8b0(param_1);\n        piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }\n    }" { (expression_statement "uVar8 = *(undefined4 *)piVar3[2];" (assignment_expression "uVar8 = *(undefined4 *)piVar3[2]" identifier = (pointer_expression "*(undefined4 *)piVar3[2]" * (cast_expression "(undefined4 *)piVar3[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[2]" identifier [ number_literal ])))) ;) (expression_statement "puVar11 = PTR_UINT_004c12dc + -0x57c0;" (assignment_expression "puVar11 = PTR_UINT_004c12dc + -0x57c0" identifier = (binary_expression "PTR_UINT_004c12dc + -0x57c0" identifier + number_literal)) ;) (expression_statement "*(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];" (assignment_expression "*(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2]" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2]" (binary_expression "*(int *)(param_1 + 0x2c) + 7" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) + number_literal) + (subscript_expression "((undefined4 *)piVar3[2])[2]" (parenthesized_expression "((undefined4 *)piVar3[2])" ( (cast_expression "(undefined4 *)piVar3[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[2]" identifier [ number_literal ])) )) [ number_literal ]))) ;) (expression_statement "iVar4 = (*(code *)puVar1)(uVar8,puVar11);" (assignment_expression "iVar4 = (*(code *)puVar1)(uVar8,puVar11)" identifier = (call_expression "(*(code *)puVar1)(uVar8,puVar11)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar8,puVar11)" ( identifier , identifier )))) ;) (if_statement "if (iVar4 == 0) {\n        uVar8 = FUN_003da8b0(param_1);\n        piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar8 = FUN_003da8b0(param_1);\n        piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }" { (expression_statement "uVar8 = FUN_003da8b0(param_1);" (assignment_expression "uVar8 = FUN_003da8b0(param_1)" identifier = (call_expression "FUN_003da8b0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8);" (assignment_expression "piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8)" identifier = (cast_expression "(int *)FUN_003da330(param_1,0x36,piVar3,uVar8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003da330(param_1,0x36,piVar3,uVar8)" identifier (argument_list "(param_1,0x36,piVar3,uVar8)" ( identifier , number_literal , identifier , identifier ))))) ;) (expression_statement "bVar13 = **(byte **)(param_1 + 0xc);" (assignment_expression "bVar13 = **(byte **)(param_1 + 0xc)" identifier = (pointer_expression "**(byte **)(param_1 + 0xc)" * (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))))) ;) (goto_statement "goto joined_r0x003de0b0;" goto statement_identifier ;) })) })) }) (else_clause "else {\n    if (uVar2 - 0x43 < 2) {\n      piVar6 = *(int **)(param_1 + 0x28);\n      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    \n                    \n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }\n      puVar1 = PTR_UINT_004c12dc;\n      if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        FUN_003dc9d0(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }\n      iVar5 = *(int *)(param_1 + 0x14);\n      if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }\n      bVar13 = *pbVar9;\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    if (bVar13 != 0x4c) {\n      if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }\n      if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }\nLAB_003de1ac:\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n    piVar3 = (int *)FUN_003da8b0();\n    if (piVar3 == (int *)0x0) {\n      return (int *)0x0;\n    }\n    iVar4 = FUN_003daf14(param_1);\n    if (iVar4 == 0) {\n      return (int *)0x0;\n    }\n  }" else (compound_statement "{\n    if (uVar2 - 0x43 < 2) {\n      piVar6 = *(int **)(param_1 + 0x28);\n      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    \n                    \n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }\n      puVar1 = PTR_UINT_004c12dc;\n      if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        FUN_003dc9d0(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }\n      iVar5 = *(int *)(param_1 + 0x14);\n      if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }\n      bVar13 = *pbVar9;\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    if (bVar13 != 0x4c) {\n      if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }\n      if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }\nLAB_003de1ac:\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n    piVar3 = (int *)FUN_003da8b0();\n    if (piVar3 == (int *)0x0) {\n      return (int *)0x0;\n    }\n    iVar4 = FUN_003daf14(param_1);\n    if (iVar4 == 0) {\n      return (int *)0x0;\n    }\n  }" { (if_statement "if (uVar2 - 0x43 < 2) {\n      piVar6 = *(int **)(param_1 + 0x28);\n      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    \n                    \n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }\n      puVar1 = PTR_UINT_004c12dc;\n      if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        FUN_003dc9d0(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }\n      iVar5 = *(int *)(param_1 + 0x14);\n      if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }\n      bVar13 = *pbVar9;\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }" if (parenthesized_expression "(uVar2 - 0x43 < 2)" ( (binary_expression "uVar2 - 0x43 < 2" (binary_expression "uVar2 - 0x43" identifier - number_literal) < number_literal) )) (compound_statement "{\n      piVar6 = *(int **)(param_1 + 0x28);\n      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    \n                    \n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }\n      puVar1 = PTR_UINT_004c12dc;\n      if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        FUN_003dc9d0(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }\n      iVar5 = *(int *)(param_1 + 0x14);\n      if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }\n      bVar13 = *pbVar9;\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }" { (expression_statement "piVar6 = *(int **)(param_1 + 0x28);" (assignment_expression "piVar6 = *(int **)(param_1 + 0x28)" identifier = (pointer_expression "*(int **)(param_1 + 0x28)" * (cast_expression "(int **)(param_1 + 0x28)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    \n                    \n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }" if (parenthesized_expression "((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18))))" ( (binary_expression "(piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))" (parenthesized_expression "(piVar6 == (int *)0x0)" ( (binary_expression "piVar6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((*piVar6 != 0 && (*piVar6 != 0x18)))" ( (parenthesized_expression "(*piVar6 != 0 && (*piVar6 != 0x18))" ( (binary_expression "*piVar6 != 0 && (*piVar6 != 0x18)" (binary_expression "*piVar6 != 0" (pointer_expression "*piVar6" * identifier) != number_literal) && (parenthesized_expression "(*piVar6 != 0x18)" ( (binary_expression "*piVar6 != 0x18" (pointer_expression "*piVar6" * identifier) != number_literal) ))) )) ))) )) (compound_statement "{\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }" { (if_statement "if (bVar13 == 0x44) goto LAB_003de2a0;" if (parenthesized_expression "(bVar13 == 0x44)" ( (binary_expression "bVar13 == 0x44" identifier == number_literal) )) (goto_statement "goto LAB_003de2a0;" goto statement_identifier ;)) }) (else_clause "else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    \n                    \n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }" else (compound_statement "{\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    \n                    \n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }" { (expression_statement "*(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];" (assignment_expression "*(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3]" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x2c) + piVar6[3]" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) + (subscript_expression "piVar6[3]" identifier [ number_literal ]))) ;) (expression_statement "bVar13 = *pbVar9;" (assignment_expression "bVar13 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) (if_statement "if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    \n                    \n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }" if (parenthesized_expression "(bVar13 != 0x43)" ( (binary_expression "bVar13 != 0x43" identifier != number_literal) )) (compound_statement "{\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    \n                    \n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }" { (expression_statement "piVar3 = (int *)0x0;" (assignment_expression "piVar3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (bVar13 != 0x44) goto joined_r0x003de0b0;" if (parenthesized_expression "(bVar13 != 0x44)" ( (binary_expression "bVar13 != 0x44" identifier != number_literal) )) (goto_statement "goto joined_r0x003de0b0;" goto statement_identifier ;)) (labeled_statement "LAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;" statement_identifier : (expression_statement "uVar2 = pbVar9[1] - 0x30 & 0xff;" (assignment_expression "uVar2 = pbVar9[1] - 0x30 & 0xff" identifier = (binary_expression "pbVar9[1] - 0x30 & 0xff" (binary_expression "pbVar9[1] - 0x30" (subscript_expression "pbVar9[1]" identifier [ number_literal ]) - number_literal) & number_literal)) ;)) (if_statement "if (uVar2 < 6) {\n                    \n                    \n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }" if (parenthesized_expression "(uVar2 < 6)" ( (binary_expression "uVar2 < 6" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }" { (expression_statement "piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();" (assignment_expression "piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))()" identifier = (cast_expression "(int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))()" (parenthesized_expression "(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))" ( (pointer_expression "*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210)" * (cast_expression "(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210)" ( (ERROR "gold::Position_dependent_options::" identifier : : identifier : :) (binary_expression "default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210" (binary_expression "default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)" identifier + (pointer_expression "*(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)" * (cast_expression "(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)" ( (binary_expression "PTR_UINT_004c12dc + uVar2 * 4 + 0x100" (binary_expression "PTR_UINT_004c12dc + uVar2 * 4" identifier + (binary_expression "uVar2 * 4" identifier * number_literal)) + number_literal) ))))) + number_literal) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return piVar3;" return identifier ;) })) (expression_statement "piVar3 = (int *)0x0;" (assignment_expression "piVar3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto joined_r0x003de0b0;" goto statement_identifier ;) })) }))) (expression_statement "puVar1 = PTR_UINT_004c12dc;" (assignment_expression "puVar1 = PTR_UINT_004c12dc" identifier = identifier) ;) (if_statement "if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        FUN_003dc9d0(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }" if (parenthesized_expression "((char)pbVar9[1] == 0x49)" ( (binary_expression "(char)pbVar9[1] == 0x49" (cast_expression "(char)pbVar9[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar9[1]" identifier [ number_literal ])) == number_literal) )) (compound_statement "{\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        FUN_003dc9d0(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }" { (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9 + 1;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9 + 1" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "puVar1 = PTR_UINT_004c12dc;" (assignment_expression "puVar1 = PTR_UINT_004c12dc" identifier = identifier) ;) (expression_statement "uVar2 = pbVar9[2] - 0x31 & 0xff;" (assignment_expression "uVar2 = pbVar9[2] - 0x31 & 0xff" identifier = (binary_expression "pbVar9[2] - 0x31 & 0xff" (binary_expression "pbVar9[2] - 0x31" (subscript_expression "pbVar9[2]" identifier [ number_literal ]) - number_literal) & number_literal)) ;) (if_statement "if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }" if (parenthesized_expression "(4 < uVar2)" ( (binary_expression "4 < uVar2" number_literal < identifier) )) (compound_statement "{\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }" { (expression_statement "bVar13 = pbVar9[1];" (assignment_expression "bVar13 = pbVar9[1]" identifier = (subscript_expression "pbVar9[1]" identifier [ number_literal ])) ;) (expression_statement "piVar3 = (int *)0x0;" (assignment_expression "piVar3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto joined_r0x003de0b0;" goto statement_identifier ;) })) (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9 + 3;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9 + 3" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pbVar9 + 3" identifier + number_literal)) ;) (expression_statement "iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);" (assignment_expression "iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538)" identifier = (pointer_expression "*(int *)(puVar1 + uVar2 * 4 + 0x538)" * (cast_expression "(int *)(puVar1 + uVar2 * 4 + 0x538)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + uVar2 * 4 + 0x538)" ( (binary_expression "puVar1 + uVar2 * 4 + 0x538" (binary_expression "puVar1 + uVar2 * 4" identifier + (binary_expression "uVar2 * 4" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "FUN_003dc9d0(param_1);" (call_expression "FUN_003dc9d0(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "piVar6 = *(int **)(param_1 + 0x28);" (assignment_expression "piVar6 = *(int **)(param_1 + 0x28)" identifier = (pointer_expression "*(int **)(param_1 + 0x28)" * (cast_expression "(int **)(param_1 + 0x28)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "pbVar9 = *(byte **)(param_1 + 0xc);" (assignment_expression "pbVar9 = *(byte **)(param_1 + 0xc)" identifier = (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }" else (compound_statement "{\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }" { (expression_statement "uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;" (assignment_expression "uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff" identifier = (binary_expression "(int)(char)pbVar9[1] - 0x31U & 0xff" (binary_expression "(int)(char)pbVar9[1] - 0x31U" (cast_expression "(int)(char)pbVar9[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar9[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar9[1]" identifier [ number_literal ]))) - number_literal) & number_literal)) ;) (if_statement "if (4 < uVar2) {\n          return (int *)0x0;\n        }" if (parenthesized_expression "(4 < uVar2)" ( (binary_expression "4 < uVar2" number_literal < identifier) )) (compound_statement "{\n          return (int *)0x0;\n        }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "pbVar9 = pbVar9 + 2;" (assignment_expression "pbVar9 = pbVar9 + 2" identifier = (binary_expression "pbVar9 + 2" identifier + number_literal)) ;) (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);" (assignment_expression "iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538)" identifier = (pointer_expression "*(int *)(puVar1 + uVar2 * 4 + 0x538)" * (cast_expression "(int *)(puVar1 + uVar2 * 4 + 0x538)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + uVar2 * 4 + 0x538)" ( (binary_expression "puVar1 + uVar2 * 4 + 0x538" (binary_expression "puVar1 + uVar2 * 4" identifier + (binary_expression "uVar2 * 4" identifier * number_literal)) + number_literal) ))))) ;) }))) (expression_statement "iVar5 = *(int *)(param_1 + 0x14);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x14)" identifier = (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }" if (parenthesized_expression "(iVar5 < *(int *)(param_1 + 0x18))" ( (binary_expression "iVar5 < *(int *)(param_1 + 0x18)" identifier < (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }" { (expression_statement "piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);" (assignment_expression "piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10)" identifier = (cast_expression "(int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x10) + iVar5 * 0x10)" ( (binary_expression "*(int *)(param_1 + 0x10) + iVar5 * 0x10" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) + (binary_expression "iVar5 * 0x10" identifier * number_literal)) )))) ;) (expression_statement "piVar3[1] = 0;" (assignment_expression "piVar3[1] = 0" (subscript_expression "piVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int *)(param_1 + 0x14) = iVar5 + 1;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar5 + 1" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (if_statement "if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }" if (parenthesized_expression "(piVar6 != (int *)0x0)" ( (binary_expression "piVar6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }" { (expression_statement "piVar3[1] = 0;" (assignment_expression "piVar3[1] = 0" (subscript_expression "piVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar3[2] = iVar4;" (assignment_expression "piVar3[2] = iVar4" (subscript_expression "piVar3[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar3 = 7;" (assignment_expression "*piVar3 = 7" (pointer_expression "*piVar3" * identifier) = number_literal) ;) (expression_statement "piVar3[3] = (int)piVar6;" (assignment_expression "piVar3[3] = (int)piVar6" (subscript_expression "piVar3[3]" identifier [ number_literal ]) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "bVar13 = *pbVar9;" (assignment_expression "bVar13 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) (goto_statement "goto joined_r0x003de0b0;" goto statement_identifier ;) })) })) (expression_statement "bVar13 = *pbVar9;" (assignment_expression "bVar13 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) (expression_statement "piVar3 = (int *)0x0;" (assignment_expression "piVar3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto joined_r0x003de0b0;" goto statement_identifier ;) })) (if_statement "if (bVar13 != 0x4c) {\n      if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }\n      if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }\nLAB_003de1ac:\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }" if (parenthesized_expression "(bVar13 != 0x4c)" ( (binary_expression "bVar13 != 0x4c" identifier != number_literal) )) (compound_statement "{\n      if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }\n      if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }\nLAB_003de1ac:\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }" { (if_statement "if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }" if (parenthesized_expression "(bVar13 != 0x55)" ( (binary_expression "bVar13 != 0x55" identifier != number_literal) )) (compound_statement "{\n        return (int *)0x0;\n      }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }" if (parenthesized_expression "(pbVar9[1] == 0x6c)" ( (binary_expression "pbVar9[1] == 0x6c" (subscript_expression "pbVar9[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }" { (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9 + 1;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9 + 1" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "bVar13 = pbVar9[1];" (assignment_expression "bVar13 = pbVar9[1]" identifier = (subscript_expression "pbVar9[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }" if (parenthesized_expression "(bVar13 == 0x6c)" ( (binary_expression "bVar13 == 0x6c" identifier == number_literal) )) (compound_statement "{\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }" { (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9 + 2;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9 + 2" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pbVar9 + 2" identifier + number_literal)) ;) (expression_statement "iVar4 = FUN_003dd8b0();" (assignment_expression "iVar4 = FUN_003dd8b0()" identifier = (call_expression "FUN_003dd8b0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }" { (expression_statement "bVar13 = **(byte **)(param_1 + 0xc);" (assignment_expression "bVar13 = **(byte **)(param_1 + 0xc)" identifier = (pointer_expression "**(byte **)(param_1 + 0xc)" * (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))))) ;) (if_statement "if (bVar13 != 0x45) goto LAB_003de1ac;" if (parenthesized_expression "(bVar13 != 0x45)" ( (binary_expression "bVar13 != 0x45" identifier != number_literal) )) (goto_statement "goto LAB_003de1ac;" goto statement_identifier ;)) (expression_statement "*(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;" (assignment_expression "*(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "*(byte **)(param_1 + 0xc) + 1" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar5 = FUN_003da780(param_1);" (assignment_expression "iVar5 = FUN_003da780(param_1)" identifier = (call_expression "FUN_003da780(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }" if (parenthesized_expression "(-1 < iVar5)" ( (binary_expression "-1 < iVar5" number_literal < identifier) )) (compound_statement "{\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }" { (expression_statement "iVar10 = *(int *)(param_1 + 0x14);" (assignment_expression "iVar10 = *(int *)(param_1 + 0x14)" identifier = (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "pbVar9 = *(byte **)(param_1 + 0xc);" (assignment_expression "pbVar9 = *(byte **)(param_1 + 0xc)" identifier = (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }" if (parenthesized_expression "(iVar10 < *(int *)(param_1 + 0x18))" ( (binary_expression "iVar10 < *(int *)(param_1 + 0x18)" identifier < (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }" { (expression_statement "iVar7 = *(int *)(param_1 + 0x20);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x20)" identifier = (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(param_1 + 0x24);" (assignment_expression "iVar12 = *(int *)(param_1 + 0x24)" identifier = (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);" (assignment_expression "piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10)" identifier = (cast_expression "(int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x10) + iVar10 * 0x10)" ( (binary_expression "*(int *)(param_1 + 0x10) + iVar10 * 0x10" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) + (binary_expression "iVar10 * 0x10" identifier * number_literal)) )))) ;) (expression_statement "piVar3[1] = 0;" (assignment_expression "piVar3[1] = 0" (subscript_expression "piVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int *)(param_1 + 0x14) = iVar10 + 1;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar10 + 1" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "piVar3[2] = iVar4;" (assignment_expression "piVar3[2] = iVar4" (subscript_expression "piVar3[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar3 = 0x45;" (assignment_expression "*piVar3 = 0x45" (pointer_expression "*piVar3" * identifier) = number_literal) ;) (expression_statement "piVar3[3] = iVar5;" (assignment_expression "piVar3[3] = iVar5" (subscript_expression "piVar3[3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar7 < iVar12) goto LAB_003de070;" if (parenthesized_expression "(iVar7 < iVar12)" ( (binary_expression "iVar7 < iVar12" identifier < identifier) )) (goto_statement "goto LAB_003de070;" goto statement_identifier ;)) })) (goto_statement "goto LAB_003de404;" goto statement_identifier ;) })) })) (labeled_statement "LAB_003de468:\n          piVar3 = (int *)0x0;" statement_identifier : (expression_statement "piVar3 = (int *)0x0;" (assignment_expression "piVar3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "bVar13 = **(byte **)(param_1 + 0xc);" (assignment_expression "bVar13 = **(byte **)(param_1 + 0xc)" identifier = (pointer_expression "**(byte **)(param_1 + 0xc)" * (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))))) ;) (goto_statement "goto joined_r0x003de0b0;" goto statement_identifier ;) })) }) (else_clause "else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }" else (compound_statement "{\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }" { (if_statement "if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }" if (parenthesized_expression "(pbVar9[1] != 0x74)" ( (binary_expression "pbVar9[1] != 0x74" (subscript_expression "pbVar9[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          return (int *)0x0;\n        }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9 + 1;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9 + 1" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "bVar13 = pbVar9[1];" (assignment_expression "bVar13 = pbVar9[1]" identifier = (subscript_expression "pbVar9[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }" if (parenthesized_expression "(bVar13 == 0x74)" ( (binary_expression "bVar13 == 0x74" identifier == number_literal) )) (compound_statement "{\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }" { (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9 + 2;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9 + 2" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pbVar9 + 2" identifier + number_literal)) ;) (expression_statement "iVar4 = FUN_003da780();" (assignment_expression "iVar4 = FUN_003da780()" identifier = (call_expression "FUN_003da780()" identifier (argument_list "()" ( )))) ;) (if_statement "if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }" if (parenthesized_expression "(-1 < iVar4)" ( (binary_expression "-1 < iVar4" number_literal < identifier) )) (compound_statement "{\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }" { (expression_statement "iVar5 = *(int *)(param_1 + 0x14);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x14)" identifier = (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }" if (parenthesized_expression "(iVar5 < *(int *)(param_1 + 0x18))" ( (binary_expression "iVar5 < *(int *)(param_1 + 0x18)" identifier < (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }" { (expression_statement "iVar7 = *(int *)(param_1 + 0x20);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x20)" identifier = (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(param_1 + 0x24);" (assignment_expression "iVar10 = *(int *)(param_1 + 0x24)" identifier = (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);" (assignment_expression "piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10)" identifier = (cast_expression "(int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x10) + iVar5 * 0x10)" ( (binary_expression "*(int *)(param_1 + 0x10) + iVar5 * 0x10" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) + (binary_expression "iVar5 * 0x10" identifier * number_literal)) )))) ;) (expression_statement "pbVar9 = *(byte **)(param_1 + 0xc);" (assignment_expression "pbVar9 = *(byte **)(param_1 + 0xc)" identifier = (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "piVar3[1] = 0;" (assignment_expression "piVar3[1] = 0" (subscript_expression "piVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int *)(param_1 + 0x14) = iVar5 + 1;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar5 + 1" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "piVar3[2] = iVar4;" (assignment_expression "piVar3[2] = iVar4" (subscript_expression "piVar3[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar3 = 0x47;" (assignment_expression "*piVar3 = 0x47" (pointer_expression "*piVar3" * identifier) = number_literal) ;) (if_statement "if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }" if (parenthesized_expression "(iVar7 < iVar10)" ( (binary_expression "iVar7 < iVar10" identifier < identifier) )) (compound_statement "{\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }" { (labeled_statement "LAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;" statement_identifier : (expression_statement "*(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;" (assignment_expression "*(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3" (pointer_expression "*(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4)" * (cast_expression "(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_1 + 0x1c) + iVar7 * 4)" ( (binary_expression "*(int *)(param_1 + 0x1c) + iVar7 * 4" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) + (binary_expression "iVar7 * 4" identifier * number_literal)) )))) = identifier) ;)) (expression_statement "*(int *)(param_1 + 0x20) = iVar7 + 1;" (assignment_expression "*(int *)(param_1 + 0x20) = iVar7 + 1" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar9;" (assignment_expression "bVar13 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) (goto_statement "goto joined_r0x003de0b0;" goto statement_identifier ;) })) (labeled_statement "LAB_003de404:\n              bVar13 = *pbVar9;" statement_identifier : (expression_statement "bVar13 = *pbVar9;" (assignment_expression "bVar13 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;)) (expression_statement "piVar3 = (int *)0x0;" (assignment_expression "piVar3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto joined_r0x003de0b0;" goto statement_identifier ;) })) })) (goto_statement "goto LAB_003de468;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_003de1ac:\n      piVar3 = (int *)0x0;" statement_identifier : (expression_statement "piVar3 = (int *)0x0;" (assignment_expression "piVar3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (goto_statement "goto joined_r0x003de0b0;" goto statement_identifier ;) })) (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9 + 1;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9 + 1" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "piVar3 = (int *)FUN_003da8b0();" (assignment_expression "piVar3 = (int *)FUN_003da8b0()" identifier = (cast_expression "(int *)FUN_003da8b0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003da8b0()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (piVar3 == (int *)0x0) {\n      return (int *)0x0;\n    }" if (parenthesized_expression "(piVar3 == (int *)0x0)" ( (binary_expression "piVar3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return (int *)0x0;\n    }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "iVar4 = FUN_003daf14(param_1);" (assignment_expression "iVar4 = FUN_003daf14(param_1)" identifier = (call_expression "FUN_003daf14(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar4 == 0) {\n      return (int *)0x0;\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      return (int *)0x0;\n    }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) }))) (expression_statement "bVar13 = **(byte **)(param_1 + 0xc);" (assignment_expression "bVar13 = **(byte **)(param_1 + 0xc)" identifier = (pointer_expression "**(byte **)(param_1 + 0xc)" * (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))))) ;) (labeled_statement "joined_r0x003de0b0:\n  if (bVar13 != 0x42) {\n    return piVar3;\n  }" statement_identifier : (if_statement "if (bVar13 != 0x42) {\n    return piVar3;\n  }" if (parenthesized_expression "(bVar13 != 0x42)" ( (binary_expression "bVar13 != 0x42" identifier != number_literal) )) (compound_statement "{\n    return piVar3;\n  }" { (return_statement "return piVar3;" return identifier ;) }))) (expression_statement "piVar3 = (int *)FUN_003daab4(param_1,piVar3);" (assignment_expression "piVar3 = (int *)FUN_003daab4(param_1,piVar3)" identifier = (cast_expression "(int *)FUN_003daab4(param_1,piVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003daab4(param_1,piVar3)" identifier (argument_list "(param_1,piVar3)" ( identifier , identifier ))))) ;) (return_statement "return piVar3;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) + (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) )) [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (goto_statement goto statement_identifier ;) })) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) != LIT) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) ))) )) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) & LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (ERROR IDENT : : IDENT : :) (binary_expression (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) ))))) + LIT) )))) )) (argument_list ( ))))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) - LIT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * 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)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) })) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) )))) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) })) (goto_statement goto statement_identifier ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (return_statement return IDENT ;) })))
(function_definition "int * FUN_003ddf14(int param_1)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  undefined4 uVar8;\n  byte *pbVar9;\n  int iVar10;\n  undefined *puVar11;\n  int iVar12;\n  byte bVar13;\n  \n  pbVar9 = *(byte **)(param_1 + 0xc);\n  bVar13 = *pbVar9;\n  uVar2 = (uint)bVar13;\n  if (uVar2 - 0x30 < 10) {\n    piVar3 = (int *)FUN_003da8b0();\n    bVar13 = **(byte **)(param_1 + 0xc);\n    goto joined_r0x003de0b0;\n  }\n  if (uVar2 - 0x61 < 0x1a) {\n    if ((bVar13 == 0x6f) && (pbVar9[1] == 0x6e)) {\n      *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n    }\n    piVar3 = (int *)FUN_003dd6ac(param_1);\n    puVar1 = PTR_strcmp_004c5a68;\n    if ((piVar3 != (int *)0x0) && (*piVar3 == 0x31)) {\n      uVar8 = *(undefined4 *)piVar3[2];\n      puVar11 = PTR_UINT_004c12dc + -0x57c0;\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];\n      iVar4 = (*(code *)puVar1)(uVar8,puVar11);\n      if (iVar4 == 0) {\n        uVar8 = FUN_003da8b0(param_1);\n        piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }\n    }\n  }\n  else {\n    if (uVar2 - 0x43 < 2) {\n      piVar6 = *(int **)(param_1 + 0x28);\n      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    \n                    \n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }\n      puVar1 = PTR_UINT_004c12dc;\n      if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        FUN_003dc9d0(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }\n      iVar5 = *(int *)(param_1 + 0x14);\n      if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }\n      bVar13 = *pbVar9;\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    if (bVar13 != 0x4c) {\n      if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }\n      if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }\nLAB_003de1ac:\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n    piVar3 = (int *)FUN_003da8b0();\n    if (piVar3 == (int *)0x0) {\n      return (int *)0x0;\n    }\n    iVar4 = FUN_003daf14(param_1);\n    if (iVar4 == 0) {\n      return (int *)0x0;\n    }\n  }\n  bVar13 = **(byte **)(param_1 + 0xc);\njoined_r0x003de0b0:\n  if (bVar13 != 0x42) {\n    return piVar3;\n  }\n  piVar3 = (int *)FUN_003daab4(param_1,piVar3);\n  return piVar3;\n}" (primitive_type "int") (pointer_declarator "* FUN_003ddf14(int param_1)" (* "*") (function_declarator "FUN_003ddf14(int param_1)" (identifier "FUN_003ddf14") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")")))) (compound_statement "{\n  undefined *puVar1;\n  uint uVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  undefined4 uVar8;\n  byte *pbVar9;\n  int iVar10;\n  undefined *puVar11;\n  int iVar12;\n  byte bVar13;\n  \n  pbVar9 = *(byte **)(param_1 + 0xc);\n  bVar13 = *pbVar9;\n  uVar2 = (uint)bVar13;\n  if (uVar2 - 0x30 < 10) {\n    piVar3 = (int *)FUN_003da8b0();\n    bVar13 = **(byte **)(param_1 + 0xc);\n    goto joined_r0x003de0b0;\n  }\n  if (uVar2 - 0x61 < 0x1a) {\n    if ((bVar13 == 0x6f) && (pbVar9[1] == 0x6e)) {\n      *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n    }\n    piVar3 = (int *)FUN_003dd6ac(param_1);\n    puVar1 = PTR_strcmp_004c5a68;\n    if ((piVar3 != (int *)0x0) && (*piVar3 == 0x31)) {\n      uVar8 = *(undefined4 *)piVar3[2];\n      puVar11 = PTR_UINT_004c12dc + -0x57c0;\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];\n      iVar4 = (*(code *)puVar1)(uVar8,puVar11);\n      if (iVar4 == 0) {\n        uVar8 = FUN_003da8b0(param_1);\n        piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }\n    }\n  }\n  else {\n    if (uVar2 - 0x43 < 2) {\n      piVar6 = *(int **)(param_1 + 0x28);\n      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    \n                    \n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }\n      puVar1 = PTR_UINT_004c12dc;\n      if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        FUN_003dc9d0(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }\n      iVar5 = *(int *)(param_1 + 0x14);\n      if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }\n      bVar13 = *pbVar9;\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    if (bVar13 != 0x4c) {\n      if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }\n      if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }\nLAB_003de1ac:\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n    piVar3 = (int *)FUN_003da8b0();\n    if (piVar3 == (int *)0x0) {\n      return (int *)0x0;\n    }\n    iVar4 = FUN_003daf14(param_1);\n    if (iVar4 == 0) {\n      return (int *)0x0;\n    }\n  }\n  bVar13 = **(byte **)(param_1 + 0xc);\njoined_r0x003de0b0:\n  if (bVar13 != 0x42) {\n    return piVar3;\n  }\n  piVar3 = (int *)FUN_003daab4(param_1,piVar3);\n  return piVar3;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "byte *pbVar9;" (type_identifier "byte") (pointer_declarator "*pbVar9" (* "*") (identifier "pbVar9")) (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "undefined *puVar11;" (type_identifier "undefined") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "byte bVar13;" (type_identifier "byte") (identifier "bVar13") (; ";")) (expression_statement "pbVar9 = *(byte **)(param_1 + 0xc);" (assignment_expression "pbVar9 = *(byte **)(param_1 + 0xc)" (identifier "pbVar9") (= "=") (pointer_expression "*(byte **)(param_1 + 0xc)" (* "*") (cast_expression "(byte **)(param_1 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "bVar13 = *pbVar9;" (assignment_expression "bVar13 = *pbVar9" (identifier "bVar13") (= "=") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9"))) (; ";")) (expression_statement "uVar2 = (uint)bVar13;" (assignment_expression "uVar2 = (uint)bVar13" (identifier "uVar2") (= "=") (cast_expression "(uint)bVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar13"))) (; ";")) (if_statement "if (uVar2 - 0x30 < 10) {\n    piVar3 = (int *)FUN_003da8b0();\n    bVar13 = **(byte **)(param_1 + 0xc);\n    goto joined_r0x003de0b0;\n  }" (if "if") (parenthesized_expression "(uVar2 - 0x30 < 10)" (( "(") (binary_expression "uVar2 - 0x30 < 10" (binary_expression "uVar2 - 0x30" (identifier "uVar2") (- "-") (number_literal "0x30")) (< "<") (number_literal "10")) () ")")) (compound_statement "{\n    piVar3 = (int *)FUN_003da8b0();\n    bVar13 = **(byte **)(param_1 + 0xc);\n    goto joined_r0x003de0b0;\n  }" ({ "{") (expression_statement "piVar3 = (int *)FUN_003da8b0();" (assignment_expression "piVar3 = (int *)FUN_003da8b0()" (identifier "piVar3") (= "=") (cast_expression "(int *)FUN_003da8b0()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_003da8b0()" (identifier "FUN_003da8b0") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "bVar13 = **(byte **)(param_1 + 0xc);" (assignment_expression "bVar13 = **(byte **)(param_1 + 0xc)" (identifier "bVar13") (= "=") (pointer_expression "**(byte **)(param_1 + 0xc)" (* "*") (pointer_expression "*(byte **)(param_1 + 0xc)" (* "*") (cast_expression "(byte **)(param_1 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))))) (; ";")) (goto_statement "goto joined_r0x003de0b0;" (goto "goto") (statement_identifier "joined_r0x003de0b0") (; ";")) (} "}"))) (if_statement "if (uVar2 - 0x61 < 0x1a) {\n    if ((bVar13 == 0x6f) && (pbVar9[1] == 0x6e)) {\n      *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n    }\n    piVar3 = (int *)FUN_003dd6ac(param_1);\n    puVar1 = PTR_strcmp_004c5a68;\n    if ((piVar3 != (int *)0x0) && (*piVar3 == 0x31)) {\n      uVar8 = *(undefined4 *)piVar3[2];\n      puVar11 = PTR_UINT_004c12dc + -0x57c0;\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];\n      iVar4 = (*(code *)puVar1)(uVar8,puVar11);\n      if (iVar4 == 0) {\n        uVar8 = FUN_003da8b0(param_1);\n        piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }\n    }\n  }\n  else {\n    if (uVar2 - 0x43 < 2) {\n      piVar6 = *(int **)(param_1 + 0x28);\n      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    \n                    \n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }\n      puVar1 = PTR_UINT_004c12dc;\n      if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        FUN_003dc9d0(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }\n      iVar5 = *(int *)(param_1 + 0x14);\n      if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }\n      bVar13 = *pbVar9;\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    if (bVar13 != 0x4c) {\n      if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }\n      if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }\nLAB_003de1ac:\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n    piVar3 = (int *)FUN_003da8b0();\n    if (piVar3 == (int *)0x0) {\n      return (int *)0x0;\n    }\n    iVar4 = FUN_003daf14(param_1);\n    if (iVar4 == 0) {\n      return (int *)0x0;\n    }\n  }" (if "if") (parenthesized_expression "(uVar2 - 0x61 < 0x1a)" (( "(") (binary_expression "uVar2 - 0x61 < 0x1a" (binary_expression "uVar2 - 0x61" (identifier "uVar2") (- "-") (number_literal "0x61")) (< "<") (number_literal "0x1a")) () ")")) (compound_statement "{\n    if ((bVar13 == 0x6f) && (pbVar9[1] == 0x6e)) {\n      *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n    }\n    piVar3 = (int *)FUN_003dd6ac(param_1);\n    puVar1 = PTR_strcmp_004c5a68;\n    if ((piVar3 != (int *)0x0) && (*piVar3 == 0x31)) {\n      uVar8 = *(undefined4 *)piVar3[2];\n      puVar11 = PTR_UINT_004c12dc + -0x57c0;\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];\n      iVar4 = (*(code *)puVar1)(uVar8,puVar11);\n      if (iVar4 == 0) {\n        uVar8 = FUN_003da8b0(param_1);\n        piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }\n    }\n  }" ({ "{") (if_statement "if ((bVar13 == 0x6f) && (pbVar9[1] == 0x6e)) {\n      *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n    }" (if "if") (parenthesized_expression "((bVar13 == 0x6f) && (pbVar9[1] == 0x6e))" (( "(") (binary_expression "(bVar13 == 0x6f) && (pbVar9[1] == 0x6e)" (parenthesized_expression "(bVar13 == 0x6f)" (( "(") (binary_expression "bVar13 == 0x6f" (identifier "bVar13") (== "==") (number_literal "0x6f")) () ")")) (&& "&&") (parenthesized_expression "(pbVar9[1] == 0x6e)" (( "(") (binary_expression "pbVar9[1] == 0x6e" (subscript_expression "pbVar9[1]" (identifier "pbVar9") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x6e")) () ")"))) () ")")) (compound_statement "{\n      *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n    }" ({ "{") (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9 + 2;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9 + 2" (pointer_expression "*(byte **)(param_1 + 0xc)" (* "*") (cast_expression "(byte **)(param_1 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "pbVar9 + 2" (identifier "pbVar9") (+ "+") (number_literal "2"))) (; ";")) (} "}"))) (expression_statement "piVar3 = (int *)FUN_003dd6ac(param_1);" (assignment_expression "piVar3 = (int *)FUN_003dd6ac(param_1)" (identifier "piVar3") (= "=") (cast_expression "(int *)FUN_003dd6ac(param_1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_003dd6ac(param_1)" (identifier "FUN_003dd6ac") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))))) (; ";")) (expression_statement "puVar1 = PTR_strcmp_004c5a68;" (assignment_expression "puVar1 = PTR_strcmp_004c5a68" (identifier "puVar1") (= "=") (identifier "PTR_strcmp_004c5a68")) (; ";")) (if_statement "if ((piVar3 != (int *)0x0) && (*piVar3 == 0x31)) {\n      uVar8 = *(undefined4 *)piVar3[2];\n      puVar11 = PTR_UINT_004c12dc + -0x57c0;\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];\n      iVar4 = (*(code *)puVar1)(uVar8,puVar11);\n      if (iVar4 == 0) {\n        uVar8 = FUN_003da8b0(param_1);\n        piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }\n    }" (if "if") (parenthesized_expression "((piVar3 != (int *)0x0) && (*piVar3 == 0x31))" (( "(") (binary_expression "(piVar3 != (int *)0x0) && (*piVar3 == 0x31)" (parenthesized_expression "(piVar3 != (int *)0x0)" (( "(") (binary_expression "piVar3 != (int *)0x0" (identifier "piVar3") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(*piVar3 == 0x31)" (( "(") (binary_expression "*piVar3 == 0x31" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (== "==") (number_literal "0x31")) () ")"))) () ")")) (compound_statement "{\n      uVar8 = *(undefined4 *)piVar3[2];\n      puVar11 = PTR_UINT_004c12dc + -0x57c0;\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];\n      iVar4 = (*(code *)puVar1)(uVar8,puVar11);\n      if (iVar4 == 0) {\n        uVar8 = FUN_003da8b0(param_1);\n        piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }\n    }" ({ "{") (expression_statement "uVar8 = *(undefined4 *)piVar3[2];" (assignment_expression "uVar8 = *(undefined4 *)piVar3[2]" (identifier "uVar8") (= "=") (pointer_expression "*(undefined4 *)piVar3[2]" (* "*") (cast_expression "(undefined4 *)piVar3[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar3[2]" (identifier "piVar3") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (expression_statement "puVar11 = PTR_UINT_004c12dc + -0x57c0;" (assignment_expression "puVar11 = PTR_UINT_004c12dc + -0x57c0" (identifier "puVar11") (= "=") (binary_expression "PTR_UINT_004c12dc + -0x57c0" (identifier "PTR_UINT_004c12dc") (+ "+") (number_literal "-0x57c0"))) (; ";")) (expression_statement "*(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];" (assignment_expression "*(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2]" (pointer_expression "*(int *)(param_1 + 0x2c)" (* "*") (cast_expression "(int *)(param_1 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2]" (binary_expression "*(int *)(param_1 + 0x2c) + 7" (pointer_expression "*(int *)(param_1 + 0x2c)" (* "*") (cast_expression "(int *)(param_1 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")")))) (+ "+") (number_literal "7")) (+ "+") (subscript_expression "((undefined4 *)piVar3[2])[2]" (parenthesized_expression "((undefined4 *)piVar3[2])" (( "(") (cast_expression "(undefined4 *)piVar3[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar3[2]" (identifier "piVar3") ([ "[") (number_literal "2") (] "]"))) () ")")) ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "iVar4 = (*(code *)puVar1)(uVar8,puVar11);" (assignment_expression "iVar4 = (*(code *)puVar1)(uVar8,puVar11)" (identifier "iVar4") (= "=") (call_expression "(*(code *)puVar1)(uVar8,puVar11)" (parenthesized_expression "(*(code *)puVar1)" (( "(") (pointer_expression "*(code *)puVar1" (* "*") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (argument_list "(uVar8,puVar11)" (( "(") (identifier "uVar8") (, ",") (identifier "puVar11") () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n        uVar8 = FUN_003da8b0(param_1);\n        piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar8 = FUN_003da8b0(param_1);\n        piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8);\n        bVar13 = **(byte **)(param_1 + 0xc);\n        goto joined_r0x003de0b0;\n      }" ({ "{") (expression_statement "uVar8 = FUN_003da8b0(param_1);" (assignment_expression "uVar8 = FUN_003da8b0(param_1)" (identifier "uVar8") (= "=") (call_expression "FUN_003da8b0(param_1)" (identifier "FUN_003da8b0") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8);" (assignment_expression "piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8)" (identifier "piVar3") (= "=") (cast_expression "(int *)FUN_003da330(param_1,0x36,piVar3,uVar8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_003da330(param_1,0x36,piVar3,uVar8)" (identifier "FUN_003da330") (argument_list "(param_1,0x36,piVar3,uVar8)" (( "(") (identifier "param_1") (, ",") (number_literal "0x36") (, ",") (identifier "piVar3") (, ",") (identifier "uVar8") () ")"))))) (; ";")) (expression_statement "bVar13 = **(byte **)(param_1 + 0xc);" (assignment_expression "bVar13 = **(byte **)(param_1 + 0xc)" (identifier "bVar13") (= "=") (pointer_expression "**(byte **)(param_1 + 0xc)" (* "*") (pointer_expression "*(byte **)(param_1 + 0xc)" (* "*") (cast_expression "(byte **)(param_1 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))))) (; ";")) (goto_statement "goto joined_r0x003de0b0;" (goto "goto") (statement_identifier "joined_r0x003de0b0") (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n    if (uVar2 - 0x43 < 2) {\n      piVar6 = *(int **)(param_1 + 0x28);\n      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    \n                    \n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }\n      puVar1 = PTR_UINT_004c12dc;\n      if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        FUN_003dc9d0(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }\n      iVar5 = *(int *)(param_1 + 0x14);\n      if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }\n      bVar13 = *pbVar9;\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    if (bVar13 != 0x4c) {\n      if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }\n      if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }\nLAB_003de1ac:\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n    piVar3 = (int *)FUN_003da8b0();\n    if (piVar3 == (int *)0x0) {\n      return (int *)0x0;\n    }\n    iVar4 = FUN_003daf14(param_1);\n    if (iVar4 == 0) {\n      return (int *)0x0;\n    }\n  }" (else "else") (compound_statement "{\n    if (uVar2 - 0x43 < 2) {\n      piVar6 = *(int **)(param_1 + 0x28);\n      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    \n                    \n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }\n      puVar1 = PTR_UINT_004c12dc;\n      if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        FUN_003dc9d0(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }\n      iVar5 = *(int *)(param_1 + 0x14);\n      if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }\n      bVar13 = *pbVar9;\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    if (bVar13 != 0x4c) {\n      if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }\n      if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }\nLAB_003de1ac:\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }\n    *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n    piVar3 = (int *)FUN_003da8b0();\n    if (piVar3 == (int *)0x0) {\n      return (int *)0x0;\n    }\n    iVar4 = FUN_003daf14(param_1);\n    if (iVar4 == 0) {\n      return (int *)0x0;\n    }\n  }" ({ "{") (if_statement "if (uVar2 - 0x43 < 2) {\n      piVar6 = *(int **)(param_1 + 0x28);\n      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    \n                    \n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }\n      puVar1 = PTR_UINT_004c12dc;\n      if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        FUN_003dc9d0(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }\n      iVar5 = *(int *)(param_1 + 0x14);\n      if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }\n      bVar13 = *pbVar9;\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }" (if "if") (parenthesized_expression "(uVar2 - 0x43 < 2)" (( "(") (binary_expression "uVar2 - 0x43 < 2" (binary_expression "uVar2 - 0x43" (identifier "uVar2") (- "-") (number_literal "0x43")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n      piVar6 = *(int **)(param_1 + 0x28);\n      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    \n                    \n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }\n      puVar1 = PTR_UINT_004c12dc;\n      if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        FUN_003dc9d0(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }\n      iVar5 = *(int *)(param_1 + 0x14);\n      if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }\n      bVar13 = *pbVar9;\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }" ({ "{") (expression_statement "piVar6 = *(int **)(param_1 + 0x28);" (assignment_expression "piVar6 = *(int **)(param_1 + 0x28)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(param_1 + 0x28)" (* "*") (cast_expression "(int **)(param_1 + 0x28)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }\n      else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    \n                    \n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }" (if "if") (parenthesized_expression "((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18))))" (( "(") (binary_expression "(piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))" (parenthesized_expression "(piVar6 == (int *)0x0)" (( "(") (binary_expression "piVar6 == (int *)0x0" (identifier "piVar6") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "((*piVar6 != 0 && (*piVar6 != 0x18)))" (( "(") (parenthesized_expression "(*piVar6 != 0 && (*piVar6 != 0x18))" (( "(") (binary_expression "*piVar6 != 0 && (*piVar6 != 0x18)" (binary_expression "*piVar6 != 0" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(*piVar6 != 0x18)" (( "(") (binary_expression "*piVar6 != 0x18" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (!= "!=") (number_literal "0x18")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        if (bVar13 == 0x44) goto LAB_003de2a0;\n      }" ({ "{") (if_statement "if (bVar13 == 0x44) goto LAB_003de2a0;" (if "if") (parenthesized_expression "(bVar13 == 0x44)" (( "(") (binary_expression "bVar13 == 0x44" (identifier "bVar13") (== "==") (number_literal "0x44")) () ")")) (goto_statement "goto LAB_003de2a0;" (goto "goto") (statement_identifier "LAB_003de2a0") (; ";"))) (} "}")) (else_clause "else {\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    \n                    \n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }" (else "else") (compound_statement "{\n        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];\n        bVar13 = *pbVar9;\n        if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    \n                    \n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n      }" ({ "{") (expression_statement "*(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];" (assignment_expression "*(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3]" (pointer_expression "*(int *)(param_1 + 0x2c)" (* "*") (cast_expression "(int *)(param_1 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 0x2c) + piVar6[3]" (pointer_expression "*(int *)(param_1 + 0x2c)" (* "*") (cast_expression "(int *)(param_1 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")")))) (+ "+") (subscript_expression "piVar6[3]" (identifier "piVar6") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "bVar13 = *pbVar9;" (assignment_expression "bVar13 = *pbVar9" (identifier "bVar13") (= "=") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9"))) (; ";")) (if_statement "if (bVar13 != 0x43) {\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    \n                    \n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }" (if "if") (parenthesized_expression "(bVar13 != 0x43)" (( "(") (binary_expression "bVar13 != 0x43" (identifier "bVar13") (!= "!=") (number_literal "0x43")) () ")")) (compound_statement "{\n          piVar3 = (int *)0x0;\n          if (bVar13 != 0x44) goto joined_r0x003de0b0;\nLAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;\n          if (uVar2 < 6) {\n                    \n                    \n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }" ({ "{") (expression_statement "piVar3 = (int *)0x0;" (assignment_expression "piVar3 = (int *)0x0" (identifier "piVar3") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (bVar13 != 0x44) goto joined_r0x003de0b0;" (if "if") (parenthesized_expression "(bVar13 != 0x44)" (( "(") (binary_expression "bVar13 != 0x44" (identifier "bVar13") (!= "!=") (number_literal "0x44")) () ")")) (goto_statement "goto joined_r0x003de0b0;" (goto "goto") (statement_identifier "joined_r0x003de0b0") (; ";"))) (labeled_statement "LAB_003de2a0:\n          uVar2 = pbVar9[1] - 0x30 & 0xff;" (statement_identifier "LAB_003de2a0") (: ":") (expression_statement "uVar2 = pbVar9[1] - 0x30 & 0xff;" (assignment_expression "uVar2 = pbVar9[1] - 0x30 & 0xff" (identifier "uVar2") (= "=") (binary_expression "pbVar9[1] - 0x30 & 0xff" (binary_expression "pbVar9[1] - 0x30" (subscript_expression "pbVar9[1]" (identifier "pbVar9") ([ "[") (number_literal "1") (] "]")) (- "-") (number_literal "0x30")) (& "&") (number_literal "0xff"))) (; ";"))) (if_statement "if (uVar2 < 6) {\n                    \n                    \n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }" (if "if") (parenthesized_expression "(uVar2 < 6)" (( "(") (binary_expression "uVar2 < 6" (identifier "uVar2") (< "<") (number_literal "6")) () ")")) (compound_statement "{\n                    \n                    \n            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();\n            return piVar3;\n          }" ({ "{") (expression_statement "piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();" (assignment_expression "piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))()" (identifier "piVar3") (= "=") (cast_expression "(int *)(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))()" (parenthesized_expression "(*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))" (( "(") (pointer_expression "*(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210)" (* "*") (cast_expression "(code *)(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(gold::Position_dependent_options::default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210)" (( "(") (ERROR "gold::Position_dependent_options::" (identifier "gold") (: ":") (: ":") (identifier "Position_dependent_options") (: ":") (: ":")) (binary_expression "default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210" (binary_expression "default_options_ +\n                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)" (identifier "default_options_") (+ "+") (pointer_expression "*(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)" (* "*") (cast_expression "(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_004c12dc + uVar2 * 4 + 0x100)" (( "(") (binary_expression "PTR_UINT_004c12dc + uVar2 * 4 + 0x100" (binary_expression "PTR_UINT_004c12dc + uVar2 * 4" (identifier "PTR_UINT_004c12dc") (+ "+") (binary_expression "uVar2 * 4" (identifier "uVar2") (* "*") (number_literal "4"))) (+ "+") (number_literal "0x100")) () ")"))))) (+ "+") (number_literal "0x3210")) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return piVar3;" (return "return") (identifier "piVar3") (; ";")) (} "}"))) (expression_statement "piVar3 = (int *)0x0;" (assignment_expression "piVar3 = (int *)0x0" (identifier "piVar3") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto joined_r0x003de0b0;" (goto "goto") (statement_identifier "joined_r0x003de0b0") (; ";")) (} "}"))) (} "}")))) (expression_statement "puVar1 = PTR_UINT_004c12dc;" (assignment_expression "puVar1 = PTR_UINT_004c12dc" (identifier "puVar1") (= "=") (identifier "PTR_UINT_004c12dc")) (; ";")) (if_statement "if ((char)pbVar9[1] == 0x49) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        FUN_003dc9d0(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }\n      else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }" (if "if") (parenthesized_expression "((char)pbVar9[1] == 0x49)" (( "(") (binary_expression "(char)pbVar9[1] == 0x49" (cast_expression "(char)pbVar9[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pbVar9[1]" (identifier "pbVar9") ([ "[") (number_literal "1") (] "]"))) (== "==") (number_literal "0x49")) () ")")) (compound_statement "{\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        puVar1 = PTR_UINT_004c12dc;\n        uVar2 = pbVar9[2] - 0x31 & 0xff;\n        if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 3;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n        FUN_003dc9d0(param_1);\n        piVar6 = *(int **)(param_1 + 0x28);\n        pbVar9 = *(byte **)(param_1 + 0xc);\n      }" ({ "{") (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9 + 1;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9 + 1" (pointer_expression "*(byte **)(param_1 + 0xc)" (* "*") (cast_expression "(byte **)(param_1 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "pbVar9 + 1" (identifier "pbVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar1 = PTR_UINT_004c12dc;" (assignment_expression "puVar1 = PTR_UINT_004c12dc" (identifier "puVar1") (= "=") (identifier "PTR_UINT_004c12dc")) (; ";")) (expression_statement "uVar2 = pbVar9[2] - 0x31 & 0xff;" (assignment_expression "uVar2 = pbVar9[2] - 0x31 & 0xff" (identifier "uVar2") (= "=") (binary_expression "pbVar9[2] - 0x31 & 0xff" (binary_expression "pbVar9[2] - 0x31" (subscript_expression "pbVar9[2]" (identifier "pbVar9") ([ "[") (number_literal "2") (] "]")) (- "-") (number_literal "0x31")) (& "&") (number_literal "0xff"))) (; ";")) (if_statement "if (4 < uVar2) {\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }" (if "if") (parenthesized_expression "(4 < uVar2)" (( "(") (binary_expression "4 < uVar2" (number_literal "4") (< "<") (identifier "uVar2")) () ")")) (compound_statement "{\n          bVar13 = pbVar9[1];\n          piVar3 = (int *)0x0;\n          goto joined_r0x003de0b0;\n        }" ({ "{") (expression_statement "bVar13 = pbVar9[1];" (assignment_expression "bVar13 = pbVar9[1]" (identifier "bVar13") (= "=") (subscript_expression "pbVar9[1]" (identifier "pbVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "piVar3 = (int *)0x0;" (assignment_expression "piVar3 = (int *)0x0" (identifier "piVar3") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto joined_r0x003de0b0;" (goto "goto") (statement_identifier "joined_r0x003de0b0") (; ";")) (} "}"))) (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9 + 3;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9 + 3" (pointer_expression "*(byte **)(param_1 + 0xc)" (* "*") (cast_expression "(byte **)(param_1 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "pbVar9 + 3" (identifier "pbVar9") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);" (assignment_expression "iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(puVar1 + uVar2 * 4 + 0x538)" (* "*") (cast_expression "(int *)(puVar1 + uVar2 * 4 + 0x538)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + uVar2 * 4 + 0x538)" (( "(") (binary_expression "puVar1 + uVar2 * 4 + 0x538" (binary_expression "puVar1 + uVar2 * 4" (identifier "puVar1") (+ "+") (binary_expression "uVar2 * 4" (identifier "uVar2") (* "*") (number_literal "4"))) (+ "+") (number_literal "0x538")) () ")"))))) (; ";")) (expression_statement "FUN_003dc9d0(param_1);" (call_expression "FUN_003dc9d0(param_1)" (identifier "FUN_003dc9d0") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "piVar6 = *(int **)(param_1 + 0x28);" (assignment_expression "piVar6 = *(int **)(param_1 + 0x28)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(param_1 + 0x28)" (* "*") (cast_expression "(int **)(param_1 + 0x28)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "pbVar9 = *(byte **)(param_1 + 0xc);" (assignment_expression "pbVar9 = *(byte **)(param_1 + 0xc)" (identifier "pbVar9") (= "=") (pointer_expression "*(byte **)(param_1 + 0xc)" (* "*") (cast_expression "(byte **)(param_1 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }" (else "else") (compound_statement "{\n        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;\n        if (4 < uVar2) {\n          return (int *)0x0;\n        }\n        pbVar9 = pbVar9 + 2;\n        *(byte **)(param_1 + 0xc) = pbVar9;\n        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);\n      }" ({ "{") (expression_statement "uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;" (assignment_expression "uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff" (identifier "uVar2") (= "=") (binary_expression "(int)(char)pbVar9[1] - 0x31U & 0xff" (binary_expression "(int)(char)pbVar9[1] - 0x31U" (cast_expression "(int)(char)pbVar9[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)pbVar9[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pbVar9[1]" (identifier "pbVar9") ([ "[") (number_literal "1") (] "]")))) (- "-") (number_literal "0x31U")) (& "&") (number_literal "0xff"))) (; ";")) (if_statement "if (4 < uVar2) {\n          return (int *)0x0;\n        }" (if "if") (parenthesized_expression "(4 < uVar2)" (( "(") (binary_expression "4 < uVar2" (number_literal "4") (< "<") (identifier "uVar2")) () ")")) (compound_statement "{\n          return (int *)0x0;\n        }" ({ "{") (return_statement "return (int *)0x0;" (return "return") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (expression_statement "pbVar9 = pbVar9 + 2;" (assignment_expression "pbVar9 = pbVar9 + 2" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + 2" (identifier "pbVar9") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9" (pointer_expression "*(byte **)(param_1 + 0xc)" (* "*") (cast_expression "(byte **)(param_1 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "pbVar9")) (; ";")) (expression_statement "iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);" (assignment_expression "iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(puVar1 + uVar2 * 4 + 0x538)" (* "*") (cast_expression "(int *)(puVar1 + uVar2 * 4 + 0x538)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + uVar2 * 4 + 0x538)" (( "(") (binary_expression "puVar1 + uVar2 * 4 + 0x538" (binary_expression "puVar1 + uVar2 * 4" (identifier "puVar1") (+ "+") (binary_expression "uVar2 * 4" (identifier "uVar2") (* "*") (number_literal "4"))) (+ "+") (number_literal "0x538")) () ")"))))) (; ";")) (} "}")))) (expression_statement "iVar5 = *(int *)(param_1 + 0x14);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x14)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (iVar5 < *(int *)(param_1 + 0x18)) {\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }" (if "if") (parenthesized_expression "(iVar5 < *(int *)(param_1 + 0x18))" (( "(") (binary_expression "iVar5 < *(int *)(param_1 + 0x18)" (identifier "iVar5") (< "<") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (compound_statement "{\n        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n        piVar3[1] = 0;\n        *(int *)(param_1 + 0x14) = iVar5 + 1;\n        if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }\n      }" ({ "{") (expression_statement "piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);" (assignment_expression "piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10)" (identifier "piVar3") (= "=") (cast_expression "(int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x10) + iVar5 * 0x10)" (( "(") (binary_expression "*(int *)(param_1 + 0x10) + iVar5 * 0x10" (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (binary_expression "iVar5 * 0x10" (identifier "iVar5") (* "*") (number_literal "0x10"))) () ")")))) (; ";")) (expression_statement "piVar3[1] = 0;" (assignment_expression "piVar3[1] = 0" (subscript_expression "piVar3[1]" (identifier "piVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(param_1 + 0x14) = iVar5 + 1;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar5 + 1" (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (piVar6 != (int *)0x0) {\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }" (if "if") (parenthesized_expression "(piVar6 != (int *)0x0)" (( "(") (binary_expression "piVar6 != (int *)0x0" (identifier "piVar6") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          piVar3[1] = 0;\n          piVar3[2] = iVar4;\n          *piVar3 = 7;\n          piVar3[3] = (int)piVar6;\n          bVar13 = *pbVar9;\n          goto joined_r0x003de0b0;\n        }" ({ "{") (expression_statement "piVar3[1] = 0;" (assignment_expression "piVar3[1] = 0" (subscript_expression "piVar3[1]" (identifier "piVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar3[2] = iVar4;" (assignment_expression "piVar3[2] = iVar4" (subscript_expression "piVar3[2]" (identifier "piVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "*piVar3 = 7;" (assignment_expression "*piVar3 = 7" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (= "=") (number_literal "7")) (; ";")) (expression_statement "piVar3[3] = (int)piVar6;" (assignment_expression "piVar3[3] = (int)piVar6" (subscript_expression "piVar3[3]" (identifier "piVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6"))) (; ";")) (expression_statement "bVar13 = *pbVar9;" (assignment_expression "bVar13 = *pbVar9" (identifier "bVar13") (= "=") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9"))) (; ";")) (goto_statement "goto joined_r0x003de0b0;" (goto "goto") (statement_identifier "joined_r0x003de0b0") (; ";")) (} "}"))) (} "}"))) (expression_statement "bVar13 = *pbVar9;" (assignment_expression "bVar13 = *pbVar9" (identifier "bVar13") (= "=") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9"))) (; ";")) (expression_statement "piVar3 = (int *)0x0;" (assignment_expression "piVar3 = (int *)0x0" (identifier "piVar3") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto joined_r0x003de0b0;" (goto "goto") (statement_identifier "joined_r0x003de0b0") (; ";")) (} "}"))) (if_statement "if (bVar13 != 0x4c) {\n      if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }\n      if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }\nLAB_003de1ac:\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }" (if "if") (parenthesized_expression "(bVar13 != 0x4c)" (( "(") (binary_expression "bVar13 != 0x4c" (identifier "bVar13") (!= "!=") (number_literal "0x4c")) () ")")) (compound_statement "{\n      if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }\n      if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }\nLAB_003de1ac:\n      piVar3 = (int *)0x0;\n      goto joined_r0x003de0b0;\n    }" ({ "{") (if_statement "if (bVar13 != 0x55) {\n        return (int *)0x0;\n      }" (if "if") (parenthesized_expression "(bVar13 != 0x55)" (( "(") (binary_expression "bVar13 != 0x55" (identifier "bVar13") (!= "!=") (number_literal "0x55")) () ")")) (compound_statement "{\n        return (int *)0x0;\n      }" ({ "{") (return_statement "return (int *)0x0;" (return "return") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (if_statement "if (pbVar9[1] == 0x6c) {\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }\n      else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }" (if "if") (parenthesized_expression "(pbVar9[1] == 0x6c)" (( "(") (binary_expression "pbVar9[1] == 0x6c" (subscript_expression "pbVar9[1]" (identifier "pbVar9") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x6c")) () ")")) (compound_statement "{\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }\n      }" ({ "{") (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9 + 1;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9 + 1" (pointer_expression "*(byte **)(param_1 + 0xc)" (* "*") (cast_expression "(byte **)(param_1 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "pbVar9 + 1" (identifier "pbVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar13 = pbVar9[1];" (assignment_expression "bVar13 = pbVar9[1]" (identifier "bVar13") (= "=") (subscript_expression "pbVar9[1]" (identifier "pbVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (bVar13 == 0x6c) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }" (if "if") (parenthesized_expression "(bVar13 == 0x6c)" (( "(") (binary_expression "bVar13 == 0x6c" (identifier "bVar13") (== "==") (number_literal "0x6c")) () ")")) (compound_statement "{\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003dd8b0();\n          if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }\nLAB_003de468:\n          piVar3 = (int *)0x0;\n          bVar13 = **(byte **)(param_1 + 0xc);\n          goto joined_r0x003de0b0;\n        }" ({ "{") (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9 + 2;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9 + 2" (pointer_expression "*(byte **)(param_1 + 0xc)" (* "*") (cast_expression "(byte **)(param_1 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "pbVar9 + 2" (identifier "pbVar9") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar4 = FUN_003dd8b0();" (assignment_expression "iVar4 = FUN_003dd8b0()" (identifier "iVar4") (= "=") (call_expression "FUN_003dd8b0()" (identifier "FUN_003dd8b0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            bVar13 = **(byte **)(param_1 + 0xc);\n            if (bVar13 != 0x45) goto LAB_003de1ac;\n            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;\n            iVar5 = FUN_003da780(param_1);\n            if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }\n          }" ({ "{") (expression_statement "bVar13 = **(byte **)(param_1 + 0xc);" (assignment_expression "bVar13 = **(byte **)(param_1 + 0xc)" (identifier "bVar13") (= "=") (pointer_expression "**(byte **)(param_1 + 0xc)" (* "*") (pointer_expression "*(byte **)(param_1 + 0xc)" (* "*") (cast_expression "(byte **)(param_1 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))))) (; ";")) (if_statement "if (bVar13 != 0x45) goto LAB_003de1ac;" (if "if") (parenthesized_expression "(bVar13 != 0x45)" (( "(") (binary_expression "bVar13 != 0x45" (identifier "bVar13") (!= "!=") (number_literal "0x45")) () ")")) (goto_statement "goto LAB_003de1ac;" (goto "goto") (statement_identifier "LAB_003de1ac") (; ";"))) (expression_statement "*(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;" (assignment_expression "*(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1" (pointer_expression "*(byte **)(param_1 + 0xc)" (* "*") (cast_expression "(byte **)(param_1 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "*(byte **)(param_1 + 0xc) + 1" (pointer_expression "*(byte **)(param_1 + 0xc)" (* "*") (cast_expression "(byte **)(param_1 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar5 = FUN_003da780(param_1);" (assignment_expression "iVar5 = FUN_003da780(param_1)" (identifier "iVar5") (= "=") (call_expression "FUN_003da780(param_1)" (identifier "FUN_003da780") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (-1 < iVar5) {\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }" (if "if") (parenthesized_expression "(-1 < iVar5)" (( "(") (binary_expression "-1 < iVar5" (number_literal "-1") (< "<") (identifier "iVar5")) () ")")) (compound_statement "{\n              iVar10 = *(int *)(param_1 + 0x14);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }\n              goto LAB_003de404;\n            }" ({ "{") (expression_statement "iVar10 = *(int *)(param_1 + 0x14);" (assignment_expression "iVar10 = *(int *)(param_1 + 0x14)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "pbVar9 = *(byte **)(param_1 + 0xc);" (assignment_expression "pbVar9 = *(byte **)(param_1 + 0xc)" (identifier "pbVar9") (= "=") (pointer_expression "*(byte **)(param_1 + 0xc)" (* "*") (cast_expression "(byte **)(param_1 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (iVar10 < *(int *)(param_1 + 0x18)) {\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }" (if "if") (parenthesized_expression "(iVar10 < *(int *)(param_1 + 0x18))" (( "(") (binary_expression "iVar10 < *(int *)(param_1 + 0x18)" (identifier "iVar10") (< "<") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (compound_statement "{\n                iVar7 = *(int *)(param_1 + 0x20);\n                iVar12 = *(int *)(param_1 + 0x24);\n                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);\n                piVar3[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar10 + 1;\n                piVar3[2] = iVar4;\n                *piVar3 = 0x45;\n                piVar3[3] = iVar5;\n                if (iVar7 < iVar12) goto LAB_003de070;\n              }" ({ "{") (expression_statement "iVar7 = *(int *)(param_1 + 0x20);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x20)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "iVar12 = *(int *)(param_1 + 0x24);" (assignment_expression "iVar12 = *(int *)(param_1 + 0x24)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(param_1 + 0x24)" (* "*") (cast_expression "(int *)(param_1 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);" (assignment_expression "piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10)" (identifier "piVar3") (= "=") (cast_expression "(int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x10) + iVar10 * 0x10)" (( "(") (binary_expression "*(int *)(param_1 + 0x10) + iVar10 * 0x10" (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (binary_expression "iVar10 * 0x10" (identifier "iVar10") (* "*") (number_literal "0x10"))) () ")")))) (; ";")) (expression_statement "piVar3[1] = 0;" (assignment_expression "piVar3[1] = 0" (subscript_expression "piVar3[1]" (identifier "piVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(param_1 + 0x14) = iVar10 + 1;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar10 + 1" (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar3[2] = iVar4;" (assignment_expression "piVar3[2] = iVar4" (subscript_expression "piVar3[2]" (identifier "piVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "*piVar3 = 0x45;" (assignment_expression "*piVar3 = 0x45" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (= "=") (number_literal "0x45")) (; ";")) (expression_statement "piVar3[3] = iVar5;" (assignment_expression "piVar3[3] = iVar5" (subscript_expression "piVar3[3]" (identifier "piVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (if_statement "if (iVar7 < iVar12) goto LAB_003de070;" (if "if") (parenthesized_expression "(iVar7 < iVar12)" (( "(") (binary_expression "iVar7 < iVar12" (identifier "iVar7") (< "<") (identifier "iVar12")) () ")")) (goto_statement "goto LAB_003de070;" (goto "goto") (statement_identifier "LAB_003de070") (; ";"))) (} "}"))) (goto_statement "goto LAB_003de404;" (goto "goto") (statement_identifier "LAB_003de404") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_003de468:\n          piVar3 = (int *)0x0;" (statement_identifier "LAB_003de468") (: ":") (expression_statement "piVar3 = (int *)0x0;" (assignment_expression "piVar3 = (int *)0x0" (identifier "piVar3") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "bVar13 = **(byte **)(param_1 + 0xc);" (assignment_expression "bVar13 = **(byte **)(param_1 + 0xc)" (identifier "bVar13") (= "=") (pointer_expression "**(byte **)(param_1 + 0xc)" (* "*") (pointer_expression "*(byte **)(param_1 + 0xc)" (* "*") (cast_expression "(byte **)(param_1 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))))) (; ";")) (goto_statement "goto joined_r0x003de0b0;" (goto "goto") (statement_identifier "joined_r0x003de0b0") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }" (else "else") (compound_statement "{\n        if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }\n        *(byte **)(param_1 + 0xc) = pbVar9 + 1;\n        bVar13 = pbVar9[1];\n        if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }\n      }" ({ "{") (if_statement "if (pbVar9[1] != 0x74) {\n          return (int *)0x0;\n        }" (if "if") (parenthesized_expression "(pbVar9[1] != 0x74)" (( "(") (binary_expression "pbVar9[1] != 0x74" (subscript_expression "pbVar9[1]" (identifier "pbVar9") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0x74")) () ")")) (compound_statement "{\n          return (int *)0x0;\n        }" ({ "{") (return_statement "return (int *)0x0;" (return "return") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9 + 1;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9 + 1" (pointer_expression "*(byte **)(param_1 + 0xc)" (* "*") (cast_expression "(byte **)(param_1 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "pbVar9 + 1" (identifier "pbVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar13 = pbVar9[1];" (assignment_expression "bVar13 = pbVar9[1]" (identifier "bVar13") (= "=") (subscript_expression "pbVar9[1]" (identifier "pbVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (bVar13 == 0x74) {\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }" (if "if") (parenthesized_expression "(bVar13 == 0x74)" (( "(") (binary_expression "bVar13 == 0x74" (identifier "bVar13") (== "==") (number_literal "0x74")) () ")")) (compound_statement "{\n          *(byte **)(param_1 + 0xc) = pbVar9 + 2;\n          iVar4 = FUN_003da780();\n          if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }\n          goto LAB_003de468;\n        }" ({ "{") (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9 + 2;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9 + 2" (pointer_expression "*(byte **)(param_1 + 0xc)" (* "*") (cast_expression "(byte **)(param_1 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "pbVar9 + 2" (identifier "pbVar9") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar4 = FUN_003da780();" (assignment_expression "iVar4 = FUN_003da780()" (identifier "iVar4") (= "=") (call_expression "FUN_003da780()" (identifier "FUN_003da780") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (-1 < iVar4) {\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }" (if "if") (parenthesized_expression "(-1 < iVar4)" (( "(") (binary_expression "-1 < iVar4" (number_literal "-1") (< "<") (identifier "iVar4")) () ")")) (compound_statement "{\n            iVar5 = *(int *)(param_1 + 0x14);\n            if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }\n          }" ({ "{") (expression_statement "iVar5 = *(int *)(param_1 + 0x14);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x14)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (iVar5 < *(int *)(param_1 + 0x18)) {\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }" (if "if") (parenthesized_expression "(iVar5 < *(int *)(param_1 + 0x18))" (( "(") (binary_expression "iVar5 < *(int *)(param_1 + 0x18)" (identifier "iVar5") (< "<") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (compound_statement "{\n              iVar7 = *(int *)(param_1 + 0x20);\n              iVar10 = *(int *)(param_1 + 0x24);\n              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);\n              pbVar9 = *(byte **)(param_1 + 0xc);\n              piVar3[1] = 0;\n              *(int *)(param_1 + 0x14) = iVar5 + 1;\n              piVar3[2] = iVar4;\n              *piVar3 = 0x47;\n              if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }\nLAB_003de404:\n              bVar13 = *pbVar9;\n              piVar3 = (int *)0x0;\n              goto joined_r0x003de0b0;\n            }" ({ "{") (expression_statement "iVar7 = *(int *)(param_1 + 0x20);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x20)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "iVar10 = *(int *)(param_1 + 0x24);" (assignment_expression "iVar10 = *(int *)(param_1 + 0x24)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(param_1 + 0x24)" (* "*") (cast_expression "(int *)(param_1 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);" (assignment_expression "piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10)" (identifier "piVar3") (= "=") (cast_expression "(int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x10) + iVar5 * 0x10)" (( "(") (binary_expression "*(int *)(param_1 + 0x10) + iVar5 * 0x10" (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (binary_expression "iVar5 * 0x10" (identifier "iVar5") (* "*") (number_literal "0x10"))) () ")")))) (; ";")) (expression_statement "pbVar9 = *(byte **)(param_1 + 0xc);" (assignment_expression "pbVar9 = *(byte **)(param_1 + 0xc)" (identifier "pbVar9") (= "=") (pointer_expression "*(byte **)(param_1 + 0xc)" (* "*") (cast_expression "(byte **)(param_1 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "piVar3[1] = 0;" (assignment_expression "piVar3[1] = 0" (subscript_expression "piVar3[1]" (identifier "piVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(param_1 + 0x14) = iVar5 + 1;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar5 + 1" (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar3[2] = iVar4;" (assignment_expression "piVar3[2] = iVar4" (subscript_expression "piVar3[2]" (identifier "piVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "*piVar3 = 0x47;" (assignment_expression "*piVar3 = 0x47" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (= "=") (number_literal "0x47")) (; ";")) (if_statement "if (iVar7 < iVar10) {\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }" (if "if") (parenthesized_expression "(iVar7 < iVar10)" (( "(") (binary_expression "iVar7 < iVar10" (identifier "iVar7") (< "<") (identifier "iVar10")) () ")")) (compound_statement "{\nLAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;\n                *(int *)(param_1 + 0x20) = iVar7 + 1;\n                bVar13 = *pbVar9;\n                goto joined_r0x003de0b0;\n              }" ({ "{") (labeled_statement "LAB_003de070:\n                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;" (statement_identifier "LAB_003de070") (: ":") (expression_statement "*(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;" (assignment_expression "*(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3" (pointer_expression "*(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4)" (* "*") (cast_expression "(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x1c) + iVar7 * 4)" (( "(") (binary_expression "*(int *)(param_1 + 0x1c) + iVar7 * 4" (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (+ "+") (binary_expression "iVar7 * 4" (identifier "iVar7") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "piVar3")) (; ";"))) (expression_statement "*(int *)(param_1 + 0x20) = iVar7 + 1;" (assignment_expression "*(int *)(param_1 + 0x20) = iVar7 + 1" (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar13 = *pbVar9;" (assignment_expression "bVar13 = *pbVar9" (identifier "bVar13") (= "=") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9"))) (; ";")) (goto_statement "goto joined_r0x003de0b0;" (goto "goto") (statement_identifier "joined_r0x003de0b0") (; ";")) (} "}"))) (labeled_statement "LAB_003de404:\n              bVar13 = *pbVar9;" (statement_identifier "LAB_003de404") (: ":") (expression_statement "bVar13 = *pbVar9;" (assignment_expression "bVar13 = *pbVar9" (identifier "bVar13") (= "=") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9"))) (; ";"))) (expression_statement "piVar3 = (int *)0x0;" (assignment_expression "piVar3 = (int *)0x0" (identifier "piVar3") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto joined_r0x003de0b0;" (goto "goto") (statement_identifier "joined_r0x003de0b0") (; ";")) (} "}"))) (} "}"))) (goto_statement "goto LAB_003de468;" (goto "goto") (statement_identifier "LAB_003de468") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_003de1ac:\n      piVar3 = (int *)0x0;" (statement_identifier "LAB_003de1ac") (: ":") (expression_statement "piVar3 = (int *)0x0;" (assignment_expression "piVar3 = (int *)0x0" (identifier "piVar3") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (goto_statement "goto joined_r0x003de0b0;" (goto "goto") (statement_identifier "joined_r0x003de0b0") (; ";")) (} "}"))) (expression_statement "*(byte **)(param_1 + 0xc) = pbVar9 + 1;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar9 + 1" (pointer_expression "*(byte **)(param_1 + 0xc)" (* "*") (cast_expression "(byte **)(param_1 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "pbVar9 + 1" (identifier "pbVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar3 = (int *)FUN_003da8b0();" (assignment_expression "piVar3 = (int *)FUN_003da8b0()" (identifier "piVar3") (= "=") (cast_expression "(int *)FUN_003da8b0()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_003da8b0()" (identifier "FUN_003da8b0") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (piVar3 == (int *)0x0) {\n      return (int *)0x0;\n    }" (if "if") (parenthesized_expression "(piVar3 == (int *)0x0)" (( "(") (binary_expression "piVar3 == (int *)0x0" (identifier "piVar3") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      return (int *)0x0;\n    }" ({ "{") (return_statement "return (int *)0x0;" (return "return") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (expression_statement "iVar4 = FUN_003daf14(param_1);" (assignment_expression "iVar4 = FUN_003daf14(param_1)" (identifier "iVar4") (= "=") (call_expression "FUN_003daf14(param_1)" (identifier "FUN_003daf14") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n      return (int *)0x0;\n    }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return (int *)0x0;\n    }" ({ "{") (return_statement "return (int *)0x0;" (return "return") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (} "}")))) (expression_statement "bVar13 = **(byte **)(param_1 + 0xc);" (assignment_expression "bVar13 = **(byte **)(param_1 + 0xc)" (identifier "bVar13") (= "=") (pointer_expression "**(byte **)(param_1 + 0xc)" (* "*") (pointer_expression "*(byte **)(param_1 + 0xc)" (* "*") (cast_expression "(byte **)(param_1 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))))) (; ";")) (labeled_statement "joined_r0x003de0b0:\n  if (bVar13 != 0x42) {\n    return piVar3;\n  }" (statement_identifier "joined_r0x003de0b0") (: ":") (if_statement "if (bVar13 != 0x42) {\n    return piVar3;\n  }" (if "if") (parenthesized_expression "(bVar13 != 0x42)" (( "(") (binary_expression "bVar13 != 0x42" (identifier "bVar13") (!= "!=") (number_literal "0x42")) () ")")) (compound_statement "{\n    return piVar3;\n  }" ({ "{") (return_statement "return piVar3;" (return "return") (identifier "piVar3") (; ";")) (} "}")))) (expression_statement "piVar3 = (int *)FUN_003daab4(param_1,piVar3);" (assignment_expression "piVar3 = (int *)FUN_003daab4(param_1,piVar3)" (identifier "piVar3") (= "=") (cast_expression "(int *)FUN_003daab4(param_1,piVar3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_003daab4(param_1,piVar3)" (identifier "FUN_003daab4") (argument_list "(param_1,piVar3)" (( "(") (identifier "param_1") (, ",") (identifier "piVar3") () ")"))))) (; ";")) (return_statement "return piVar3;" (return "return") (identifier "piVar3") (; ";")) (} "}")))

/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */
/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */

int * function_1(int var_1)

{
  type_1 *var_12;
  type_2 var_2;
  int *var_7;
  int var_9;
  int var_14;
  int *var_11;
  int var_18;
  type_3 uVar8;
  type_4 *var_5;
  int var_17;
  type_1 *puVar11;
  int var_19;
  type_4 var_4;
  
  var_5 = *(type_4 **)(var_1 + 0xc);
  var_4 = *var_5;
  var_2 = (type_2)var_4;
  if (var_2 - 0x30 < 10) {
    var_7 = (int *)var_3();
    var_4 = **(type_4 **)(var_1 + 0xc);
    goto joined_r0x003de0b0;
  }
  if (var_2 - 0x61 < 0x1a) {
    if ((var_4 == 0x6f) && (var_5[1] == 0x6e)) {
      *(type_4 **)(var_1 + 0xc) = var_5 + 2;
    }
    var_7 = (int *)var_6(var_1);
    var_12 = PTR_strcmp_004c5a68;
    if ((var_7 != (int *)0x0) && (*var_7 == 0x31)) {
      uVar8 = *(type_3 *)var_7[2];
      puVar11 = var_8 + -0x57c0;
      *(int *)(var_1 + 0x2c) = *(int *)(var_1 + 0x2c) + 7 + ((type_3 *)var_7[2])[2];
      var_9 = (*(type_5 *)var_12)(uVar8,puVar11);
      if (var_9 == 0) {
        uVar8 = var_3(var_1);
        var_7 = (int *)var_10(var_1,0x36,var_7,uVar8);
        var_4 = **(type_4 **)(var_1 + 0xc);
        goto joined_r0x003de0b0;
      }
    }
  }
  else {
    if (var_2 - 0x43 < 2) {
      var_11 = *(int **)(var_1 + 0x28);
      if ((var_11 == (int *)0x0) || ((*var_11 != 0 && (*var_11 != 0x18)))) {
        if (var_4 == 0x44) goto LAB_003de2a0;
      }
      else {
        *(int *)(var_1 + 0x2c) = *(int *)(var_1 + 0x2c) + var_11[3];
        var_4 = *var_5;
        if (var_4 != 0x43) {
          var_7 = (int *)0x0;
          if (var_4 != 0x44) goto joined_r0x003de0b0;
LAB_003de2a0:
          var_2 = var_5[1] - 0x30 & 0xff;
          if (var_2 < 6) {
                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */
                    /* WARNING: Treating indirect jump as call */
            var_7 = (int *)(*(type_5 *)(&gold::Position_dependent_options::default_options_.relax_.
                                        user_set_via_option +
                                      *(int *)(var_8 + var_2 * 4 + 0x100)))();
            return var_7;
          }
          var_7 = (int *)0x0;
          goto joined_r0x003de0b0;
        }
      }
      var_12 = var_8;
      if ((char)var_5[1] == 0x49) {
        *(type_4 **)(var_1 + 0xc) = var_5 + 1;
        var_12 = var_8;
        var_2 = var_5[2] - 0x31 & 0xff;
        if (4 < var_2) {
          var_4 = var_5[1];
          var_7 = (int *)0x0;
          goto joined_r0x003de0b0;
        }
        *(type_4 **)(var_1 + 0xc) = var_5 + 3;
        var_9 = *(int *)(var_12 + var_2 * 4 + 0x538);
        var_13(var_1);
        var_11 = *(int **)(var_1 + 0x28);
        var_5 = *(type_4 **)(var_1 + 0xc);
      }
      else {
        var_2 = (int)(char)var_5[1] - 0x31U & 0xff;
        if (4 < var_2) {
          return (int *)0x0;
        }
        var_5 = var_5 + 2;
        *(type_4 **)(var_1 + 0xc) = var_5;
        var_9 = *(int *)(var_12 + var_2 * 4 + 0x538);
      }
      var_14 = *(int *)(var_1 + 0x14);
      if (var_14 < *(int *)(var_1 + 0x18)) {
        var_7 = (int *)(*(int *)(var_1 + 0x10) + var_14 * 0x10);
        var_7[1] = 0;
        *(int *)(var_1 + 0x14) = var_14 + 1;
        if (var_11 != (int *)0x0) {
          var_7[1] = 0;
          var_7[2] = var_9;
          *var_7 = 7;
          var_7[3] = (int)var_11;
          var_4 = *var_5;
          goto joined_r0x003de0b0;
        }
      }
      var_4 = *var_5;
      var_7 = (int *)0x0;
      goto joined_r0x003de0b0;
    }
    if (var_4 != 0x4c) {
      if (var_4 != 0x55) {
        return (int *)0x0;
      }
      if (var_5[1] == 0x6c) {
        *(type_4 **)(var_1 + 0xc) = var_5 + 1;
        var_4 = var_5[1];
        if (var_4 == 0x6c) {
          *(type_4 **)(var_1 + 0xc) = var_5 + 2;
          var_9 = var_15();
          if (var_9 != 0) {
            var_4 = **(type_4 **)(var_1 + 0xc);
            if (var_4 != 0x45) goto LAB_003de1ac;
            *(type_4 **)(var_1 + 0xc) = *(type_4 **)(var_1 + 0xc) + 1;
            var_14 = var_16(var_1);
            if (-1 < var_14) {
              var_17 = *(int *)(var_1 + 0x14);
              var_5 = *(type_4 **)(var_1 + 0xc);
              if (var_17 < *(int *)(var_1 + 0x18)) {
                var_18 = *(int *)(var_1 + 0x20);
                var_19 = *(int *)(var_1 + 0x24);
                var_7 = (int *)(*(int *)(var_1 + 0x10) + var_17 * 0x10);
                var_7[1] = 0;
                *(int *)(var_1 + 0x14) = var_17 + 1;
                var_7[2] = var_9;
                *var_7 = 0x45;
                var_7[3] = var_14;
                if (var_18 < var_19) goto LAB_003de070;
              }
              goto LAB_003de404;
            }
          }
LAB_003de468:
          var_7 = (int *)0x0;
          var_4 = **(type_4 **)(var_1 + 0xc);
          goto joined_r0x003de0b0;
        }
      }
      else {
        if (var_5[1] != 0x74) {
          return (int *)0x0;
        }
        *(type_4 **)(var_1 + 0xc) = var_5 + 1;
        var_4 = var_5[1];
        if (var_4 == 0x74) {
          *(type_4 **)(var_1 + 0xc) = var_5 + 2;
          var_9 = var_16();
          if (-1 < var_9) {
            var_14 = *(int *)(var_1 + 0x14);
            if (var_14 < *(int *)(var_1 + 0x18)) {
              var_18 = *(int *)(var_1 + 0x20);
              var_17 = *(int *)(var_1 + 0x24);
              var_7 = (int *)(*(int *)(var_1 + 0x10) + var_14 * 0x10);
              var_5 = *(type_4 **)(var_1 + 0xc);
              var_7[1] = 0;
              *(int *)(var_1 + 0x14) = var_14 + 1;
              var_7[2] = var_9;
              *var_7 = 0x47;
              if (var_18 < var_17) {
LAB_003de070:
                *(int **)(*(int *)(var_1 + 0x1c) + var_18 * 4) = var_7;
                *(int *)(var_1 + 0x20) = var_18 + 1;
                var_4 = *var_5;
                goto joined_r0x003de0b0;
              }
LAB_003de404:
              var_4 = *var_5;
              var_7 = (int *)0x0;
              goto joined_r0x003de0b0;
            }
          }
          goto LAB_003de468;
        }
      }
LAB_003de1ac:
      var_7 = (int *)0x0;
      goto joined_r0x003de0b0;
    }
    *(type_4 **)(var_1 + 0xc) = var_5 + 1;
    var_7 = (int *)var_3();
    if (var_7 == (int *)0x0) {
      return (int *)0x0;
    }
    var_9 = var_20(var_1);
    if (var_9 == 0) {
      return (int *)0x0;
    }
  }
  var_4 = **(type_4 **)(var_1 + 0xc);
joined_r0x003de0b0:
  if (var_4 != 0x42) {
    return var_7;
  }
  var_7 = (int *)var_21(var_1,var_7);
  return var_7;
}


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

int * MASKED(int param_1)

{
  undefined *puVar1;
  uint uVar2;
  int *piVar3;
  int iVar4;
  int iVar5;
  int *piVar6;
  int iVar7;
  undefined4 uVar8;
  byte *pbVar9;
  int iVar10;
  undefined *puVar11;
  int iVar12;
  byte bVar13;
  
  pbVar9 = *(byte **)(param_1 + 0xc);
  bVar13 = *pbVar9;
  uVar2 = (uint)bVar13;
  if (uVar2 - 0x30 < 10) {
    piVar3 = (int *)FUN_003da8b0();
    bVar13 = **(byte **)(param_1 + 0xc);
    goto joined_r0x003de0b0;
  }
  if (uVar2 - 0x61 < 0x1a) {
    if ((bVar13 == 0x6f) && (pbVar9[1] == 0x6e)) {
      *(byte **)(param_1 + 0xc) = pbVar9 + 2;
    }
    piVar3 = (int *)FUN_003dd6ac(param_1);
    puVar1 = PTR_strcmp_004c5a68;
    if ((piVar3 != (int *)0x0) && (*piVar3 == 0x31)) {
      uVar8 = *(undefined4 *)piVar3[2];
      puVar11 = PTR_UINT_004c12dc + -0x57c0;
      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 7 + ((undefined4 *)piVar3[2])[2];
      iVar4 = (*(code *)puVar1)(uVar8,puVar11);
      if (iVar4 == 0) {
        uVar8 = FUN_003da8b0(param_1);
        piVar3 = (int *)FUN_003da330(param_1,0x36,piVar3,uVar8);
        bVar13 = **(byte **)(param_1 + 0xc);
        goto joined_r0x003de0b0;
      }
    }
  }
  else {
    if (uVar2 - 0x43 < 2) {
      piVar6 = *(int **)(param_1 + 0x28);
      if ((piVar6 == (int *)0x0) || ((*piVar6 != 0 && (*piVar6 != 0x18)))) {
        if (bVar13 == 0x44) goto LAB_003de2a0;
      }
      else {
        *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + piVar6[3];
        bVar13 = *pbVar9;
        if (bVar13 != 0x43) {
          piVar3 = (int *)0x0;
          if (bVar13 != 0x44) goto joined_r0x003de0b0;
LAB_003de2a0:
          uVar2 = pbVar9[1] - 0x30 & 0xff;
          if (uVar2 < 6) {
                    /* WARNING: Could not emulate address calculation at 0x003de2c4 */
                    /* WARNING: Treating indirect jump as call */
            piVar3 = (int *)(*(code *)(gold::Position_dependent_options::default_options_ +
                                      *(int *)(PTR_UINT_004c12dc + uVar2 * 4 + 0x100) + 0x3210))();
            return piVar3;
          }
          piVar3 = (int *)0x0;
          goto joined_r0x003de0b0;
        }
      }
      puVar1 = PTR_UINT_004c12dc;
      if ((char)pbVar9[1] == 0x49) {
        *(byte **)(param_1 + 0xc) = pbVar9 + 1;
        puVar1 = PTR_UINT_004c12dc;
        uVar2 = pbVar9[2] - 0x31 & 0xff;
        if (4 < uVar2) {
          bVar13 = pbVar9[1];
          piVar3 = (int *)0x0;
          goto joined_r0x003de0b0;
        }
        *(byte **)(param_1 + 0xc) = pbVar9 + 3;
        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);
        FUN_003dc9d0(param_1);
        piVar6 = *(int **)(param_1 + 0x28);
        pbVar9 = *(byte **)(param_1 + 0xc);
      }
      else {
        uVar2 = (int)(char)pbVar9[1] - 0x31U & 0xff;
        if (4 < uVar2) {
          return (int *)0x0;
        }
        pbVar9 = pbVar9 + 2;
        *(byte **)(param_1 + 0xc) = pbVar9;
        iVar4 = *(int *)(puVar1 + uVar2 * 4 + 0x538);
      }
      iVar5 = *(int *)(param_1 + 0x14);
      if (iVar5 < *(int *)(param_1 + 0x18)) {
        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);
        piVar3[1] = 0;
        *(int *)(param_1 + 0x14) = iVar5 + 1;
        if (piVar6 != (int *)0x0) {
          piVar3[1] = 0;
          piVar3[2] = iVar4;
          *piVar3 = 7;
          piVar3[3] = (int)piVar6;
          bVar13 = *pbVar9;
          goto joined_r0x003de0b0;
        }
      }
      bVar13 = *pbVar9;
      piVar3 = (int *)0x0;
      goto joined_r0x003de0b0;
    }
    if (bVar13 != 0x4c) {
      if (bVar13 != 0x55) {
        return (int *)0x0;
      }
      if (pbVar9[1] == 0x6c) {
        *(byte **)(param_1 + 0xc) = pbVar9 + 1;
        bVar13 = pbVar9[1];
        if (bVar13 == 0x6c) {
          *(byte **)(param_1 + 0xc) = pbVar9 + 2;
          iVar4 = FUN_003dd8b0();
          if (iVar4 != 0) {
            bVar13 = **(byte **)(param_1 + 0xc);
            if (bVar13 != 0x45) goto LAB_003de1ac;
            *(byte **)(param_1 + 0xc) = *(byte **)(param_1 + 0xc) + 1;
            iVar5 = FUN_003da780(param_1);
            if (-1 < iVar5) {
              iVar10 = *(int *)(param_1 + 0x14);
              pbVar9 = *(byte **)(param_1 + 0xc);
              if (iVar10 < *(int *)(param_1 + 0x18)) {
                iVar7 = *(int *)(param_1 + 0x20);
                iVar12 = *(int *)(param_1 + 0x24);
                piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0x10);
                piVar3[1] = 0;
                *(int *)(param_1 + 0x14) = iVar10 + 1;
                piVar3[2] = iVar4;
                *piVar3 = 0x45;
                piVar3[3] = iVar5;
                if (iVar7 < iVar12) goto LAB_003de070;
              }
              goto LAB_003de404;
            }
          }
LAB_003de468:
          piVar3 = (int *)0x0;
          bVar13 = **(byte **)(param_1 + 0xc);
          goto joined_r0x003de0b0;
        }
      }
      else {
        if (pbVar9[1] != 0x74) {
          return (int *)0x0;
        }
        *(byte **)(param_1 + 0xc) = pbVar9 + 1;
        bVar13 = pbVar9[1];
        if (bVar13 == 0x74) {
          *(byte **)(param_1 + 0xc) = pbVar9 + 2;
          iVar4 = FUN_003da780();
          if (-1 < iVar4) {
            iVar5 = *(int *)(param_1 + 0x14);
            if (iVar5 < *(int *)(param_1 + 0x18)) {
              iVar7 = *(int *)(param_1 + 0x20);
              iVar10 = *(int *)(param_1 + 0x24);
              piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar5 * 0x10);
              pbVar9 = *(byte **)(param_1 + 0xc);
              piVar3[1] = 0;
              *(int *)(param_1 + 0x14) = iVar5 + 1;
              piVar3[2] = iVar4;
              *piVar3 = 0x47;
              if (iVar7 < iVar10) {
LAB_003de070:
                *(int **)(*(int *)(param_1 + 0x1c) + iVar7 * 4) = piVar3;
                *(int *)(param_1 + 0x20) = iVar7 + 1;
                bVar13 = *pbVar9;
                goto joined_r0x003de0b0;
              }
LAB_003de404:
              bVar13 = *pbVar9;
              piVar3 = (int *)0x0;
              goto joined_r0x003de0b0;
            }
          }
          goto LAB_003de468;
        }
      }
LAB_003de1ac:
      piVar3 = (int *)0x0;
      goto joined_r0x003de0b0;
    }
    *(byte **)(param_1 + 0xc) = pbVar9 + 1;
    piVar3 = (int *)FUN_003da8b0();
    if (piVar3 == (int *)0x0) {
      return (int *)0x0;
    }
    iVar4 = FUN_003daf14(param_1);
    if (iVar4 == 0) {
      return (int *)0x0;
    }
  }
  bVar13 = **(byte **)(param_1 + 0xc);
joined_r0x003de0b0:
  if (bVar13 != 0x42) {
    return piVar3;
  }
  piVar3 = (int *)FUN_003daab4(param_1,piVar3);
  return piVar3;
}

