
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

bfd_boolean __regparm3
debug_write_type(debug_handle *info,debug_write_fns *fns,void *fhandle,debug_type_s *type,
                debug_name *name)

{
  int *piVar1;
  debug_name *pdVar2;
  debug_array_type *pdVar3;
  debug_enum_type *pdVar4;
  debug_field *ppdVar5;
  debug_method_variant_s *pdVar6;
  _func_bfd_boolean_void_ptr *UNRECOVERED_JUMPTABLE_00;
  undefined4 uVar7;
  int iVar8;
  _func_bfd_boolean_void_ptr_char_ptr *UNRECOVERED_JUMPTABLE;
  debug_type_kind dVar9;
  debug_type_s *pdVar10;
  bfd_boolean bVar11;
  debug_class_type *pdVar12;
  uint uVar13;
  debug_method_type *pdVar14;
  debug_function_type *pdVar15;
  uint uVar16;
  int iVar17;
  _func_bfd_boolean_void_ptr_char_ptr_uint_bfd_boolean_uint *p_Var18;
  debug_field pdVar19;
  debug_baseclass pdVar20;
  char *pcVar21;
  debug_class_type *local_34;
  char *local_30;
  debug_array_type *local_2c;
  debug_method local_28;
  int local_24;
  
LAB_0001d2f6:
  do {
    for (; dVar9 = type->kind, 1 < dVar9 - DEBUG_KIND_NAMED; type = ((type->u).karray)->range_type)
    {
LAB_0001d300:
      if (name == (debug_name *)0x0) {
        local_30 = (char *)0x0;
LAB_0001d329:
        switch(dVar9) {
        case DEBUG_KIND_ILLEGAL:
          uVar7 = dcgettext(0,"debug_write_type: illegal type encountered",5);
          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar7);
          return 0;
        case DEBUG_KIND_INDIRECT:
          goto _L288;
        case DEBUG_KIND_VOID:
          UNRECOVERED_JUMPTABLE_00 = fns->void_type;
          goto LAB_0001d69f;
        case DEBUG_KIND_INT:
          bVar11 = (*fns->int_type)(fhandle,type->size,(type->u).kint);
          return bVar11;
        case DEBUG_KIND_FLOAT:
          name = (debug_name *)type->size;
          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->float_type;
          break;
        case DEBUG_KIND_COMPLEX:
          name = (debug_name *)type->size;
          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->complex_type;
          break;
        case DEBUG_KIND_BOOL:
          name = (debug_name *)type->size;
          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->bool_type;
          break;
        case DEBUG_KIND_STRUCT:
        case DEBUG_KIND_UNION:
          pdVar12 = (type->u).kclass;
          if (pdVar12 == (debug_class_type *)0x0) {
            p_Var18 = fns->start_struct_type;
            uVar13 = type->size;
            uVar16 = 0;
          }
          else {
            uVar13 = pdVar12->id;
            if (info->base_id < uVar13) {
              uVar16 = info->mark;
              if (pdVar12->mark == uVar16) {
LAB_0001db48:
                bVar11 = (*fns->tag_type)(fhandle,local_30,uVar13,type->kind);
                return bVar11;
              }
            }
            else {
              bVar11 = debug_set_class_id(info,local_30,type);
              if (bVar11 == 0) {
                return 0;
              }
              pdVar12 = (type->u).kclass;
              uVar16 = info->mark;
              if (uVar16 == pdVar12->mark) {
                uVar13 = pdVar12->id;
                if (uVar13 <= info->base_id) {
                  pcVar21 = "debug_write_type";
                  uVar13 = 0x9d1;
LAB_0001de3e:
                    /* WARNING: Subroutine does not return */
                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar13
                                ,pcVar21);
                }
                goto LAB_0001db48;
              }
            }
            p_Var18 = fns->start_struct_type;
            uVar13 = type->size;
            pdVar12->mark = uVar16;
            uVar16 = pdVar12->id;
            dVar9 = type->kind;
          }
          bVar11 = (*p_Var18)(fhandle,local_30,uVar16,(uint)(dVar9 == DEBUG_KIND_STRUCT),uVar13);
          if (bVar11 == 0) {
            return 0;
          }
          if ((((type->u).kclass != (debug_class_type *)0x0) &&
              (ppdVar5 = ((type->u).kclass)->fields, ppdVar5 != (debug_field *)0x0)) &&
             (pdVar19 = *ppdVar5, pdVar19 != (debug_field)0x0)) {
            iVar17 = 4;
            do {
              bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);
              if (bVar11 == 0) {
                return 0;
              }
              bVar11 = (*fns->struct_field)
                                 (fhandle,pdVar19->name,(pdVar19->u).f.bitpos,(pdVar19->u).f.bitsize
                                  ,pdVar19->visibility);
              if (bVar11 == 0) {
                return 0;
              }
              pdVar19 = *(debug_field *)((int)((type->u).kindirect)->slot + iVar17);
              iVar17 = iVar17 + 4;
            } while (pdVar19 != (debug_field)0x0);
          }
          UNRECOVERED_JUMPTABLE_00 = fns->end_struct_type;
          goto LAB_0001d69f;
        case DEBUG_KIND_CLASS:
        case DEBUG_KIND_UNION_CLASS:
          local_34 = (type->u).kclass;
          if (local_34 == (debug_class_type *)0x0) {
            uVar13 = 0;
            local_2c = (debug_array_type *)0x0;
            local_34 = (debug_class_type *)0x0;
          }
          else {
            local_2c = (debug_array_type *)local_34->id;
            if (info->base_id < local_2c) {
              uVar13 = info->mark;
              if (local_34->mark == uVar13) {
LAB_0001dafa:
                bVar11 = (*fns->tag_type)(fhandle,local_30,(uint)local_2c,dVar9);
                return bVar11;
              }
            }
            else {
              bVar11 = debug_set_class_id(info,local_30,type);
              if (bVar11 == 0) {
                return 0;
              }
              local_34 = (type->u).kclass;
              uVar13 = info->mark;
              local_2c = (debug_array_type *)local_34->id;
              if (uVar13 == local_34->mark) {
                if (local_2c <= info->base_id) {
                  pcVar21 = "debug_write_class_type";
                  uVar13 = 0xa7d;
                  goto LAB_0001de3e;
                }
                dVar9 = type->kind;
                goto LAB_0001dafa;
              }
            }
            local_34->mark = uVar13;
            local_34 = (debug_class_type *)local_34->vptrbase;
            if (((debug_class_type *)type == local_34) || (local_34 == (debug_class_type *)0x0)) {
              uVar13 = (uint)(local_34 != (debug_class_type *)0x0);
              dVar9 = type->kind;
            }
            else {
              bVar11 = debug_write_type(info,fns,fhandle,(debug_type_s *)local_34,(debug_name *)0x0)
              ;
              if (bVar11 == 0) {
                return 0;
              }
              dVar9 = type->kind;
              uVar13 = 1;
            }
          }
          bVar11 = (*fns->start_class_type)
                             (fhandle,local_30,(uint)local_2c,(uint)(dVar9 == DEBUG_KIND_CLASS),
                              type->size,uVar13,(uint)((debug_class_type *)type == local_34));
          if (bVar11 == 0) {
            return 0;
          }
          pdVar12 = (type->u).kclass;
          if (pdVar12 != (debug_class_type *)0x0) {
            if ((pdVar12->fields != (debug_field *)0x0) &&
               (pdVar19 = *pdVar12->fields, pdVar19 != (debug_field)0x0)) {
              iVar17 = 4;
              do {
                bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);
                if (bVar11 == 0) {
                  return 0;
                }
                pcVar21 = (char *)(pdVar19->u).f.bitpos;
                if (pdVar19->static_member == 0) {
                  iVar8 = (*fns->struct_field)
                                    (fhandle,pdVar19->name,(bfd_vma)pcVar21,(pdVar19->u).f.bitsize,
                                     pdVar19->visibility);
                }
                else {
                  iVar8 = (*fns->class_static_member)
                                    (fhandle,pdVar19->name,pcVar21,pdVar19->visibility);
                }
                if (iVar8 == 0) {
                  return 0;
                }
                pdVar12 = (type->u).kclass;
                pdVar19 = *(debug_field *)((int)pdVar12->fields + iVar17);
                iVar17 = iVar17 + 4;
              } while (pdVar19 != (debug_field)0x0);
            }
            if ((pdVar12->baseclasses != (debug_baseclass *)0x0) &&
               (pdVar20 = *pdVar12->baseclasses, pdVar20 != (debug_baseclass)0x0)) {
              iVar17 = 4;
              do {
                bVar11 = debug_write_type(info,fns,fhandle,pdVar20->type,(debug_name *)0x0);
                if (bVar11 == 0) {
                  return 0;
                }
                bVar11 = (*fns->class_baseclass)
                                   (fhandle,pdVar20->bitpos,pdVar20->is_virtual,pdVar20->visibility)
                ;
                if (bVar11 == 0) {
                  return 0;
                }
                pdVar12 = (type->u).kclass;
                pdVar20 = *(debug_baseclass *)((int)pdVar12->baseclasses + iVar17);
                iVar17 = iVar17 + 4;
              } while (pdVar20 != (debug_baseclass)0x0);
            }
            if ((pdVar12->methods != (debug_method *)0x0) &&
               (local_28 = *pdVar12->methods, local_28 != (debug_method)0x0)) {
              local_24 = 0;
              do {
                bVar11 = (*fns->class_start_method)(fhandle,local_28->name);
                if (bVar11 == 0) {
                  return 0;
                }
                iVar17 = 4;
                pdVar6 = *local_28->variants;
                while (pdVar6 != (debug_method_variant_s *)0x0) {
                  if ((pdVar6->context != (debug_type_s *)0x0) &&
                     (bVar11 = debug_write_type(info,fns,fhandle,pdVar6->context,(debug_name *)0x0),
                     bVar11 == 0)) {
                    return 0;
                  }
                  bVar11 = debug_write_type(info,fns,fhandle,pdVar6->type,(debug_name *)0x0);
                  if (bVar11 == 0) {
                    return 0;
                  }
                  if (pdVar6->voffset == 0xffffffff) {
                    iVar8 = (*fns->class_static_method_variant)
                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,
                                       pdVar6->volatilep);
                  }
                  else {
                    iVar8 = (*fns->class_method_variant)
                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,
                                       pdVar6->volatilep,pdVar6->voffset,
                                       (uint)(pdVar6->context != (debug_type_s *)0x0));
                  }
                  if (iVar8 == 0) {
                    return 0;
                  }
                  piVar1 = (int *)((int)local_28->variants + iVar17);
                  iVar17 = iVar17 + 4;
                  pdVar6 = (debug_method_variant_s *)*piVar1;
                }
                bVar11 = (*fns->class_end_method)(fhandle);
                if (bVar11 == 0) {
                  return 0;
                }
                local_24 = local_24 + 1;
                local_28 = ((type->u).kclass)->methods[local_24];
              } while (local_28 != (debug_method)0x0);
            }
          }
          UNRECOVERED_JUMPTABLE_00 = fns->end_class_type;
          goto LAB_0001d69f;
        case DEBUG_KIND_ENUM:
          pdVar4 = (type->u).kenum;
          if (pdVar4 == (debug_enum_type *)0x0) {
            bVar11 = (*fns->enum_type)(fhandle,local_30,(char **)0x0,(bfd_signed_vma *)0x0);
            return bVar11;
          }
          bVar11 = (*fns->enum_type)(fhandle,local_30,pdVar4->names,pdVar4->values);
          return bVar11;
        case DEBUG_KIND_POINTER:
          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);
          if (bVar11 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_00 = fns->pointer_type;
          goto LAB_0001d69f;
        case DEBUG_KIND_FUNCTION:
          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,
                                    (debug_name *)0x0);
          if (bVar11 == 0) {
            return 0;
          }
          pdVar15 = (type->u).kfunction;
          if (pdVar15->arg_types == (debug_type_conflict *)0x0) {
            iVar17 = -1;
          }
          else {
            iVar17 = 0;
            pdVar10 = *pdVar15->arg_types;
            while (pdVar10 != (debug_type_s *)0x0) {
              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);
              if (bVar11 == 0) {
                return 0;
              }
              pdVar15 = (type->u).kfunction;
              iVar17 = iVar17 + 1;
              pdVar10 = pdVar15->arg_types[iVar17];
            }
          }
          bVar11 = (*fns->function_type)(fhandle,iVar17,pdVar15->varargs);
          return bVar11;
        case DEBUG_KIND_REFERENCE:
          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);
          if (bVar11 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_00 = fns->reference_type;
          goto LAB_0001d69f;
        case DEBUG_KIND_RANGE:
          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,
                                    (debug_name *)0x0);
          if (bVar11 == 0) {
            return 0;
          }
          bVar11 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);
          return bVar11;
        case DEBUG_KIND_ARRAY:
          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,
                                    (debug_name *)0x0);
          if (bVar11 == 0) {
            return 0;
          }
          bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,
                                    (debug_name *)0x0);
          if (bVar11 == 0) {
            return 0;
          }
          pdVar3 = (type->u).karray;
          bVar11 = (*fns->array_type)(fhandle,pdVar3->lower,pdVar3->upper,pdVar3->stringp);
          return bVar11;
        case DEBUG_KIND_SET:
          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,
                                    (debug_name *)0x0);
          if (bVar11 == 0) {
            return 0;
          }
          name = (debug_name *)((type->u).karray)->range_type;
          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->set_type;
          break;
        case DEBUG_KIND_OFFSET:
          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,
                                    (debug_name *)0x0);
          if (bVar11 == 0) {
            return 0;
          }
          bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,
                                    (debug_name *)0x0);
          if (bVar11 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_00 = fns->offset_type;
          goto LAB_0001d69f;
        case DEBUG_KIND_METHOD:
          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,
                                    (debug_name *)0x0);
          if (bVar11 == 0) {
            return 0;
          }
          pdVar14 = (type->u).kmethod;
          if (pdVar14->arg_types == (debug_type_conflict *)0x0) {
            iVar17 = -1;
          }
          else {
            iVar17 = 0;
            pdVar10 = *pdVar14->arg_types;
            while (pdVar10 != (debug_type_s *)0x0) {
              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);
              if (bVar11 == 0) {
                return 0;
              }
              pdVar14 = (type->u).kmethod;
              iVar17 = iVar17 + 1;
              pdVar10 = pdVar14->arg_types[iVar17];
            }
          }
          pdVar10 = pdVar14->domain_type;
          if (pdVar10 != (debug_type_s *)0x0) {
            bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);
            if (bVar11 == 0) {
              return 0;
            }
            pdVar14 = (type->u).kmethod;
            pdVar10 = pdVar14->domain_type;
          }
          bVar11 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar17,
                                       pdVar14->varargs);
          return bVar11;
        case DEBUG_KIND_CONST:
          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);
          if (bVar11 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_00 = fns->const_type;
          goto LAB_0001d69f;
        case DEBUG_KIND_VOLATILE:
          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);
          if (bVar11 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_00 = fns->volatile_type;
          goto LAB_0001d69f;
        case DEBUG_KIND_NAMED:
          goto _L264;
        case DEBUG_KIND_TAGGED:
_L268:
          local_2c = (type->u).karray;
          name = (debug_name *)local_2c->element_type;
          goto LAB_0001d36b;
        default:
                    /* WARNING: Subroutine does not return */
          abort();
        }
LAB_0001d9c6:
                    /* WARNING: Could not recover jumptable at 0x0001d9cd. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        bVar11 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)name);
        return bVar11;
      }
      name->mark = info->mark;
      if (dVar9 != DEBUG_KIND_NAMED) {
        if (dVar9 != DEBUG_KIND_TAGGED) {
          if (name->kind != DEBUG_OBJECT_TAG) {
                    /* WARNING: Subroutine does not return */
            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,
                          "debug_write_type");
          }
          local_30 = name->name;
          goto LAB_0001d329;
        }
        goto _L268;
      }
_L264:
      name = (debug_name *)0x0;
    }
    local_2c = (debug_array_type *)(type->u).knamed;
    pdVar2 = (debug_name *)local_2c->element_type;
    if (pdVar2->mark == info->mark) {
      if (dVar9 == DEBUG_KIND_NAMED) {
        name = (debug_name *)pdVar2->name;
        UNRECOVERED_JUMPTABLE = fns->typedef_type;
        goto LAB_0001d9c6;
      }
LAB_0001db7f:
      pdVar10 = debug_get_real_type(info,type,(debug_type_real_list *)0x0);
      if (pdVar10 != (debug_type_s *)0x0) {
        dVar9 = pdVar10->kind;
        pcVar21 = ((type->u).knamed)->name->name;
        if ((dVar9 - DEBUG_KIND_STRUCT < 4) && ((pdVar10->u).kclass != (debug_class_type *)0x0)) {
          uVar13 = ((pdVar10->u).kclass)->id;
          if (uVar13 <= info->base_id) {
            bVar11 = debug_set_class_id(info,pcVar21,pdVar10);
            if (bVar11 == 0) {
              return 0;
            }
            uVar13 = ((pdVar10->u).kclass)->id;
            dVar9 = pdVar10->kind;
            pcVar21 = ((type->u).knamed)->name->name;
          }
        }
        else {
          uVar13 = 0;
        }
        bVar11 = (*fns->tag_type)(fhandle,pcVar21,uVar13,dVar9);
        return bVar11;
      }
      goto LAB_0001d6c3;
    }
    if (dVar9 != DEBUG_KIND_TAGGED) goto LAB_0001d300;
    if (pdVar2 != name) goto LAB_0001db7f;
    name->mark = info->mark;
LAB_0001d36b:
    type = local_2c->range_type;
  } while( true );
_L288:
  type = *((type->u).kindirect)->slot;
  if (type == (debug_type_conflict)0x0) {
LAB_0001d6c3:
    UNRECOVERED_JUMPTABLE_00 = fns->empty_type;
LAB_0001d69f:
                    /* WARNING: Could not recover jumptable at 0x0001d6a6. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    bVar11 = (*UNRECOVERED_JUMPTABLE_00)(fhandle);
    return bVar11;
  }
  goto LAB_0001d2f6;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

undefined4 __regparm3
FUN_0001d2d0(int param_1,int param_2,undefined4 param_3,int *param_4,int param_5)

{
  int iVar1;
  code *UNRECOVERED_JUMPTABLE_00;
  int *piVar2;
  int iVar3;
  undefined4 uVar4;
  uint uVar5;
  int iVar6;
  undefined4 *puVar7;
  bool bVar8;
  char *__function;
  int *local_34;
  undefined4 local_30;
  int *local_2c;
  undefined4 *puStack_28;
  int iStack_24;
  
LAB_0001d2f6:
  do {
    for (; iVar3 = *param_4, 1 < iVar3 - 0x16U; param_4 = *(int **)(param_4[3] + 4)) {
LAB_0001d300:
      if (param_5 == 0) {
        local_30 = 0;
LAB_0001d329:
        switch(iVar3) {
        case 0:
          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);
          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);
          return 0;
        case 1:
          goto code_r0x0001d6b0;
        case 2:
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);
          goto LAB_0001d69f;
        case 3:
          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);
          return uVar4;
        case 4:
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);
          break;
        case 5:
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);
          break;
        case 6:
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);
          break;
        case 7:
        case 8:
          iVar6 = param_4[3];
          if (iVar6 == 0) {
            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);
            iVar1 = param_4[1];
            uVar4 = 0;
          }
          else {
            uVar5 = *(uint *)(iVar6 + 8);
            if (*(uint *)(param_1 + 0x20) < uVar5) {
              iVar3 = *(int *)(param_1 + 0x18);
              if (*(int *)(iVar6 + 4) == iVar3) {
code_r0x0001db48:
                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);
                return uVar4;
              }
            }
            else {
              iVar3 = FUN_0001d1a0();
              if (iVar3 == 0) {
                return 0;
              }
              iVar6 = param_4[3];
              iVar3 = *(int *)(param_1 + 0x18);
              if (iVar3 == *(int *)(iVar6 + 4)) {
                uVar5 = *(uint *)(iVar6 + 8);
                if (uVar5 <= *(uint *)(param_1 + 0x20)) {
                  __function = "debug_write_type";
                  uVar5 = 0x9d1;
code_r0x0001de3e:
                    /* WARNING: Subroutine does not return */
                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,
                                __function);
                }
                goto code_r0x0001db48;
              }
            }
            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);
            iVar1 = param_4[1];
            *(int *)(iVar6 + 4) = iVar3;
            uVar4 = *(undefined4 *)(iVar6 + 8);
            iVar3 = *param_4;
          }
          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);
          if (iVar3 == 0) {
            return 0;
          }
          if ((((int *)param_4[3] != (int *)0x0) &&
              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&
             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {
            iVar3 = 4;
            do {
              iVar6 = FUN_0001d2d0(puVar7[1],0);
              if (iVar6 == 0) {
                return 0;
              }
              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);
              if (iVar6 == 0) {
                return 0;
              }
              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);
              iVar3 = iVar3 + 4;
            } while (puVar7 != (undefined4 *)0x0);
          }
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);
          goto LAB_0001d69f;
        case 9:
        case 10:
          local_34 = (int *)param_4[3];
          if (local_34 == (int *)0x0) {
            bVar8 = false;
            local_2c = (int *)0x0;
            local_34 = (int *)0x0;
          }
          else {
            local_2c = *(int **)((int)local_34 + 8);
            if (*(uint *)(param_1 + 0x20) < local_2c) {
              iVar6 = *(int *)(param_1 + 0x18);
              if (*(int *)((int)local_34 + 4) == iVar6) {
code_r0x0001dafa:
                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);
                return uVar4;
              }
            }
            else {
              iVar3 = FUN_0001d1a0();
              if (iVar3 == 0) {
                return 0;
              }
              local_34 = (int *)param_4[3];
              iVar6 = *(int *)(param_1 + 0x18);
              local_2c = *(int **)((int)local_34 + 8);
              if (iVar6 == *(int *)((int)local_34 + 4)) {
                if (local_2c <= *(uint *)(param_1 + 0x20)) {
                  __function = "debug_write_class_type";
                  uVar5 = 0xa7d;
                  goto code_r0x0001de3e;
                }
                iVar3 = *param_4;
                goto code_r0x0001dafa;
              }
            }
            *(int *)((int)local_34 + 4) = iVar6;
            local_34 = *(int **)((int)local_34 + 0x14);
            bVar8 = local_34 != (int *)0x0;
            if ((param_4 == local_34) || (!bVar8)) {
              iVar3 = *param_4;
            }
            else {
              iVar3 = FUN_0001d2d0(local_34,0);
              if (iVar3 == 0) {
                return 0;
              }
              iVar3 = *param_4;
              bVar8 = true;
            }
          }
          iVar3 = (**(code **)(param_2 + 0x58))
                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,
                             param_4 == local_34);
          if (iVar3 == 0) {
            return 0;
          }
          piVar2 = (int *)param_4[3];
          if (piVar2 != (int *)0x0) {
            if (((int *)*piVar2 != (int *)0x0) &&
               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {
              iVar3 = 4;
              do {
                iVar6 = FUN_0001d2d0(puVar7[1],0);
                if (iVar6 == 0) {
                  return 0;
                }
                if (puVar7[3] == 0) {
                  iVar6 = (**(code **)(param_2 + 0x50))
                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);
                }
                else {
                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);
                }
                if (iVar6 == 0) {
                  return 0;
                }
                piVar2 = (int *)param_4[3];
                puVar7 = *(undefined4 **)(*piVar2 + iVar3);
                iVar3 = iVar3 + 4;
              } while (puVar7 != (undefined4 *)0x0);
            }
            if (((int *)piVar2[3] != (int *)0x0) &&
               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {
              iVar3 = 4;
              do {
                iVar6 = FUN_0001d2d0(*puVar7,0);
                if (iVar6 == 0) {
                  return 0;
                }
                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);
                if (iVar6 == 0) {
                  return 0;
                }
                piVar2 = (int *)param_4[3];
                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);
                iVar3 = iVar3 + 4;
              } while (puVar7 != (undefined4 *)0x0);
            }
            if (((int *)piVar2[4] != (int *)0x0) &&
               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {
              iStack_24 = 0;
              do {
                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);
                if (iVar3 == 0) {
                  return 0;
                }
                iVar3 = 4;
                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;
                    puVar7 = (undefined4 *)*puVar7) {
                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {
                    return 0;
                  }
                  iVar6 = FUN_0001d2d0(puVar7[1],0);
                  if (iVar6 == 0) {
                    return 0;
                  }
                  if (puVar7[5] == -1) {
                    iVar6 = (**(code **)(param_2 + 0x6c))
                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);
                  }
                  else {
                    iVar6 = (**(code **)(param_2 + 0x68))
                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],
                                       puVar7[6] != 0);
                  }
                  if (iVar6 == 0) {
                    return 0;
                  }
                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);
                  iVar3 = iVar3 + 4;
                }
                iVar3 = (**(code **)(param_2 + 0x70))(param_3);
                if (iVar3 == 0) {
                  return 0;
                }
                iStack_24 = iStack_24 + 1;
                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);
              } while (puStack_28 != (undefined4 *)0x0);
            }
          }
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);
          goto LAB_0001d69f;
        case 0xb:
          puVar7 = (undefined4 *)param_4[3];
          if (puVar7 == (undefined4 *)0x0) {
            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);
            return uVar4;
          }
          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);
          return uVar4;
        case 0xc:
          iVar3 = FUN_0001d2d0(param_4[3],0);
          if (iVar3 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);
          goto LAB_0001d69f;
        case 0xd:
          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);
          if (iVar3 == 0) {
            return 0;
          }
          iVar3 = param_4[3];
          if (*(int **)(iVar3 + 4) == (int *)0x0) {
            iVar6 = -1;
          }
          else {
            iVar6 = 0;
            iVar1 = **(int **)(iVar3 + 4);
            while (iVar1 != 0) {
              iVar3 = FUN_0001d2d0(iVar1,0);
              if (iVar3 == 0) {
                return 0;
              }
              iVar3 = param_4[3];
              iVar6 = iVar6 + 1;
              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);
            }
          }
          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));
          return uVar4;
        case 0xe:
          iVar3 = FUN_0001d2d0(param_4[3],0);
          if (iVar3 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);
          goto LAB_0001d69f;
        case 0xf:
          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);
          if (iVar3 == 0) {
            return 0;
          }
          uVar4 = (**(code **)(param_2 + 0x30))
                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)
                            );
          return uVar4;
        case 0x10:
          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);
          if (iVar3 == 0) {
            return 0;
          }
          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);
          if (iVar3 == 0) {
            return 0;
          }
          iVar3 = param_4[3];
          uVar4 = (**(code **)(param_2 + 0x34))
                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),
                             *(undefined4 *)(iVar3 + 0x10));
          return uVar4;
        case 0x11:
          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);
          if (iVar3 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);
          break;
        case 0x12:
          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);
          if (iVar3 == 0) {
            return 0;
          }
          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);
          if (iVar3 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);
          goto LAB_0001d69f;
        case 0x13:
          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);
          if (iVar3 == 0) {
            return 0;
          }
          iVar3 = param_4[3];
          if (*(int **)(iVar3 + 8) == (int *)0x0) {
            iVar6 = -1;
          }
          else {
            iVar6 = 0;
            iVar1 = **(int **)(iVar3 + 8);
            while (iVar1 != 0) {
              iVar3 = FUN_0001d2d0(iVar1,0);
              if (iVar3 == 0) {
                return 0;
              }
              iVar3 = param_4[3];
              iVar6 = iVar6 + 1;
              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);
            }
          }
          iVar1 = *(int *)(iVar3 + 4);
          if (iVar1 != 0) {
            iVar3 = FUN_0001d2d0(iVar1,0);
            if (iVar3 == 0) {
              return 0;
            }
            iVar3 = param_4[3];
            iVar1 = *(int *)(iVar3 + 4);
          }
          uVar4 = (**(code **)(param_2 + 0x40))
                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));
          return uVar4;
        case 0x14:
          iVar3 = FUN_0001d2d0(param_4[3],0);
          if (iVar3 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);
          goto LAB_0001d69f;
        case 0x15:
          iVar3 = FUN_0001d2d0(param_4[3],0);
          if (iVar3 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);
          goto LAB_0001d69f;
        case 0x16:
          goto LAB_0001d388;
        case 0x17:
LAB_0001daa0:
          local_2c = (int *)param_4[3];
          param_5 = *local_2c;
          goto LAB_0001d36b;
        default:
                    /* WARNING: Subroutine does not return */
          abort();
        }
LAB_0001d9c6:
                    /* WARNING: Could not recover jumptable at 0x0001d9cd. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();
        return uVar4;
      }
      *(undefined4 *)(param_5 + 8) = *(undefined4 *)(param_1 + 0x18);
      if (iVar3 != 0x16) {
        if (iVar3 != 0x17) {
          if (*(int *)(param_5 + 0xc) != 1) {
                    /* WARNING: Subroutine does not return */
            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,
                          "debug_write_type");
          }
          local_30 = *(undefined4 *)(param_5 + 4);
          goto LAB_0001d329;
        }
        goto LAB_0001daa0;
      }
LAB_0001d388:
      param_5 = 0;
    }
    local_2c = (int *)param_4[3];
    if (*(int *)(*local_2c + 8) == *(int *)(param_1 + 0x18)) {
      if (iVar3 == 0x16) {
        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);
        goto LAB_0001d9c6;
      }
LAB_0001db7f:
      piVar2 = (int *)FUN_0001c820();
      if (piVar2 != (int *)0x0) {
        iVar3 = *piVar2;
        uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);
        if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {
          uVar5 = *(uint *)(piVar2[3] + 8);
          if (uVar5 <= *(uint *)(param_1 + 0x20)) {
            iVar3 = FUN_0001d1a0();
            if (iVar3 == 0) {
              return 0;
            }
            uVar5 = *(uint *)(piVar2[3] + 8);
            iVar3 = *piVar2;
            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);
          }
        }
        else {
          uVar5 = 0;
        }
        uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);
        return uVar4;
      }
      goto LAB_0001d6c3;
    }
    if (iVar3 != 0x17) goto LAB_0001d300;
    if (*local_2c != param_5) goto LAB_0001db7f;
    *(int *)(param_5 + 8) = *(int *)(param_1 + 0x18);
LAB_0001d36b:
    param_4 = (int *)local_2c[1];
  } while( true );
code_r0x0001d6b0:
  param_4 = (int *)**(undefined4 **)param_4[3];
  if (param_4 == (int *)0x0) {
LAB_0001d6c3:
    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 8);
LAB_0001d69f:
                    /* WARNING: Could not recover jumptable at 0x0001d6a6. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    uVar4 = (*UNRECOVERED_JUMPTABLE_00)();
    return uVar4;
  }
  goto LAB_0001d2f6;
}


PUSH EBP
MOV EBP,EDX
PUSH EDI
PUSH ESI
MOV ESI,EAX
PUSH EBX
CALL 0x000165d0
ADD EBX,0x21d23
SUB ESP,0x2c
MOV EDI,dword ptr [ESP + 0x40]
MOV EDX,dword ptr [ESP + 0x44]
MOV dword ptr [ESP + 0x4],ECX
MOV dword ptr [ESP + 0x8],EBP
MOV EAX,dword ptr [EDI]
LEA ECX,[EAX + -0x16]
CMP ECX,0x1
JBE 0x0001d340
TEST EDX,EDX
JZ 0x0001d378
MOV ECX,dword ptr [ESI + 0x18]
MOV dword ptr [EDX + 0x8],ECX
CMP EAX,0x16
JZ 0x0001d388
CMP EAX,0x17
JZ 0x0001daa0
CMP dword ptr [EDX + 0xc],0x1
JNZ 0x0001de13
MOV ECX,dword ptr [EDX + 0x4]
MOV dword ptr [ESP + 0xc],ECX
CMP EAX,0x17
JA 0x0001396e
MOV ECX,dword ptr [EBX + EAX*0x4 + 0xffff3ce4]
ADD ECX,EBX
JMP ECX
MOV ECX,dword ptr [EDI + 0xc]
MOV dword ptr [ESP + 0x10],ECX
MOV ECX,dword ptr [ECX]
MOV EBP,ECX
MOV dword ptr [ESP + 0xc],ECX
MOV ECX,dword ptr [ESI + 0x18]
CMP dword ptr [EBP + 0x8],ECX
JZ 0x0001db72
CMP EAX,0x17
JNZ 0x0001d300
CMP EBP,EDX
JNZ 0x0001de0a
MOV dword ptr [EDX + 0x8],ECX
MOV EAX,dword ptr [ESP + 0x10]
MOV EDI,dword ptr [EAX + 0x4]
JMP 0x0001d2f6
MOV dword ptr [ESP + 0xc],0x0
JMP 0x0001d329
MOV EAX,dword ptr [EDI + 0xc]
XOR EDX,EDX
MOV EDI,dword ptr [EAX + 0x4]
JMP 0x0001d2f6
XOR EAX,EAX
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
JMP EAX
MOV EAX,dword ptr [ESP + 0x4]
MOV dword ptr [ESP + 0x40],EAX
MOV EAX,dword ptr [EBP + 0x8]
JMP 0x0001d69f
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
JMP EAX
MOV EAX,dword ptr [EDI + 0xc]
MOV dword ptr [ESP + 0x10],EAX
MOV EDX,dword ptr [EAX]
JMP 0x0001d36b
MOV EBP,dword ptr [ESP + 0x8]
CMP EAX,0x16
JZ 0x0001dde8
XOR ECX,ECX
MOV EDX,EDI
MOV EAX,ESI
CALL 0x0001c820
MOV EBX,EAX
TEST EAX,EAX
JZ 0x0001d6c3
MOV EDX,dword ptr [EDI + 0xc]
MOV EAX,dword ptr [EAX]
MOV EDX,dword ptr [EDX]
LEA ECX,[EAX + -0x7]
MOV EDX,dword ptr [EDX + 0x4]
CMP ECX,0x3
JA 0x0001de03
MOV ECX,dword ptr [EBX + 0xc]
TEST ECX,ECX
JZ 0x0001de03
MOV ECX,dword ptr [ECX + 0x8]
CMP ECX,dword ptr [ESI + 0x20]
JA 0x0001dbde
MOV ECX,EBX
MOV EAX,ESI
CALL 0x0001d1a0
TEST EAX,EAX
JZ 0x0001d4b0
MOV EDX,dword ptr [EDI + 0xc]
MOV EAX,dword ptr [EBX + 0xc]
MOV EDX,dword ptr [EDX]
MOV ECX,dword ptr [EAX + 0x8]
MOV EAX,dword ptr [EBX]
MOV EDX,dword ptr [EDX + 0x4]
PUSH EAX
PUSH ECX
PUSH EDX
PUSH dword ptr [ESP + 0x10]
CALL dword ptr [EBP + 0x7c]
ADD ESP,0x10
JMP 0x0001d700
MOV EAX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [ESP + 0x44],EAX
MOV EAX,dword ptr [ESP + 0x4]
MOV dword ptr [ESP + 0x40],EAX
MOV EAX,dword ptr [EBP + 0x78]
JMP 0x0001d9c6
XOR ECX,ECX
JMP 0x0001dbde
MOV EBP,dword ptr [ESP + 0x8]
JMP 0x0001db7f
LEA EAX,[EBX + 0xffff3d8c]
PUSH EAX
LEA EAX,[EBX + 0xffff3db3]
PUSH 0x9aa
PUSH EAX
LEA EAX,[EBX + 0xffff38e4]
PUSH EAX
CALL 0x00013920
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 __regparm3\nFUN_0001d2d0(int param_1,int param_2,undefined4 param_3,int *param_4,int param_5)\n\n{\n  int iVar1;\n  code *UNRECOVERED_JUMPTABLE_00;\n  int *piVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  bool bVar8;\n  char *__function;\n  int *local_34;\n  undefined4 local_30;\n  int *local_2c;\n  undefined4 *puStack_28;\n  int iStack_24;\n  \nLAB_0001d2f6:\n  do {\n    for (; iVar3 = *param_4, 1 < iVar3 - 0x16U; param_4 = *(int **)(param_4[3] + 4)) {\nLAB_0001d300:\n      if (param_5 == 0) {\n        local_30 = 0;\nLAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\nLAB_0001d9c6:\n                    /* WARNING: Could not recover jumptable at 0x0001d9cd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 8) = *(undefined4 *)(param_1 + 0x18);\n      if (iVar3 != 0x16) {\n        if (iVar3 != 0x17) {\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }\n        goto LAB_0001daa0;\n      }\nLAB_0001d388:\n      param_5 = 0;\n    }\n    local_2c = (int *)param_4[3];\n    if (*(int *)(*local_2c + 8) == *(int *)(param_1 + 0x18)) {\n      if (iVar3 == 0x16) {\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n        goto LAB_0001d9c6;\n      }\nLAB_0001db7f:\n      piVar2 = (int *)FUN_0001c820();\n      if (piVar2 != (int *)0x0) {\n        iVar3 = *piVar2;\n        uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n        if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }\n        else {\n          uVar5 = 0;\n        }\n        uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);\n        return uVar4;\n      }\n      goto LAB_0001d6c3;\n    }\n    if (iVar3 != 0x17) goto LAB_0001d300;\n    if (*local_2c != param_5) goto LAB_0001db7f;\n    *(int *)(param_5 + 8) = *(int *)(param_1 + 0x18);\nLAB_0001d36b:\n    param_4 = (int *)local_2c[1];\n  } while( true );\ncode_r0x0001d6b0:\n  param_4 = (int *)**(undefined4 **)param_4[3];\n  if (param_4 == (int *)0x0) {\nLAB_0001d6c3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 8);\nLAB_0001d69f:\n                    /* WARNING: Could not recover jumptable at 0x0001d6a6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n    return uVar4;\n  }\n  goto LAB_0001d2f6;\n}\n\n" comment (function_definition "undefined4 __regparm3\nFUN_0001d2d0(int param_1,int param_2,undefined4 param_3,int *param_4,int param_5)\n\n{\n  int iVar1;\n  code *UNRECOVERED_JUMPTABLE_00;\n  int *piVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  bool bVar8;\n  char *__function;\n  int *local_34;\n  undefined4 local_30;\n  int *local_2c;\n  undefined4 *puStack_28;\n  int iStack_24;\n  \nLAB_0001d2f6:\n  do {\n    for (; iVar3 = *param_4, 1 < iVar3 - 0x16U; param_4 = *(int **)(param_4[3] + 4)) {\nLAB_0001d300:\n      if (param_5 == 0) {\n        local_30 = 0;\nLAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\nLAB_0001d9c6:\n                    /* WARNING: Could not recover jumptable at 0x0001d9cd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 8) = *(undefined4 *)(param_1 + 0x18);\n      if (iVar3 != 0x16) {\n        if (iVar3 != 0x17) {\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }\n        goto LAB_0001daa0;\n      }\nLAB_0001d388:\n      param_5 = 0;\n    }\n    local_2c = (int *)param_4[3];\n    if (*(int *)(*local_2c + 8) == *(int *)(param_1 + 0x18)) {\n      if (iVar3 == 0x16) {\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n        goto LAB_0001d9c6;\n      }\nLAB_0001db7f:\n      piVar2 = (int *)FUN_0001c820();\n      if (piVar2 != (int *)0x0) {\n        iVar3 = *piVar2;\n        uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n        if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }\n        else {\n          uVar5 = 0;\n        }\n        uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);\n        return uVar4;\n      }\n      goto LAB_0001d6c3;\n    }\n    if (iVar3 != 0x17) goto LAB_0001d300;\n    if (*local_2c != param_5) goto LAB_0001db7f;\n    *(int *)(param_5 + 8) = *(int *)(param_1 + 0x18);\nLAB_0001d36b:\n    param_4 = (int *)local_2c[1];\n  } while( true );\ncode_r0x0001d6b0:\n  param_4 = (int *)**(undefined4 **)param_4[3];\n  if (param_4 == (int *)0x0) {\nLAB_0001d6c3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 8);\nLAB_0001d69f:\n                    /* WARNING: Could not recover jumptable at 0x0001d6a6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n    return uVar4;\n  }\n  goto LAB_0001d2f6;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_0001d2d0(int param_1,int param_2,undefined4 param_3,int *param_4,int param_5)" identifier (parameter_list "(int param_1,int param_2,undefined4 param_3,int *param_4,int param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int param_5" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  code *UNRECOVERED_JUMPTABLE_00;\n  int *piVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  bool bVar8;\n  char *__function;\n  int *local_34;\n  undefined4 local_30;\n  int *local_2c;\n  undefined4 *puStack_28;\n  int iStack_24;\n  \nLAB_0001d2f6:\n  do {\n    for (; iVar3 = *param_4, 1 < iVar3 - 0x16U; param_4 = *(int **)(param_4[3] + 4)) {\nLAB_0001d300:\n      if (param_5 == 0) {\n        local_30 = 0;\nLAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\nLAB_0001d9c6:\n                    /* WARNING: Could not recover jumptable at 0x0001d9cd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 8) = *(undefined4 *)(param_1 + 0x18);\n      if (iVar3 != 0x16) {\n        if (iVar3 != 0x17) {\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }\n        goto LAB_0001daa0;\n      }\nLAB_0001d388:\n      param_5 = 0;\n    }\n    local_2c = (int *)param_4[3];\n    if (*(int *)(*local_2c + 8) == *(int *)(param_1 + 0x18)) {\n      if (iVar3 == 0x16) {\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n        goto LAB_0001d9c6;\n      }\nLAB_0001db7f:\n      piVar2 = (int *)FUN_0001c820();\n      if (piVar2 != (int *)0x0) {\n        iVar3 = *piVar2;\n        uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n        if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }\n        else {\n          uVar5 = 0;\n        }\n        uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);\n        return uVar4;\n      }\n      goto LAB_0001d6c3;\n    }\n    if (iVar3 != 0x17) goto LAB_0001d300;\n    if (*local_2c != param_5) goto LAB_0001db7f;\n    *(int *)(param_5 + 8) = *(int *)(param_1 + 0x18);\nLAB_0001d36b:\n    param_4 = (int *)local_2c[1];\n  } while( true );\ncode_r0x0001d6b0:\n  param_4 = (int *)**(undefined4 **)param_4[3];\n  if (param_4 == (int *)0x0) {\nLAB_0001d6c3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 8);\nLAB_0001d69f:\n                    /* WARNING: Could not recover jumptable at 0x0001d6a6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n    return uVar4;\n  }\n  goto LAB_0001d2f6;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "code *UNRECOVERED_JUMPTABLE_00;" type_identifier (pointer_declarator "*UNRECOVERED_JUMPTABLE_00" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "bool bVar8;" primitive_type identifier ;) (declaration "char *__function;" primitive_type (pointer_declarator "*__function" * identifier) ;) (declaration "int *local_34;" primitive_type (pointer_declarator "*local_34" * identifier) ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "int *local_2c;" primitive_type (pointer_declarator "*local_2c" * identifier) ;) (declaration "undefined4 *puStack_28;" type_identifier (pointer_declarator "*puStack_28" * identifier) ;) (declaration "int iStack_24;" primitive_type identifier ;) (labeled_statement "LAB_0001d2f6:\n  do {\n    for (; iVar3 = *param_4, 1 < iVar3 - 0x16U; param_4 = *(int **)(param_4[3] + 4)) {\nLAB_0001d300:\n      if (param_5 == 0) {\n        local_30 = 0;\nLAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\nLAB_0001d9c6:\n                    /* WARNING: Could not recover jumptable at 0x0001d9cd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 8) = *(undefined4 *)(param_1 + 0x18);\n      if (iVar3 != 0x16) {\n        if (iVar3 != 0x17) {\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }\n        goto LAB_0001daa0;\n      }\nLAB_0001d388:\n      param_5 = 0;\n    }\n    local_2c = (int *)param_4[3];\n    if (*(int *)(*local_2c + 8) == *(int *)(param_1 + 0x18)) {\n      if (iVar3 == 0x16) {\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n        goto LAB_0001d9c6;\n      }\nLAB_0001db7f:\n      piVar2 = (int *)FUN_0001c820();\n      if (piVar2 != (int *)0x0) {\n        iVar3 = *piVar2;\n        uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n        if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }\n        else {\n          uVar5 = 0;\n        }\n        uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);\n        return uVar4;\n      }\n      goto LAB_0001d6c3;\n    }\n    if (iVar3 != 0x17) goto LAB_0001d300;\n    if (*local_2c != param_5) goto LAB_0001db7f;\n    *(int *)(param_5 + 8) = *(int *)(param_1 + 0x18);\nLAB_0001d36b:\n    param_4 = (int *)local_2c[1];\n  } while( true );" statement_identifier : (do_statement "do {\n    for (; iVar3 = *param_4, 1 < iVar3 - 0x16U; param_4 = *(int **)(param_4[3] + 4)) {\nLAB_0001d300:\n      if (param_5 == 0) {\n        local_30 = 0;\nLAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\nLAB_0001d9c6:\n                    /* WARNING: Could not recover jumptable at 0x0001d9cd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 8) = *(undefined4 *)(param_1 + 0x18);\n      if (iVar3 != 0x16) {\n        if (iVar3 != 0x17) {\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }\n        goto LAB_0001daa0;\n      }\nLAB_0001d388:\n      param_5 = 0;\n    }\n    local_2c = (int *)param_4[3];\n    if (*(int *)(*local_2c + 8) == *(int *)(param_1 + 0x18)) {\n      if (iVar3 == 0x16) {\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n        goto LAB_0001d9c6;\n      }\nLAB_0001db7f:\n      piVar2 = (int *)FUN_0001c820();\n      if (piVar2 != (int *)0x0) {\n        iVar3 = *piVar2;\n        uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n        if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }\n        else {\n          uVar5 = 0;\n        }\n        uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);\n        return uVar4;\n      }\n      goto LAB_0001d6c3;\n    }\n    if (iVar3 != 0x17) goto LAB_0001d300;\n    if (*local_2c != param_5) goto LAB_0001db7f;\n    *(int *)(param_5 + 8) = *(int *)(param_1 + 0x18);\nLAB_0001d36b:\n    param_4 = (int *)local_2c[1];\n  } while( true );" do (compound_statement "{\n    for (; iVar3 = *param_4, 1 < iVar3 - 0x16U; param_4 = *(int **)(param_4[3] + 4)) {\nLAB_0001d300:\n      if (param_5 == 0) {\n        local_30 = 0;\nLAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\nLAB_0001d9c6:\n                    /* WARNING: Could not recover jumptable at 0x0001d9cd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 8) = *(undefined4 *)(param_1 + 0x18);\n      if (iVar3 != 0x16) {\n        if (iVar3 != 0x17) {\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }\n        goto LAB_0001daa0;\n      }\nLAB_0001d388:\n      param_5 = 0;\n    }\n    local_2c = (int *)param_4[3];\n    if (*(int *)(*local_2c + 8) == *(int *)(param_1 + 0x18)) {\n      if (iVar3 == 0x16) {\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n        goto LAB_0001d9c6;\n      }\nLAB_0001db7f:\n      piVar2 = (int *)FUN_0001c820();\n      if (piVar2 != (int *)0x0) {\n        iVar3 = *piVar2;\n        uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n        if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }\n        else {\n          uVar5 = 0;\n        }\n        uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);\n        return uVar4;\n      }\n      goto LAB_0001d6c3;\n    }\n    if (iVar3 != 0x17) goto LAB_0001d300;\n    if (*local_2c != param_5) goto LAB_0001db7f;\n    *(int *)(param_5 + 8) = *(int *)(param_1 + 0x18);\nLAB_0001d36b:\n    param_4 = (int *)local_2c[1];\n  }" { (for_statement "for (; iVar3 = *param_4, 1 < iVar3 - 0x16U; param_4 = *(int **)(param_4[3] + 4)) {\nLAB_0001d300:\n      if (param_5 == 0) {\n        local_30 = 0;\nLAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\nLAB_0001d9c6:\n                    /* WARNING: Could not recover jumptable at 0x0001d9cd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 8) = *(undefined4 *)(param_1 + 0x18);\n      if (iVar3 != 0x16) {\n        if (iVar3 != 0x17) {\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }\n        goto LAB_0001daa0;\n      }\nLAB_0001d388:\n      param_5 = 0;\n    }" for ( ; (comma_expression "iVar3 = *param_4, 1 < iVar3 - 0x16U" (assignment_expression "iVar3 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) , (binary_expression "1 < iVar3 - 0x16U" number_literal < (binary_expression "iVar3 - 0x16U" identifier - number_literal))) ; (assignment_expression "param_4 = *(int **)(param_4[3] + 4)" identifier = (pointer_expression "*(int **)(param_4[3] + 4)" * (cast_expression "(int **)(param_4[3] + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4[3] + 4)" ( (binary_expression "param_4[3] + 4" (subscript_expression "param_4[3]" identifier [ number_literal ]) + number_literal) ))))) ) (compound_statement "{\nLAB_0001d300:\n      if (param_5 == 0) {\n        local_30 = 0;\nLAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\nLAB_0001d9c6:\n                    /* WARNING: Could not recover jumptable at 0x0001d9cd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 8) = *(undefined4 *)(param_1 + 0x18);\n      if (iVar3 != 0x16) {\n        if (iVar3 != 0x17) {\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }\n        goto LAB_0001daa0;\n      }\nLAB_0001d388:\n      param_5 = 0;\n    }" { (labeled_statement "LAB_0001d300:\n      if (param_5 == 0) {\n        local_30 = 0;\nLAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\nLAB_0001d9c6:\n                    /* WARNING: Could not recover jumptable at 0x0001d9cd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n        return uVar4;\n      }" statement_identifier : (if_statement "if (param_5 == 0) {\n        local_30 = 0;\nLAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\nLAB_0001d9c6:\n                    /* WARNING: Could not recover jumptable at 0x0001d9cd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n        return uVar4;\n      }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n        local_30 = 0;\nLAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\nLAB_0001d9c6:\n                    /* WARNING: Could not recover jumptable at 0x0001d9cd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n        return uVar4;\n      }" { (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }" statement_identifier : (switch_statement "switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }" switch (parenthesized_expression "(iVar3)" ( identifier )) (compound_statement "{\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }" { (case_statement "case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;" case number_literal : (expression_statement "uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);" (assignment_expression "uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5)" identifier = (call_expression "dcgettext(0,"debug_write_type: illegal type encountered",5)" identifier (argument_list "(0,"debug_write_type: illegal type encountered",5)" ( number_literal , (string_literal ""debug_write_type: illegal type encountered"" " string_content ") , number_literal )))) ;) (expression_statement "fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);" (call_expression "fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4)" identifier (argument_list "(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4)" ( (pointer_expression "*(FILE **)PTR_stderr_0003efa8" * (cast_expression "(FILE **)PTR_stderr_0003efa8" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , (string_literal ""%s\n"" " string_content escape_sequence ") , identifier ))) ;) (return_statement "return 0;" return number_literal ;)) (case_statement "case 1:\n          goto code_r0x0001d6b0;" case number_literal : (goto_statement "goto code_r0x0001d6b0;" goto statement_identifier ;)) (case_statement "case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;" case number_literal : (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc)" identifier = (pointer_expression "*(code **)(param_2 + 0xc)" * (cast_expression "(code **)(param_2 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001d69f;" goto statement_identifier ;)) (case_statement "case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;" case number_literal : (expression_statement "uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3])" identifier = (call_expression "(**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3])" (parenthesized_expression "(**(code **)(param_2 + 0x10))" ( (pointer_expression "**(code **)(param_2 + 0x10)" * (pointer_expression "*(code **)(param_2 + 0x10)" * (cast_expression "(code **)(param_2 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) ))))) )) (argument_list "(param_3,param_4[1],param_4[3])" ( identifier , (subscript_expression "param_4[1]" identifier [ number_literal ]) , (subscript_expression "param_4[3]" identifier [ number_literal ]) )))) ;) (return_statement "return uVar4;" return identifier ;)) (case_statement "case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;" case number_literal : (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14)" identifier = (pointer_expression "*(code **)(param_2 + 0x14)" * (cast_expression "(code **)(param_2 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x14)" ( (binary_expression "param_2 + 0x14" identifier + number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;" case number_literal : (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18)" identifier = (pointer_expression "*(code **)(param_2 + 0x18)" * (cast_expression "(code **)(param_2 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;" case number_literal : (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c)" identifier = (pointer_expression "*(code **)(param_2 + 0x1c)" * (cast_expression "(code **)(param_2 + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 7:" case number_literal :) (case_statement "case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;" case number_literal : (expression_statement "iVar6 = param_4[3];" (assignment_expression "iVar6 = param_4[3]" identifier = (subscript_expression "param_4[3]" identifier [ number_literal ])) ;) (if_statement "if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }" { (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c)" identifier = (pointer_expression "*(code **)(param_2 + 0x4c)" * (cast_expression "(code **)(param_2 + 0x4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x4c)" ( (binary_expression "param_2 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = param_4[1];" (assignment_expression "iVar1 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }" else (compound_statement "{\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }" { (expression_statement "uVar5 = *(uint *)(iVar6 + 8);" (assignment_expression "uVar5 = *(uint *)(iVar6 + 8)" identifier = (pointer_expression "*(uint *)(iVar6 + 8)" * (cast_expression "(uint *)(iVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }" if (parenthesized_expression "(*(uint *)(param_1 + 0x20) < uVar5)" ( (binary_expression "*(uint *)(param_1 + 0x20) < uVar5" (pointer_expression "*(uint *)(param_1 + 0x20)" * (cast_expression "(uint *)(param_1 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }" { (expression_statement "iVar3 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar3 = *(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) ))))) ;) (if_statement "if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }" if (parenthesized_expression "(*(int *)(iVar6 + 4) == iVar3)" ( (binary_expression "*(int *)(iVar6 + 4) == iVar3" (pointer_expression "*(int *)(iVar6 + 4)" * (cast_expression "(int *)(iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) == identifier) )) (compound_statement "{\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }" { (labeled_statement "code_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);" statement_identifier : (expression_statement "uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4)" identifier = (call_expression "(**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4)" (parenthesized_expression "(**(code **)(param_2 + 0x7c))" ( (pointer_expression "**(code **)(param_2 + 0x7c)" * (pointer_expression "*(code **)(param_2 + 0x7c)" * (cast_expression "(code **)(param_2 + 0x7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x7c)" ( (binary_expression "param_2 + 0x7c" identifier + number_literal) ))))) )) (argument_list "(param_3,local_30,uVar5,*param_4)" ( identifier , identifier , identifier , (pointer_expression "*param_4" * identifier) )))) ;)) (return_statement "return uVar4;" return identifier ;) })) }) (else_clause "else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }" else (compound_statement "{\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }" { (expression_statement "iVar3 = FUN_0001d1a0();" (assignment_expression "iVar3 = FUN_0001d1a0()" identifier = (call_expression "FUN_0001d1a0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar6 = param_4[3];" (assignment_expression "iVar6 = param_4[3]" identifier = (subscript_expression "param_4[3]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar3 = *(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) ))))) ;) (if_statement "if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }" if (parenthesized_expression "(iVar3 == *(int *)(iVar6 + 4))" ( (binary_expression "iVar3 == *(int *)(iVar6 + 4)" identifier == (pointer_expression "*(int *)(iVar6 + 4)" * (cast_expression "(int *)(iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) ))))) )) (compound_statement "{\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }" { (expression_statement "uVar5 = *(uint *)(iVar6 + 8);" (assignment_expression "uVar5 = *(uint *)(iVar6 + 8)" identifier = (pointer_expression "*(uint *)(iVar6 + 8)" * (cast_expression "(uint *)(iVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) ))))) ;) (if_statement "if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }" if (parenthesized_expression "(uVar5 <= *(uint *)(param_1 + 0x20))" ( (binary_expression "uVar5 <= *(uint *)(param_1 + 0x20)" identifier <= (pointer_expression "*(uint *)(param_1 + 0x20)" * (cast_expression "(uint *)(param_1 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) )) (compound_statement "{\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }" { (expression_statement "__function = "debug_write_type";" (assignment_expression "__function = "debug_write_type"" identifier = (string_literal ""debug_write_type"" " string_content ")) ;) (expression_statement "uVar5 = 0x9d1;" (assignment_expression "uVar5 = 0x9d1" identifier = number_literal) ;) (labeled_statement "code_r0x0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);" statement_identifier : comment (expression_statement "__assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);" (call_expression "__assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function)" identifier (argument_list "("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function)" ( (string_literal ""type->u.kclass->id > info->base_id"" " string_content ") , (string_literal ""../../binutils/debug.c"" " string_content ") , identifier , identifier ))) ;)) })) (goto_statement "goto code_r0x0001db48;" goto statement_identifier ;) })) }))) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c)" identifier = (pointer_expression "*(code **)(param_2 + 0x4c)" * (cast_expression "(code **)(param_2 + 0x4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x4c)" ( (binary_expression "param_2 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = param_4[1];" (assignment_expression "iVar1 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(iVar6 + 4) = iVar3;" (assignment_expression "*(int *)(iVar6 + 4) = iVar3" (pointer_expression "*(int *)(iVar6 + 4)" * (cast_expression "(int *)(iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = *(undefined4 *)(iVar6 + 8);" (assignment_expression "uVar4 = *(undefined4 *)(iVar6 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar6 + 8)" * (cast_expression "(undefined4 *)(iVar6 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *param_4;" (assignment_expression "iVar3 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) }))) (expression_statement "iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);" (assignment_expression "iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1)" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE_00)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE_00" * identifier) )) (argument_list "(param_3,local_30,uVar4,iVar3 == 7,iVar1)" ( identifier , identifier , identifier , (binary_expression "iVar3 == 7" identifier == number_literal) , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }" if (parenthesized_expression "((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0))" ( (binary_expression "(((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)" (parenthesized_expression "(((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0))" ( (binary_expression "((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)" (parenthesized_expression "((int *)param_4[3] != (int *)0x0)" ( (binary_expression "(int *)param_4[3] != (int *)0x0" (cast_expression "(int *)param_4[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ])) != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)" ( (comma_expression "piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0" (assignment_expression "piVar2 = *(int **)param_4[3]" identifier = (pointer_expression "*(int **)param_4[3]" * (cast_expression "(int **)param_4[3]" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "param_4[3]" identifier [ number_literal ])))) , (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)" ( (comma_expression "puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0" (assignment_expression "puVar7 = (undefined4 *)*piVar2" identifier = (cast_expression "(undefined4 *)*piVar2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar2" * identifier))) , (binary_expression "puVar7 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }" { (expression_statement "iVar3 = 4;" (assignment_expression "iVar3 = 4" identifier = number_literal) ;) (do_statement "do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);" do (compound_statement "{\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            }" { (expression_statement "iVar6 = FUN_0001d2d0(puVar7[1],0);" (assignment_expression "iVar6 = FUN_0001d2d0(puVar7[1],0)" identifier = (call_expression "FUN_0001d2d0(puVar7[1],0)" identifier (argument_list "(puVar7[1],0)" ( (subscript_expression "puVar7[1]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar6 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);" (assignment_expression "iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2])" identifier = (call_expression "(**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2])" (parenthesized_expression "(**(code **)(param_2 + 0x50))" ( (pointer_expression "**(code **)(param_2 + 0x50)" * (pointer_expression "*(code **)(param_2 + 0x50)" * (cast_expression "(code **)(param_2 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x50)" ( (binary_expression "param_2 + 0x50" identifier + number_literal) ))))) )) (argument_list "(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2])" ( identifier , (pointer_expression "*puVar7" * identifier) , (subscript_expression "puVar7[4]" identifier [ number_literal ]) , (subscript_expression "puVar7[5]" identifier [ number_literal ]) , (subscript_expression "puVar7[2]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar6 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);" (assignment_expression "puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3)" identifier = (pointer_expression "*(undefined4 **)(*(int *)param_4[3] + iVar3)" * (cast_expression "(undefined4 **)(*(int *)param_4[3] + iVar3)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)param_4[3] + iVar3)" ( (binary_expression "*(int *)param_4[3] + iVar3" (pointer_expression "*(int *)param_4[3]" * (cast_expression "(int *)param_4[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) + identifier) ))))) ;) (expression_statement "iVar3 = iVar3 + 4;" (assignment_expression "iVar3 = iVar3 + 4" identifier = (binary_expression "iVar3 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar7 != (undefined4 *)0x0)" ( (binary_expression "puVar7 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54)" identifier = (pointer_expression "*(code **)(param_2 + 0x54)" * (cast_expression "(code **)(param_2 + 0x54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001d69f;" goto statement_identifier ;)) (case_statement "case 9:" case number_literal :) (case_statement "case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;" case number_literal : (expression_statement "local_34 = (int *)param_4[3];" (assignment_expression "local_34 = (int *)param_4[3]" identifier = (cast_expression "(int *)param_4[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) ;) (if_statement "if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }" if (parenthesized_expression "(local_34 == (int *)0x0)" ( (binary_expression "local_34 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }" { (expression_statement "bVar8 = false;" (assignment_expression "bVar8 = false" identifier = false) ;) (expression_statement "local_2c = (int *)0x0;" (assignment_expression "local_2c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_34 = (int *)0x0;" (assignment_expression "local_34 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }" else (compound_statement "{\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }" { (expression_statement "local_2c = *(int **)((int)local_34 + 8);" (assignment_expression "local_2c = *(int **)((int)local_34 + 8)" identifier = (pointer_expression "*(int **)((int)local_34 + 8)" * (cast_expression "(int **)((int)local_34 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_34 + 8)" ( (binary_expression "(int)local_34 + 8" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }" if (parenthesized_expression "(*(uint *)(param_1 + 0x20) < local_2c)" ( (binary_expression "*(uint *)(param_1 + 0x20) < local_2c" (pointer_expression "*(uint *)(param_1 + 0x20)" * (cast_expression "(uint *)(param_1 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }" { (expression_statement "iVar6 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar6 = *(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) ))))) ;) (if_statement "if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }" if (parenthesized_expression "(*(int *)((int)local_34 + 4) == iVar6)" ( (binary_expression "*(int *)((int)local_34 + 4) == iVar6" (pointer_expression "*(int *)((int)local_34 + 4)" * (cast_expression "(int *)((int)local_34 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_34 + 4)" ( (binary_expression "(int)local_34 + 4" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == identifier) )) (compound_statement "{\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }" { (labeled_statement "code_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);" statement_identifier : (expression_statement "uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3)" identifier = (call_expression "(**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3)" (parenthesized_expression "(**(code **)(param_2 + 0x7c))" ( (pointer_expression "**(code **)(param_2 + 0x7c)" * (pointer_expression "*(code **)(param_2 + 0x7c)" * (cast_expression "(code **)(param_2 + 0x7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x7c)" ( (binary_expression "param_2 + 0x7c" identifier + number_literal) ))))) )) (argument_list "(param_3,local_30,local_2c,iVar3)" ( identifier , identifier , identifier , identifier )))) ;)) (return_statement "return uVar4;" return identifier ;) })) }) (else_clause "else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }" else (compound_statement "{\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }" { (expression_statement "iVar3 = FUN_0001d1a0();" (assignment_expression "iVar3 = FUN_0001d1a0()" identifier = (call_expression "FUN_0001d1a0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "local_34 = (int *)param_4[3];" (assignment_expression "local_34 = (int *)param_4[3]" identifier = (cast_expression "(int *)param_4[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) ;) (expression_statement "iVar6 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar6 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "local_2c = *(int **)((int)local_34 + 8);" (assignment_expression "local_2c = *(int **)((int)local_34 + 8)" identifier = (pointer_expression "*(int **)((int)local_34 + 8)" * (cast_expression "(int **)((int)local_34 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_34 + 8)" ( (binary_expression "(int)local_34 + 8" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }" if (parenthesized_expression "(iVar6 == *(int *)((int)local_34 + 4))" ( (binary_expression "iVar6 == *(int *)((int)local_34 + 4)" identifier == (pointer_expression "*(int *)((int)local_34 + 4)" * (cast_expression "(int *)((int)local_34 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_34 + 4)" ( (binary_expression "(int)local_34 + 4" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }" { (if_statement "if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }" if (parenthesized_expression "(local_2c <= *(uint *)(param_1 + 0x20))" ( (binary_expression "local_2c <= *(uint *)(param_1 + 0x20)" identifier <= (pointer_expression "*(uint *)(param_1 + 0x20)" * (cast_expression "(uint *)(param_1 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) )) (compound_statement "{\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }" { (expression_statement "__function = "debug_write_class_type";" (assignment_expression "__function = "debug_write_class_type"" identifier = (string_literal ""debug_write_class_type"" " string_content ")) ;) (expression_statement "uVar5 = 0xa7d;" (assignment_expression "uVar5 = 0xa7d" identifier = number_literal) ;) (goto_statement "goto code_r0x0001de3e;" goto statement_identifier ;) })) (expression_statement "iVar3 = *param_4;" (assignment_expression "iVar3 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (goto_statement "goto code_r0x0001dafa;" goto statement_identifier ;) })) }))) (expression_statement "*(int *)((int)local_34 + 4) = iVar6;" (assignment_expression "*(int *)((int)local_34 + 4) = iVar6" (pointer_expression "*(int *)((int)local_34 + 4)" * (cast_expression "(int *)((int)local_34 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_34 + 4)" ( (binary_expression "(int)local_34 + 4" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_34 = *(int **)((int)local_34 + 0x14);" (assignment_expression "local_34 = *(int **)((int)local_34 + 0x14)" identifier = (pointer_expression "*(int **)((int)local_34 + 0x14)" * (cast_expression "(int **)((int)local_34 + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_34 + 0x14)" ( (binary_expression "(int)local_34 + 0x14" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar8 = local_34 != (int *)0x0;" (assignment_expression "bVar8 = local_34 != (int *)0x0" identifier = (binary_expression "local_34 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }" if (parenthesized_expression "((param_4 == local_34) || (!bVar8))" ( (binary_expression "(param_4 == local_34) || (!bVar8)" (parenthesized_expression "(param_4 == local_34)" ( (binary_expression "param_4 == local_34" identifier == identifier) )) || (parenthesized_expression "(!bVar8)" ( (unary_expression "!bVar8" ! identifier) ))) )) (compound_statement "{\n              iVar3 = *param_4;\n            }" { (expression_statement "iVar3 = *param_4;" (assignment_expression "iVar3 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) }) (else_clause "else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }" else (compound_statement "{\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }" { (expression_statement "iVar3 = FUN_0001d2d0(local_34,0);" (assignment_expression "iVar3 = FUN_0001d2d0(local_34,0)" identifier = (call_expression "FUN_0001d2d0(local_34,0)" identifier (argument_list "(local_34,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar3 = *param_4;" (assignment_expression "iVar3 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "bVar8 = true;" (assignment_expression "bVar8 = true" identifier = true) ;) }))) }))) (expression_statement "iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);" (assignment_expression "iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34)" identifier = (call_expression "(**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34)" (parenthesized_expression "(**(code **)(param_2 + 0x58))" ( (pointer_expression "**(code **)(param_2 + 0x58)" * (pointer_expression "*(code **)(param_2 + 0x58)" * (cast_expression "(code **)(param_2 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x58)" ( (binary_expression "param_2 + 0x58" identifier + number_literal) ))))) )) (argument_list "(param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34)" ( identifier , identifier , identifier , (binary_expression "iVar3 == 9" identifier == number_literal) , (subscript_expression "param_4[1]" identifier [ number_literal ]) , identifier , (binary_expression "param_4 == local_34" identifier == identifier) )))) ;) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "piVar2 = (int *)param_4[3];" (assignment_expression "piVar2 = (int *)param_4[3]" identifier = (cast_expression "(int *)param_4[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) ;) (if_statement "if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }" if (parenthesized_expression "(piVar2 != (int *)0x0)" ( (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }" { (if_statement "if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }" if (parenthesized_expression "(((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0))" ( (binary_expression "((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)" (parenthesized_expression "((int *)*piVar2 != (int *)0x0)" ( (binary_expression "(int *)*piVar2 != (int *)0x0" (cast_expression "(int *)*piVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar2" * identifier)) != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)" ( (comma_expression "puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0" (assignment_expression "puVar7 = *(undefined4 **)*piVar2" identifier = (pointer_expression "*(undefined4 **)*piVar2" * (cast_expression "(undefined4 **)*piVar2" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*piVar2" * identifier)))) , (binary_expression "puVar7 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }" { (expression_statement "iVar3 = 4;" (assignment_expression "iVar3 = 4" identifier = number_literal) ;) (do_statement "do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);" do (compound_statement "{\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              }" { (expression_statement "iVar6 = FUN_0001d2d0(puVar7[1],0);" (assignment_expression "iVar6 = FUN_0001d2d0(puVar7[1],0)" identifier = (call_expression "FUN_0001d2d0(puVar7[1],0)" identifier (argument_list "(puVar7[1],0)" ( (subscript_expression "puVar7[1]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar6 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }" if (parenthesized_expression "(puVar7[3] == 0)" ( (binary_expression "puVar7[3] == 0" (subscript_expression "puVar7[3]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }" { (expression_statement "iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);" (assignment_expression "iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2])" identifier = (call_expression "(**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2])" (parenthesized_expression "(**(code **)(param_2 + 0x50))" ( (pointer_expression "**(code **)(param_2 + 0x50)" * (pointer_expression "*(code **)(param_2 + 0x50)" * (cast_expression "(code **)(param_2 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x50)" ( (binary_expression "param_2 + 0x50" identifier + number_literal) ))))) )) (argument_list "(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2])" ( identifier , (pointer_expression "*puVar7" * identifier) , (subscript_expression "puVar7[4]" identifier [ number_literal ]) , (subscript_expression "puVar7[5]" identifier [ number_literal ]) , (subscript_expression "puVar7[2]" identifier [ number_literal ]) )))) ;) }) (else_clause "else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }" else (compound_statement "{\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }" { (expression_statement "iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);" (assignment_expression "iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2])" identifier = (call_expression "(**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2])" (parenthesized_expression "(**(code **)(param_2 + 0x5c))" ( (pointer_expression "**(code **)(param_2 + 0x5c)" * (pointer_expression "*(code **)(param_2 + 0x5c)" * (cast_expression "(code **)(param_2 + 0x5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x5c)" ( (binary_expression "param_2 + 0x5c" identifier + number_literal) ))))) )) (argument_list "(param_3,*puVar7,puVar7[4],puVar7[2])" ( identifier , (pointer_expression "*puVar7" * identifier) , (subscript_expression "puVar7[4]" identifier [ number_literal ]) , (subscript_expression "puVar7[2]" identifier [ number_literal ]) )))) ;) }))) (if_statement "if (iVar6 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "piVar2 = (int *)param_4[3];" (assignment_expression "piVar2 = (int *)param_4[3]" identifier = (cast_expression "(int *)param_4[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar7 = *(undefined4 **)(*piVar2 + iVar3);" (assignment_expression "puVar7 = *(undefined4 **)(*piVar2 + iVar3)" identifier = (pointer_expression "*(undefined4 **)(*piVar2 + iVar3)" * (cast_expression "(undefined4 **)(*piVar2 + iVar3)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar2 + iVar3)" ( (binary_expression "*piVar2 + iVar3" (pointer_expression "*piVar2" * identifier) + identifier) ))))) ;) (expression_statement "iVar3 = iVar3 + 4;" (assignment_expression "iVar3 = iVar3 + 4" identifier = (binary_expression "iVar3 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar7 != (undefined4 *)0x0)" ( (binary_expression "puVar7 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (if_statement "if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }" if (parenthesized_expression "(((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0))" ( (binary_expression "((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)" (parenthesized_expression "((int *)piVar2[3] != (int *)0x0)" ( (binary_expression "(int *)piVar2[3] != (int *)0x0" (cast_expression "(int *)piVar2[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar2[3]" identifier [ number_literal ])) != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)" ( (comma_expression "puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0" (assignment_expression "puVar7 = *(undefined4 **)piVar2[3]" identifier = (pointer_expression "*(undefined4 **)piVar2[3]" * (cast_expression "(undefined4 **)piVar2[3]" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "piVar2[3]" identifier [ number_literal ])))) , (binary_expression "puVar7 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }" { (expression_statement "iVar3 = 4;" (assignment_expression "iVar3 = 4" identifier = number_literal) ;) (do_statement "do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);" do (compound_statement "{\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              }" { (expression_statement "iVar6 = FUN_0001d2d0(*puVar7,0);" (assignment_expression "iVar6 = FUN_0001d2d0(*puVar7,0)" identifier = (call_expression "FUN_0001d2d0(*puVar7,0)" identifier (argument_list "(*puVar7,0)" ( (pointer_expression "*puVar7" * identifier) , number_literal )))) ;) (if_statement "if (iVar6 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);" (assignment_expression "iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3])" identifier = (call_expression "(**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3])" (parenthesized_expression "(**(code **)(param_2 + 0x60))" ( (pointer_expression "**(code **)(param_2 + 0x60)" * (pointer_expression "*(code **)(param_2 + 0x60)" * (cast_expression "(code **)(param_2 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x60)" ( (binary_expression "param_2 + 0x60" identifier + number_literal) ))))) )) (argument_list "(param_3,puVar7[1],puVar7[2],puVar7[3])" ( identifier , (subscript_expression "puVar7[1]" identifier [ number_literal ]) , (subscript_expression "puVar7[2]" identifier [ number_literal ]) , (subscript_expression "puVar7[3]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar6 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "piVar2 = (int *)param_4[3];" (assignment_expression "piVar2 = (int *)param_4[3]" identifier = (cast_expression "(int *)param_4[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar7 = *(undefined4 **)(piVar2[3] + iVar3);" (assignment_expression "puVar7 = *(undefined4 **)(piVar2[3] + iVar3)" identifier = (pointer_expression "*(undefined4 **)(piVar2[3] + iVar3)" * (cast_expression "(undefined4 **)(piVar2[3] + iVar3)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar2[3] + iVar3)" ( (binary_expression "piVar2[3] + iVar3" (subscript_expression "piVar2[3]" identifier [ number_literal ]) + identifier) ))))) ;) (expression_statement "iVar3 = iVar3 + 4;" (assignment_expression "iVar3 = iVar3 + 4" identifier = (binary_expression "iVar3 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar7 != (undefined4 *)0x0)" ( (binary_expression "puVar7 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (if_statement "if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }" if (parenthesized_expression "(((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0))" ( (binary_expression "((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)" (parenthesized_expression "((int *)piVar2[4] != (int *)0x0)" ( (binary_expression "(int *)piVar2[4] != (int *)0x0" (cast_expression "(int *)piVar2[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar2[4]" identifier [ number_literal ])) != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)" ( (comma_expression "puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0" (assignment_expression "puStack_28 = *(undefined4 **)piVar2[4]" identifier = (pointer_expression "*(undefined4 **)piVar2[4]" * (cast_expression "(undefined4 **)piVar2[4]" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "piVar2[4]" identifier [ number_literal ])))) , (binary_expression "puStack_28 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }" { (expression_statement "iStack_24 = 0;" (assignment_expression "iStack_24 = 0" identifier = number_literal) ;) (do_statement "do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);" do (compound_statement "{\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              }" { (expression_statement "iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);" (assignment_expression "iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28)" identifier = (call_expression "(**(code **)(param_2 + 100))(param_3,*puStack_28)" (parenthesized_expression "(**(code **)(param_2 + 100))" ( (pointer_expression "**(code **)(param_2 + 100)" * (pointer_expression "*(code **)(param_2 + 100)" * (cast_expression "(code **)(param_2 + 100)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 100)" ( (binary_expression "param_2 + 100" identifier + number_literal) ))))) )) (argument_list "(param_3,*puStack_28)" ( identifier , (pointer_expression "*puStack_28" * identifier) )))) ;) (if_statement "if (iVar3 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar3 = 4;" (assignment_expression "iVar3 = 4" identifier = number_literal) ;) (for_statement "for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }" for ( (assignment_expression "puVar7 = *(undefined4 **)puStack_28[1]" identifier = (pointer_expression "*(undefined4 **)puStack_28[1]" * (cast_expression "(undefined4 **)puStack_28[1]" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puStack_28[1]" identifier [ number_literal ])))) ; (binary_expression "puVar7 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar7 = (undefined4 *)*puVar7" identifier = (cast_expression "(undefined4 *)*puVar7" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ) (compound_statement "{\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }" { (if_statement "if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }" if (parenthesized_expression "((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0))" ( (binary_expression "(puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)" (parenthesized_expression "(puVar7[6] != 0)" ( (binary_expression "puVar7[6] != 0" (subscript_expression "puVar7[6]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)" ( (comma_expression "iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0" (assignment_expression "iVar6 = FUN_0001d2d0(puVar7[6],0)" identifier = (call_expression "FUN_0001d2d0(puVar7[6],0)" identifier (argument_list "(puVar7[6],0)" ( (subscript_expression "puVar7[6]" identifier [ number_literal ]) , number_literal )))) , (binary_expression "iVar6 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                    return 0;\n                  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar6 = FUN_0001d2d0(puVar7[1],0);" (assignment_expression "iVar6 = FUN_0001d2d0(puVar7[1],0)" identifier = (call_expression "FUN_0001d2d0(puVar7[1],0)" identifier (argument_list "(puVar7[1],0)" ( (subscript_expression "puVar7[1]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar6 == 0) {\n                    return 0;\n                  }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                    return 0;\n                  }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }" if (parenthesized_expression "(puVar7[5] == -1)" ( (binary_expression "puVar7[5] == -1" (subscript_expression "puVar7[5]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }" { (expression_statement "iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);" (assignment_expression "iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4])" identifier = (call_expression "(**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4])" (parenthesized_expression "(**(code **)(param_2 + 0x6c))" ( (pointer_expression "**(code **)(param_2 + 0x6c)" * (pointer_expression "*(code **)(param_2 + 0x6c)" * (cast_expression "(code **)(param_2 + 0x6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x6c)" ( (binary_expression "param_2 + 0x6c" identifier + number_literal) ))))) )) (argument_list "(param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4])" ( identifier , (pointer_expression "*puVar7" * identifier) , (subscript_expression "puVar7[2]" identifier [ number_literal ]) , (subscript_expression "puVar7[3]" identifier [ number_literal ]) , (subscript_expression "puVar7[4]" identifier [ number_literal ]) )))) ;) }) (else_clause "else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }" else (compound_statement "{\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }" { (expression_statement "iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);" (assignment_expression "iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0)" identifier = (call_expression "(**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0)" (parenthesized_expression "(**(code **)(param_2 + 0x68))" ( (pointer_expression "**(code **)(param_2 + 0x68)" * (pointer_expression "*(code **)(param_2 + 0x68)" * (cast_expression "(code **)(param_2 + 0x68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x68)" ( (binary_expression "param_2 + 0x68" identifier + number_literal) ))))) )) (argument_list "(param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0)" ( identifier , (pointer_expression "*puVar7" * identifier) , (subscript_expression "puVar7[2]" identifier [ number_literal ]) , (subscript_expression "puVar7[3]" identifier [ number_literal ]) , (subscript_expression "puVar7[4]" identifier [ number_literal ]) , (subscript_expression "puVar7[5]" identifier [ number_literal ]) , (binary_expression "puVar7[6] != 0" (subscript_expression "puVar7[6]" identifier [ number_literal ]) != number_literal) )))) ;) }))) (if_statement "if (iVar6 == 0) {\n                    return 0;\n                  }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                    return 0;\n                  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "puVar7 = (undefined4 *)(puStack_28[1] + iVar3);" (assignment_expression "puVar7 = (undefined4 *)(puStack_28[1] + iVar3)" identifier = (cast_expression "(undefined4 *)(puStack_28[1] + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_28[1] + iVar3)" ( (binary_expression "puStack_28[1] + iVar3" (subscript_expression "puStack_28[1]" identifier [ number_literal ]) + identifier) )))) ;) (expression_statement "iVar3 = iVar3 + 4;" (assignment_expression "iVar3 = iVar3 + 4" identifier = (binary_expression "iVar3 + 4" identifier + number_literal)) ;) })) (expression_statement "iVar3 = (**(code **)(param_2 + 0x70))(param_3);" (assignment_expression "iVar3 = (**(code **)(param_2 + 0x70))(param_3)" identifier = (call_expression "(**(code **)(param_2 + 0x70))(param_3)" (parenthesized_expression "(**(code **)(param_2 + 0x70))" ( (pointer_expression "**(code **)(param_2 + 0x70)" * (pointer_expression "*(code **)(param_2 + 0x70)" * (cast_expression "(code **)(param_2 + 0x70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x70)" ( (binary_expression "param_2 + 0x70" identifier + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iStack_24 = iStack_24 + 1;" (assignment_expression "iStack_24 = iStack_24 + 1" identifier = (binary_expression "iStack_24 + 1" identifier + number_literal)) ;) (expression_statement "puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);" (assignment_expression "puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4)" * (cast_expression "(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_4[3] + 0x10) + iStack_24 * 4)" ( (binary_expression "*(int *)(param_4[3] + 0x10) + iStack_24 * 4" (pointer_expression "*(int *)(param_4[3] + 0x10)" * (cast_expression "(int *)(param_4[3] + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[3] + 0x10)" ( (binary_expression "param_4[3] + 0x10" (subscript_expression "param_4[3]" identifier [ number_literal ]) + number_literal) )))) + (binary_expression "iStack_24 * 4" identifier * number_literal)) ))))) ;) }) while (parenthesized_expression "(puStack_28 != (undefined4 *)0x0)" ( (binary_expression "puStack_28 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) })) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74)" identifier = (pointer_expression "*(code **)(param_2 + 0x74)" * (cast_expression "(code **)(param_2 + 0x74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x74)" ( (binary_expression "param_2 + 0x74" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001d69f;" goto statement_identifier ;)) (case_statement "case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;" case number_literal : (expression_statement "puVar7 = (undefined4 *)param_4[3];" (assignment_expression "puVar7 = (undefined4 *)param_4[3]" identifier = (cast_expression "(undefined4 *)param_4[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) ;) (if_statement "if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }" if (parenthesized_expression "(puVar7 == (undefined4 *)0x0)" ( (binary_expression "puVar7 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }" { (expression_statement "uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0)" identifier = (call_expression "(**(code **)(param_2 + 0x20))(param_3,local_30,0,0)" (parenthesized_expression "(**(code **)(param_2 + 0x20))" ( (pointer_expression "**(code **)(param_2 + 0x20)" * (pointer_expression "*(code **)(param_2 + 0x20)" * (cast_expression "(code **)(param_2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) ))))) )) (argument_list "(param_3,local_30,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (return_statement "return uVar4;" return identifier ;) })) (expression_statement "uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1])" identifier = (call_expression "(**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1])" (parenthesized_expression "(**(code **)(param_2 + 0x20))" ( (pointer_expression "**(code **)(param_2 + 0x20)" * (pointer_expression "*(code **)(param_2 + 0x20)" * (cast_expression "(code **)(param_2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) ))))) )) (argument_list "(param_3,local_30,*puVar7,puVar7[1])" ( identifier , identifier , (pointer_expression "*puVar7" * identifier) , (subscript_expression "puVar7[1]" identifier [ number_literal ]) )))) ;) (return_statement "return uVar4;" return identifier ;)) (case_statement "case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;" case number_literal : (expression_statement "iVar3 = FUN_0001d2d0(param_4[3],0);" (assignment_expression "iVar3 = FUN_0001d2d0(param_4[3],0)" identifier = (call_expression "FUN_0001d2d0(param_4[3],0)" identifier (argument_list "(param_4[3],0)" ( (subscript_expression "param_4[3]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24)" identifier = (pointer_expression "*(code **)(param_2 + 0x24)" * (cast_expression "(code **)(param_2 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x24)" ( (binary_expression "param_2 + 0x24" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001d69f;" goto statement_identifier ;)) (case_statement "case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;" case number_literal : (expression_statement "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);" (assignment_expression "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0)" identifier = (call_expression "FUN_0001d2d0(*(undefined4 *)param_4[3],0)" identifier (argument_list "(*(undefined4 *)param_4[3],0)" ( (pointer_expression "*(undefined4 *)param_4[3]" * (cast_expression "(undefined4 *)param_4[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar3 = param_4[3];" (assignment_expression "iVar3 = param_4[3]" identifier = (subscript_expression "param_4[3]" identifier [ number_literal ])) ;) (if_statement "if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }" if (parenthesized_expression "(*(int **)(iVar3 + 4) == (int *)0x0)" ( (binary_expression "*(int **)(iVar3 + 4) == (int *)0x0" (pointer_expression "*(int **)(iVar3 + 4)" * (cast_expression "(int **)(iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar6 = -1;\n          }" { (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;) }) (else_clause "else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }" else (compound_statement "{\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "iVar1 = **(int **)(iVar3 + 4);" (assignment_expression "iVar1 = **(int **)(iVar3 + 4)" identifier = (pointer_expression "**(int **)(iVar3 + 4)" * (pointer_expression "*(int **)(iVar3 + 4)" * (cast_expression "(int **)(iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))))) ;) (while_statement "while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }" while (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }" { (expression_statement "iVar3 = FUN_0001d2d0(iVar1,0);" (assignment_expression "iVar3 = FUN_0001d2d0(iVar1,0)" identifier = (call_expression "FUN_0001d2d0(iVar1,0)" identifier (argument_list "(iVar1,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar3 = param_4[3];" (assignment_expression "iVar3 = param_4[3]" identifier = (subscript_expression "param_4[3]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);" (assignment_expression "iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4)" identifier = (pointer_expression "*(int *)(*(int *)(iVar3 + 4) + iVar6 * 4)" * (cast_expression "(int *)(*(int *)(iVar3 + 4) + iVar6 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 4) + iVar6 * 4)" ( (binary_expression "*(int *)(iVar3 + 4) + iVar6 * 4" (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) + (binary_expression "iVar6 * 4" identifier * number_literal)) ))))) ;) })) }))) (expression_statement "uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8))" identifier = (call_expression "(**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8))" (parenthesized_expression "(**(code **)(param_2 + 0x28))" ( (pointer_expression "**(code **)(param_2 + 0x28)" * (pointer_expression "*(code **)(param_2 + 0x28)" * (cast_expression "(code **)(param_2 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x28)" ( (binary_expression "param_2 + 0x28" identifier + number_literal) ))))) )) (argument_list "(param_3,iVar6,*(undefined4 *)(iVar3 + 8))" ( identifier , identifier , (pointer_expression "*(undefined4 *)(iVar3 + 8)" * (cast_expression "(undefined4 *)(iVar3 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) )))) ;) (return_statement "return uVar4;" return identifier ;)) (case_statement "case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;" case number_literal : (expression_statement "iVar3 = FUN_0001d2d0(param_4[3],0);" (assignment_expression "iVar3 = FUN_0001d2d0(param_4[3],0)" identifier = (call_expression "FUN_0001d2d0(param_4[3],0)" identifier (argument_list "(param_4[3],0)" ( (subscript_expression "param_4[3]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c)" identifier = (pointer_expression "*(code **)(param_2 + 0x2c)" * (cast_expression "(code **)(param_2 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001d69f;" goto statement_identifier ;)) (case_statement "case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;" case number_literal : (expression_statement "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);" (assignment_expression "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0)" identifier = (call_expression "FUN_0001d2d0(*(undefined4 *)param_4[3],0)" identifier (argument_list "(*(undefined4 *)param_4[3],0)" ( (pointer_expression "*(undefined4 *)param_4[3]" * (cast_expression "(undefined4 *)param_4[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            )" identifier = (call_expression "(**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            )" (parenthesized_expression "(**(code **)(param_2 + 0x30))" ( (pointer_expression "**(code **)(param_2 + 0x30)" * (pointer_expression "*(code **)(param_2 + 0x30)" * (cast_expression "(code **)(param_2 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))) )) (argument_list "(param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            )" ( identifier , (pointer_expression "*(undefined4 *)(param_4[3] + 4)" * (cast_expression "(undefined4 *)(param_4[3] + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[3] + 4)" ( (binary_expression "param_4[3] + 4" (subscript_expression "param_4[3]" identifier [ number_literal ]) + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_4[3] + 8)" * (cast_expression "(undefined4 *)(param_4[3] + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[3] + 8)" ( (binary_expression "param_4[3] + 8" (subscript_expression "param_4[3]" identifier [ number_literal ]) + number_literal) )))) )))) ;) (return_statement "return uVar4;" return identifier ;)) (case_statement "case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;" case number_literal : (expression_statement "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);" (assignment_expression "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0)" identifier = (call_expression "FUN_0001d2d0(*(undefined4 *)param_4[3],0)" identifier (argument_list "(*(undefined4 *)param_4[3],0)" ( (pointer_expression "*(undefined4 *)param_4[3]" * (cast_expression "(undefined4 *)param_4[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);" (assignment_expression "iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0)" identifier = (call_expression "FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0)" identifier (argument_list "(*(undefined4 *)(param_4[3] + 4),0)" ( (pointer_expression "*(undefined4 *)(param_4[3] + 4)" * (cast_expression "(undefined4 *)(param_4[3] + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[3] + 4)" ( (binary_expression "param_4[3] + 4" (subscript_expression "param_4[3]" identifier [ number_literal ]) + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar3 = param_4[3];" (assignment_expression "iVar3 = param_4[3]" identifier = (subscript_expression "param_4[3]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10))" identifier = (call_expression "(**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10))" (parenthesized_expression "(**(code **)(param_2 + 0x34))" ( (pointer_expression "**(code **)(param_2 + 0x34)" * (pointer_expression "*(code **)(param_2 + 0x34)" * (cast_expression "(code **)(param_2 + 0x34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x34)" ( (binary_expression "param_2 + 0x34" identifier + number_literal) ))))) )) (argument_list "(param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10))" ( identifier , (pointer_expression "*(undefined4 *)(iVar3 + 8)" * (cast_expression "(undefined4 *)(iVar3 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar3 + 0xc)" * (cast_expression "(undefined4 *)(iVar3 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar3 + 0x10)" * (cast_expression "(undefined4 *)(iVar3 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) )))) ;) (return_statement "return uVar4;" return identifier ;)) (case_statement "case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;" case number_literal : (expression_statement "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);" (assignment_expression "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0)" identifier = (call_expression "FUN_0001d2d0(*(undefined4 *)param_4[3],0)" identifier (argument_list "(*(undefined4 *)param_4[3],0)" ( (pointer_expression "*(undefined4 *)param_4[3]" * (cast_expression "(undefined4 *)param_4[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38)" identifier = (pointer_expression "*(code **)(param_2 + 0x38)" * (cast_expression "(code **)(param_2 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x38)" ( (binary_expression "param_2 + 0x38" identifier + number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;" case number_literal : (expression_statement "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);" (assignment_expression "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0)" identifier = (call_expression "FUN_0001d2d0(*(undefined4 *)param_4[3],0)" identifier (argument_list "(*(undefined4 *)param_4[3],0)" ( (pointer_expression "*(undefined4 *)param_4[3]" * (cast_expression "(undefined4 *)param_4[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);" (assignment_expression "iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0)" identifier = (call_expression "FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0)" identifier (argument_list "(*(undefined4 *)(param_4[3] + 4),0)" ( (pointer_expression "*(undefined4 *)(param_4[3] + 4)" * (cast_expression "(undefined4 *)(param_4[3] + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[3] + 4)" ( (binary_expression "param_4[3] + 4" (subscript_expression "param_4[3]" identifier [ number_literal ]) + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c)" identifier = (pointer_expression "*(code **)(param_2 + 0x3c)" * (cast_expression "(code **)(param_2 + 0x3c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x3c)" ( (binary_expression "param_2 + 0x3c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001d69f;" goto statement_identifier ;)) (case_statement "case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;" case number_literal : (expression_statement "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);" (assignment_expression "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0)" identifier = (call_expression "FUN_0001d2d0(*(undefined4 *)param_4[3],0)" identifier (argument_list "(*(undefined4 *)param_4[3],0)" ( (pointer_expression "*(undefined4 *)param_4[3]" * (cast_expression "(undefined4 *)param_4[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar3 = param_4[3];" (assignment_expression "iVar3 = param_4[3]" identifier = (subscript_expression "param_4[3]" identifier [ number_literal ])) ;) (if_statement "if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }" if (parenthesized_expression "(*(int **)(iVar3 + 8) == (int *)0x0)" ( (binary_expression "*(int **)(iVar3 + 8) == (int *)0x0" (pointer_expression "*(int **)(iVar3 + 8)" * (cast_expression "(int **)(iVar3 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar6 = -1;\n          }" { (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;) }) (else_clause "else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }" else (compound_statement "{\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "iVar1 = **(int **)(iVar3 + 8);" (assignment_expression "iVar1 = **(int **)(iVar3 + 8)" identifier = (pointer_expression "**(int **)(iVar3 + 8)" * (pointer_expression "*(int **)(iVar3 + 8)" * (cast_expression "(int **)(iVar3 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))))) ;) (while_statement "while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }" while (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }" { (expression_statement "iVar3 = FUN_0001d2d0(iVar1,0);" (assignment_expression "iVar3 = FUN_0001d2d0(iVar1,0)" identifier = (call_expression "FUN_0001d2d0(iVar1,0)" identifier (argument_list "(iVar1,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar3 = param_4[3];" (assignment_expression "iVar3 = param_4[3]" identifier = (subscript_expression "param_4[3]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);" (assignment_expression "iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4)" identifier = (pointer_expression "*(int *)(*(int *)(iVar3 + 8) + iVar6 * 4)" * (cast_expression "(int *)(*(int *)(iVar3 + 8) + iVar6 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 8) + iVar6 * 4)" ( (binary_expression "*(int *)(iVar3 + 8) + iVar6 * 4" (pointer_expression "*(int *)(iVar3 + 8)" * (cast_expression "(int *)(iVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) + (binary_expression "iVar6 * 4" identifier * number_literal)) ))))) ;) })) }))) (expression_statement "iVar1 = *(int *)(iVar3 + 4);" (assignment_expression "iVar1 = *(int *)(iVar3 + 4)" identifier = (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) (if_statement "if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }" { (expression_statement "iVar3 = FUN_0001d2d0(iVar1,0);" (assignment_expression "iVar3 = FUN_0001d2d0(iVar1,0)" identifier = (call_expression "FUN_0001d2d0(iVar1,0)" identifier (argument_list "(iVar1,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n              return 0;\n            }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar3 = param_4[3];" (assignment_expression "iVar3 = param_4[3]" identifier = (subscript_expression "param_4[3]" identifier [ number_literal ])) ;) (expression_statement "iVar1 = *(int *)(iVar3 + 4);" (assignment_expression "iVar1 = *(int *)(iVar3 + 4)" identifier = (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) })) (expression_statement "uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc))" identifier = (call_expression "(**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc))" (parenthesized_expression "(**(code **)(param_2 + 0x40))" ( (pointer_expression "**(code **)(param_2 + 0x40)" * (pointer_expression "*(code **)(param_2 + 0x40)" * (cast_expression "(code **)(param_2 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x40)" ( (binary_expression "param_2 + 0x40" identifier + number_literal) ))))) )) (argument_list "(param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc))" ( identifier , (binary_expression "iVar1 != 0" identifier != number_literal) , identifier , (pointer_expression "*(undefined4 *)(iVar3 + 0xc)" * (cast_expression "(undefined4 *)(iVar3 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) )))) ;) (return_statement "return uVar4;" return identifier ;)) (case_statement "case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;" case number_literal : (expression_statement "iVar3 = FUN_0001d2d0(param_4[3],0);" (assignment_expression "iVar3 = FUN_0001d2d0(param_4[3],0)" identifier = (call_expression "FUN_0001d2d0(param_4[3],0)" identifier (argument_list "(param_4[3],0)" ( (subscript_expression "param_4[3]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44)" identifier = (pointer_expression "*(code **)(param_2 + 0x44)" * (cast_expression "(code **)(param_2 + 0x44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x44)" ( (binary_expression "param_2 + 0x44" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001d69f;" goto statement_identifier ;)) (case_statement "case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;" case number_literal : (expression_statement "iVar3 = FUN_0001d2d0(param_4[3],0);" (assignment_expression "iVar3 = FUN_0001d2d0(param_4[3],0)" identifier = (call_expression "FUN_0001d2d0(param_4[3],0)" identifier (argument_list "(param_4[3],0)" ( (subscript_expression "param_4[3]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48)" identifier = (pointer_expression "*(code **)(param_2 + 0x48)" * (cast_expression "(code **)(param_2 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x48)" ( (binary_expression "param_2 + 0x48" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001d69f;" goto statement_identifier ;)) (case_statement "case 0x16:\n          goto LAB_0001d388;" case number_literal : (goto_statement "goto LAB_0001d388;" goto statement_identifier ;)) (case_statement "case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;" case number_literal : (labeled_statement "LAB_0001daa0:\n          local_2c = (int *)param_4[3];" statement_identifier : (expression_statement "local_2c = (int *)param_4[3];" (assignment_expression "local_2c = (int *)param_4[3]" identifier = (cast_expression "(int *)param_4[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) ;)) (expression_statement "param_5 = *local_2c;" (assignment_expression "param_5 = *local_2c" identifier = (pointer_expression "*local_2c" * identifier)) ;) (goto_statement "goto LAB_0001d36b;" goto statement_identifier ;)) (case_statement "default:\n                    /* WARNING: Subroutine does not return */\n          abort();" default : comment (expression_statement "abort();" (call_expression "abort()" identifier (argument_list "()" ( ))) ;)) }))) (labeled_statement "LAB_0001d9c6:\n                    /* WARNING: Could not recover jumptable at 0x0001d9cd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();" statement_identifier : comment comment (expression_statement "uVar4 = (*UNRECOVERED_JUMPTABLE_00)();" (assignment_expression "uVar4 = (*UNRECOVERED_JUMPTABLE_00)()" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE_00)()" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE_00)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE_00" * identifier) )) (argument_list "()" ( )))) ;)) (return_statement "return uVar4;" return identifier ;) }))) (expression_statement "*(undefined4 *)(param_5 + 8) = *(undefined4 *)(param_1 + 0x18);" (assignment_expression "*(undefined4 *)(param_5 + 8) = *(undefined4 *)(param_1 + 0x18)" (pointer_expression "*(undefined4 *)(param_5 + 8)" * (cast_expression "(undefined4 *)(param_5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 8)" ( (binary_expression "param_5 + 8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x18)" * (cast_expression "(undefined4 *)(param_1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 != 0x16) {\n        if (iVar3 != 0x17) {\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }\n        goto LAB_0001daa0;\n      }" if (parenthesized_expression "(iVar3 != 0x16)" ( (binary_expression "iVar3 != 0x16" identifier != number_literal) )) (compound_statement "{\n        if (iVar3 != 0x17) {\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }\n        goto LAB_0001daa0;\n      }" { (if_statement "if (iVar3 != 0x17) {\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }" if (parenthesized_expression "(iVar3 != 0x17)" ( (binary_expression "iVar3 != 0x17" identifier != number_literal) )) (compound_statement "{\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }" { (if_statement "if (*(int *)(param_5 + 0xc) != 1) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }" if (parenthesized_expression "(*(int *)(param_5 + 0xc) != 1)" ( (binary_expression "*(int *)(param_5 + 0xc) != 1" (pointer_expression "*(int *)(param_5 + 0xc)" * (cast_expression "(int *)(param_5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }" { comment (expression_statement "__assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");" (call_expression "__assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type")" identifier (argument_list "("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type")" ( (string_literal ""name->kind == DEBUG_OBJECT_TAG"" " string_content ") , (string_literal ""../../binutils/debug.c"" " string_content ") , number_literal , (string_literal ""debug_write_type"" " string_content ") ))) ;) })) (expression_statement "local_30 = *(undefined4 *)(param_5 + 4);" (assignment_expression "local_30 = *(undefined4 *)(param_5 + 4)" identifier = (pointer_expression "*(undefined4 *)(param_5 + 4)" * (cast_expression "(undefined4 *)(param_5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 4)" ( (binary_expression "param_5 + 4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001d329;" goto statement_identifier ;) })) (goto_statement "goto LAB_0001daa0;" goto statement_identifier ;) })) (labeled_statement "LAB_0001d388:\n      param_5 = 0;" statement_identifier : (expression_statement "param_5 = 0;" (assignment_expression "param_5 = 0" identifier = number_literal) ;)) })) (expression_statement "local_2c = (int *)param_4[3];" (assignment_expression "local_2c = (int *)param_4[3]" identifier = (cast_expression "(int *)param_4[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) ;) (if_statement "if (*(int *)(*local_2c + 8) == *(int *)(param_1 + 0x18)) {\n      if (iVar3 == 0x16) {\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n        goto LAB_0001d9c6;\n      }\nLAB_0001db7f:\n      piVar2 = (int *)FUN_0001c820();\n      if (piVar2 != (int *)0x0) {\n        iVar3 = *piVar2;\n        uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n        if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }\n        else {\n          uVar5 = 0;\n        }\n        uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);\n        return uVar4;\n      }\n      goto LAB_0001d6c3;\n    }" if (parenthesized_expression "(*(int *)(*local_2c + 8) == *(int *)(param_1 + 0x18))" ( (binary_expression "*(int *)(*local_2c + 8) == *(int *)(param_1 + 0x18)" (pointer_expression "*(int *)(*local_2c + 8)" * (cast_expression "(int *)(*local_2c + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_2c + 8)" ( (binary_expression "*local_2c + 8" (pointer_expression "*local_2c" * identifier) + number_literal) )))) == (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      if (iVar3 == 0x16) {\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n        goto LAB_0001d9c6;\n      }\nLAB_0001db7f:\n      piVar2 = (int *)FUN_0001c820();\n      if (piVar2 != (int *)0x0) {\n        iVar3 = *piVar2;\n        uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n        if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }\n        else {\n          uVar5 = 0;\n        }\n        uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);\n        return uVar4;\n      }\n      goto LAB_0001d6c3;\n    }" { (if_statement "if (iVar3 == 0x16) {\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n        goto LAB_0001d9c6;\n      }" if (parenthesized_expression "(iVar3 == 0x16)" ( (binary_expression "iVar3 == 0x16" identifier == number_literal) )) (compound_statement "{\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n        goto LAB_0001d9c6;\n      }" { (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78)" identifier = (pointer_expression "*(code **)(param_2 + 0x78)" * (cast_expression "(code **)(param_2 + 0x78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x78)" ( (binary_expression "param_2 + 0x78" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001d9c6;" goto statement_identifier ;) })) (labeled_statement "LAB_0001db7f:\n      piVar2 = (int *)FUN_0001c820();" statement_identifier : (expression_statement "piVar2 = (int *)FUN_0001c820();" (assignment_expression "piVar2 = (int *)FUN_0001c820()" identifier = (cast_expression "(int *)FUN_0001c820()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001c820()" identifier (argument_list "()" ( ))))) ;)) (if_statement "if (piVar2 != (int *)0x0) {\n        iVar3 = *piVar2;\n        uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n        if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }\n        else {\n          uVar5 = 0;\n        }\n        uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);\n        return uVar4;\n      }" if (parenthesized_expression "(piVar2 != (int *)0x0)" ( (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar3 = *piVar2;\n        uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n        if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }\n        else {\n          uVar5 = 0;\n        }\n        uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);\n        return uVar4;\n      }" { (expression_statement "iVar3 = *piVar2;" (assignment_expression "iVar3 = *piVar2" identifier = (pointer_expression "*piVar2" * identifier)) ;) (expression_statement "uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);" (assignment_expression "uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4)" identifier = (pointer_expression "*(undefined4 *)(*(int *)param_4[3] + 4)" * (cast_expression "(undefined4 *)(*(int *)param_4[3] + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_4[3] + 4)" ( (binary_expression "*(int *)param_4[3] + 4" (pointer_expression "*(int *)param_4[3]" * (cast_expression "(int *)param_4[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) + number_literal) ))))) ;) (if_statement "if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }\n        else {\n          uVar5 = 0;\n        }" if (parenthesized_expression "((iVar3 - 7U < 4) && (piVar2[3] != 0))" ( (binary_expression "(iVar3 - 7U < 4) && (piVar2[3] != 0)" (parenthesized_expression "(iVar3 - 7U < 4)" ( (binary_expression "iVar3 - 7U < 4" (binary_expression "iVar3 - 7U" identifier - number_literal) < number_literal) )) && (parenthesized_expression "(piVar2[3] != 0)" ( (binary_expression "piVar2[3] != 0" (subscript_expression "piVar2[3]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }" { (expression_statement "uVar5 = *(uint *)(piVar2[3] + 8);" (assignment_expression "uVar5 = *(uint *)(piVar2[3] + 8)" identifier = (pointer_expression "*(uint *)(piVar2[3] + 8)" * (cast_expression "(uint *)(piVar2[3] + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar2[3] + 8)" ( (binary_expression "piVar2[3] + 8" (subscript_expression "piVar2[3]" identifier [ number_literal ]) + number_literal) ))))) ;) (if_statement "if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }" if (parenthesized_expression "(uVar5 <= *(uint *)(param_1 + 0x20))" ( (binary_expression "uVar5 <= *(uint *)(param_1 + 0x20)" identifier <= (pointer_expression "*(uint *)(param_1 + 0x20)" * (cast_expression "(uint *)(param_1 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) )) (compound_statement "{\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }" { (expression_statement "iVar3 = FUN_0001d1a0();" (assignment_expression "iVar3 = FUN_0001d1a0()" identifier = (call_expression "FUN_0001d1a0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0) {\n              return 0;\n            }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar5 = *(uint *)(piVar2[3] + 8);" (assignment_expression "uVar5 = *(uint *)(piVar2[3] + 8)" identifier = (pointer_expression "*(uint *)(piVar2[3] + 8)" * (cast_expression "(uint *)(piVar2[3] + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar2[3] + 8)" ( (binary_expression "piVar2[3] + 8" (subscript_expression "piVar2[3]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "iVar3 = *piVar2;" (assignment_expression "iVar3 = *piVar2" identifier = (pointer_expression "*piVar2" * identifier)) ;) (expression_statement "uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);" (assignment_expression "uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4)" identifier = (pointer_expression "*(undefined4 *)(*(int *)param_4[3] + 4)" * (cast_expression "(undefined4 *)(*(int *)param_4[3] + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_4[3] + 4)" ( (binary_expression "*(int *)param_4[3] + 4" (pointer_expression "*(int *)param_4[3]" * (cast_expression "(int *)param_4[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) + number_literal) ))))) ;) })) }) (else_clause "else {\n          uVar5 = 0;\n        }" else (compound_statement "{\n          uVar5 = 0;\n        }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }))) (expression_statement "uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3)" identifier = (call_expression "(**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3)" (parenthesized_expression "(**(code **)(param_2 + 0x7c))" ( (pointer_expression "**(code **)(param_2 + 0x7c)" * (pointer_expression "*(code **)(param_2 + 0x7c)" * (cast_expression "(code **)(param_2 + 0x7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x7c)" ( (binary_expression "param_2 + 0x7c" identifier + number_literal) ))))) )) (argument_list "(param_3,uVar4,uVar5,iVar3)" ( identifier , identifier , identifier , identifier )))) ;) (return_statement "return uVar4;" return identifier ;) })) (goto_statement "goto LAB_0001d6c3;" goto statement_identifier ;) })) (if_statement "if (iVar3 != 0x17) goto LAB_0001d300;" if (parenthesized_expression "(iVar3 != 0x17)" ( (binary_expression "iVar3 != 0x17" identifier != number_literal) )) (goto_statement "goto LAB_0001d300;" goto statement_identifier ;)) (if_statement "if (*local_2c != param_5) goto LAB_0001db7f;" if (parenthesized_expression "(*local_2c != param_5)" ( (binary_expression "*local_2c != param_5" (pointer_expression "*local_2c" * identifier) != identifier) )) (goto_statement "goto LAB_0001db7f;" goto statement_identifier ;)) (expression_statement "*(int *)(param_5 + 8) = *(int *)(param_1 + 0x18);" (assignment_expression "*(int *)(param_5 + 8) = *(int *)(param_1 + 0x18)" (pointer_expression "*(int *)(param_5 + 8)" * (cast_expression "(int *)(param_5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 8)" ( (binary_expression "param_5 + 8" identifier + number_literal) )))) = (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) ))))) ;) (labeled_statement "LAB_0001d36b:\n    param_4 = (int *)local_2c[1];" statement_identifier : (expression_statement "param_4 = (int *)local_2c[1];" (assignment_expression "param_4 = (int *)local_2c[1]" identifier = (cast_expression "(int *)local_2c[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_2c[1]" identifier [ number_literal ]))) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) (labeled_statement "code_r0x0001d6b0:\n  param_4 = (int *)**(undefined4 **)param_4[3];" statement_identifier : (expression_statement "param_4 = (int *)**(undefined4 **)param_4[3];" (assignment_expression "param_4 = (int *)**(undefined4 **)param_4[3]" identifier = (cast_expression "(int *)**(undefined4 **)param_4[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)param_4[3]" * (pointer_expression "*(undefined4 **)param_4[3]" * (cast_expression "(undefined4 **)param_4[3]" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "param_4[3]" identifier [ number_literal ])))))) ;)) (if_statement "if (param_4 == (int *)0x0) {\nLAB_0001d6c3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 8);\nLAB_0001d69f:\n                    /* WARNING: Could not recover jumptable at 0x0001d6a6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n    return uVar4;\n  }" if (parenthesized_expression "(param_4 == (int *)0x0)" ( (binary_expression "param_4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0001d6c3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 8);\nLAB_0001d69f:\n                    /* WARNING: Could not recover jumptable at 0x0001d6a6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n    return uVar4;\n  }" { (labeled_statement "LAB_0001d6c3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 8);" statement_identifier : (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 8);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 8)" identifier = (pointer_expression "*(code **)(param_2 + 8)" * (cast_expression "(code **)(param_2 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0001d69f:\n                    /* WARNING: Could not recover jumptable at 0x0001d6a6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)();" statement_identifier : comment comment (expression_statement "uVar4 = (*UNRECOVERED_JUMPTABLE_00)();" (assignment_expression "uVar4 = (*UNRECOVERED_JUMPTABLE_00)()" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE_00)()" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE_00)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE_00" * identifier) )) (argument_list "()" ( )))) ;)) (return_statement "return uVar4;" return identifier ;) })) (goto_statement "goto LAB_0001d2f6;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nbfd_boolean __regparm3\ndebug_write_type(debug_handle *info,debug_write_fns *fns,void *fhandle,debug_type_s *type,\n                debug_name *name)\n\n{\n  int *piVar1;\n  debug_name *pdVar2;\n  debug_array_type *pdVar3;\n  debug_enum_type *pdVar4;\n  debug_field *ppdVar5;\n  debug_method_variant_s *pdVar6;\n  _func_bfd_boolean_void_ptr *UNRECOVERED_JUMPTABLE_00;\n  undefined4 uVar7;\n  int iVar8;\n  _func_bfd_boolean_void_ptr_char_ptr *UNRECOVERED_JUMPTABLE;\n  debug_type_kind dVar9;\n  debug_type_s *pdVar10;\n  bfd_boolean bVar11;\n  debug_class_type *pdVar12;\n  uint uVar13;\n  debug_method_type *pdVar14;\n  debug_function_type *pdVar15;\n  uint uVar16;\n  int iVar17;\n  _func_bfd_boolean_void_ptr_char_ptr_uint_bfd_boolean_uint *p_Var18;\n  debug_field pdVar19;\n  debug_baseclass pdVar20;\n  char *pcVar21;\n  debug_class_type *local_34;\n  char *local_30;\n  debug_array_type *local_2c;\n  debug_method local_28;\n  int local_24;\n  \nLAB_0001d2f6:\n  do {\n    for (; dVar9 = type->kind, 1 < dVar9 - DEBUG_KIND_NAMED; type = ((type->u).karray)->range_type)\n    {\nLAB_0001d300:\n      if (name == (debug_name *)0x0) {\n        local_30 = (char *)0x0;\nLAB_0001d329:\n        switch(dVar9) {\n        case DEBUG_KIND_ILLEGAL:\n          uVar7 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar7);\n          return 0;\n        case DEBUG_KIND_INDIRECT:\n          goto _L288;\n        case DEBUG_KIND_VOID:\n          UNRECOVERED_JUMPTABLE_00 = fns->void_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_INT:\n          bVar11 = (*fns->int_type)(fhandle,type->size,(type->u).kint);\n          return bVar11;\n        case DEBUG_KIND_FLOAT:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->float_type;\n          break;\n        case DEBUG_KIND_COMPLEX:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->complex_type;\n          break;\n        case DEBUG_KIND_BOOL:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->bool_type;\n          break;\n        case DEBUG_KIND_STRUCT:\n        case DEBUG_KIND_UNION:\n          pdVar12 = (type->u).kclass;\n          if (pdVar12 == (debug_class_type *)0x0) {\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            uVar16 = 0;\n          }\n          else {\n            uVar13 = pdVar12->id;\n            if (info->base_id < uVar13) {\n              uVar16 = info->mark;\n              if (pdVar12->mark == uVar16) {\nLAB_0001db48:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,uVar13,type->kind);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar12 = (type->u).kclass;\n              uVar16 = info->mark;\n              if (uVar16 == pdVar12->mark) {\n                uVar13 = pdVar12->id;\n                if (uVar13 <= info->base_id) {\n                  pcVar21 = "debug_write_type";\n                  uVar13 = 0x9d1;\nLAB_0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar13\n                                ,pcVar21);\n                }\n                goto LAB_0001db48;\n              }\n            }\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            pdVar12->mark = uVar16;\n            uVar16 = pdVar12->id;\n            dVar9 = type->kind;\n          }\n          bVar11 = (*p_Var18)(fhandle,local_30,uVar16,(uint)(dVar9 == DEBUG_KIND_STRUCT),uVar13);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          if ((((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar5 = ((type->u).kclass)->fields, ppdVar5 != (debug_field *)0x0)) &&\n             (pdVar19 = *ppdVar5, pdVar19 != (debug_field)0x0)) {\n            iVar17 = 4;\n            do {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              bVar11 = (*fns->struct_field)\n                                 (fhandle,pdVar19->name,(pdVar19->u).f.bitpos,(pdVar19->u).f.bitsize\n                                  ,pdVar19->visibility);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar19 = *(debug_field *)((int)((type->u).kindirect)->slot + iVar17);\n              iVar17 = iVar17 + 4;\n            } while (pdVar19 != (debug_field)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->end_struct_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_CLASS:\n        case DEBUG_KIND_UNION_CLASS:\n          local_34 = (type->u).kclass;\n          if (local_34 == (debug_class_type *)0x0) {\n            uVar13 = 0;\n            local_2c = (debug_array_type *)0x0;\n            local_34 = (debug_class_type *)0x0;\n          }\n          else {\n            local_2c = (debug_array_type *)local_34->id;\n            if (info->base_id < local_2c) {\n              uVar13 = info->mark;\n              if (local_34->mark == uVar13) {\nLAB_0001dafa:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,(uint)local_2c,dVar9);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              local_34 = (type->u).kclass;\n              uVar13 = info->mark;\n              local_2c = (debug_array_type *)local_34->id;\n              if (uVar13 == local_34->mark) {\n                if (local_2c <= info->base_id) {\n                  pcVar21 = "debug_write_class_type";\n                  uVar13 = 0xa7d;\n                  goto LAB_0001de3e;\n                }\n                dVar9 = type->kind;\n                goto LAB_0001dafa;\n              }\n            }\n            local_34->mark = uVar13;\n            local_34 = (debug_class_type *)local_34->vptrbase;\n            if (((debug_class_type *)type == local_34) || (local_34 == (debug_class_type *)0x0)) {\n              uVar13 = (uint)(local_34 != (debug_class_type *)0x0);\n              dVar9 = type->kind;\n            }\n            else {\n              bVar11 = debug_write_type(info,fns,fhandle,(debug_type_s *)local_34,(debug_name *)0x0)\n              ;\n              if (bVar11 == 0) {\n                return 0;\n              }\n              dVar9 = type->kind;\n              uVar13 = 1;\n            }\n          }\n          bVar11 = (*fns->start_class_type)\n                             (fhandle,local_30,(uint)local_2c,(uint)(dVar9 == DEBUG_KIND_CLASS),\n                              type->size,uVar13,(uint)((debug_class_type *)type == local_34));\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar12 = (type->u).kclass;\n          if (pdVar12 != (debug_class_type *)0x0) {\n            if ((pdVar12->fields != (debug_field *)0x0) &&\n               (pdVar19 = *pdVar12->fields, pdVar19 != (debug_field)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pcVar21 = (char *)(pdVar19->u).f.bitpos;\n                if (pdVar19->static_member == 0) {\n                  iVar8 = (*fns->struct_field)\n                                    (fhandle,pdVar19->name,(bfd_vma)pcVar21,(pdVar19->u).f.bitsize,\n                                     pdVar19->visibility);\n                }\n                else {\n                  iVar8 = (*fns->class_static_member)\n                                    (fhandle,pdVar19->name,pcVar21,pdVar19->visibility);\n                }\n                if (iVar8 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar19 = *(debug_field *)((int)pdVar12->fields + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar19 != (debug_field)0x0);\n            }\n            if ((pdVar12->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar20 = *pdVar12->baseclasses, pdVar20 != (debug_baseclass)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar20->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                bVar11 = (*fns->class_baseclass)\n                                   (fhandle,pdVar20->bitpos,pdVar20->is_virtual,pdVar20->visibility)\n                ;\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar20 = *(debug_baseclass *)((int)pdVar12->baseclasses + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar20 != (debug_baseclass)0x0);\n            }\n            if ((pdVar12->methods != (debug_method *)0x0) &&\n               (local_28 = *pdVar12->methods, local_28 != (debug_method)0x0)) {\n              local_24 = 0;\n              do {\n                bVar11 = (*fns->class_start_method)(fhandle,local_28->name);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                iVar17 = 4;\n                pdVar6 = *local_28->variants;\n                while (pdVar6 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar6->context != (debug_type_s *)0x0) &&\n                     (bVar11 = debug_write_type(info,fns,fhandle,pdVar6->context,(debug_name *)0x0),\n                     bVar11 == 0)) {\n                    return 0;\n                  }\n                  bVar11 = debug_write_type(info,fns,fhandle,pdVar6->type,(debug_name *)0x0);\n                  if (bVar11 == 0) {\n                    return 0;\n                  }\n                  if (pdVar6->voffset == 0xffffffff) {\n                    iVar8 = (*fns->class_static_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep);\n                  }\n                  else {\n                    iVar8 = (*fns->class_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep,pdVar6->voffset,\n                                       (uint)(pdVar6->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar8 == 0) {\n                    return 0;\n                  }\n                  piVar1 = (int *)((int)local_28->variants + iVar17);\n                  iVar17 = iVar17 + 4;\n                  pdVar6 = (debug_method_variant_s *)*piVar1;\n                }\n                bVar11 = (*fns->class_end_method)(fhandle);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                local_24 = local_24 + 1;\n                local_28 = ((type->u).kclass)->methods[local_24];\n              } while (local_28 != (debug_method)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->end_class_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_ENUM:\n          pdVar4 = (type->u).kenum;\n          if (pdVar4 == (debug_enum_type *)0x0) {\n            bVar11 = (*fns->enum_type)(fhandle,local_30,(char **)0x0,(bfd_signed_vma *)0x0);\n            return bVar11;\n          }\n          bVar11 = (*fns->enum_type)(fhandle,local_30,pdVar4->names,pdVar4->values);\n          return bVar11;\n        case DEBUG_KIND_POINTER:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->pointer_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_FUNCTION:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar15 = (type->u).kfunction;\n          if (pdVar15->arg_types == (debug_type_conflict *)0x0) {\n            iVar17 = -1;\n          }\n          else {\n            iVar17 = 0;\n            pdVar10 = *pdVar15->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar15 = (type->u).kfunction;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar15->arg_types[iVar17];\n            }\n          }\n          bVar11 = (*fns->function_type)(fhandle,iVar17,pdVar15->varargs);\n          return bVar11;\n        case DEBUG_KIND_REFERENCE:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->reference_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_RANGE:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);\n          return bVar11;\n        case DEBUG_KIND_ARRAY:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar3 = (type->u).karray;\n          bVar11 = (*fns->array_type)(fhandle,pdVar3->lower,pdVar3->upper,pdVar3->stringp);\n          return bVar11;\n        case DEBUG_KIND_SET:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          name = (debug_name *)((type->u).karray)->range_type;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->set_type;\n          break;\n        case DEBUG_KIND_OFFSET:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->offset_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_METHOD:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar14 = (type->u).kmethod;\n          if (pdVar14->arg_types == (debug_type_conflict *)0x0) {\n            iVar17 = -1;\n          }\n          else {\n            iVar17 = 0;\n            pdVar10 = *pdVar14->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar14 = (type->u).kmethod;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar14->arg_types[iVar17];\n            }\n          }\n          pdVar10 = pdVar14->domain_type;\n          if (pdVar10 != (debug_type_s *)0x0) {\n            bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar11 == 0) {\n              return 0;\n            }\n            pdVar14 = (type->u).kmethod;\n            pdVar10 = pdVar14->domain_type;\n          }\n          bVar11 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar17,\n                                       pdVar14->varargs);\n          return bVar11;\n        case DEBUG_KIND_CONST:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->const_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_VOLATILE:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->volatile_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_NAMED:\n          goto _L264;\n        case DEBUG_KIND_TAGGED:\n_L268:\n          local_2c = (type->u).karray;\n          name = (debug_name *)local_2c->element_type;\n          goto LAB_0001d36b;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\nLAB_0001d9c6:\n                    /* WARNING: Could not recover jumptable at 0x0001d9cd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        bVar11 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)name);\n        return bVar11;\n      }\n      name->mark = info->mark;\n      if (dVar9 != DEBUG_KIND_NAMED) {\n        if (dVar9 != DEBUG_KIND_TAGGED) {\n          if (name->kind != DEBUG_OBJECT_TAG) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = name->name;\n          goto LAB_0001d329;\n        }\n        goto _L268;\n      }\n_L264:\n      name = (debug_name *)0x0;\n    }\n    local_2c = (debug_array_type *)(type->u).knamed;\n    pdVar2 = (debug_name *)local_2c->element_type;\n    if (pdVar2->mark == info->mark) {\n      if (dVar9 == DEBUG_KIND_NAMED) {\n        name = (debug_name *)pdVar2->name;\n        UNRECOVERED_JUMPTABLE = fns->typedef_type;\n        goto LAB_0001d9c6;\n      }\nLAB_0001db7f:\n      pdVar10 = debug_get_real_type(info,type,(debug_type_real_list *)0x0);\n      if (pdVar10 != (debug_type_s *)0x0) {\n        dVar9 = pdVar10->kind;\n        pcVar21 = ((type->u).knamed)->name->name;\n        if ((dVar9 - DEBUG_KIND_STRUCT < 4) && ((pdVar10->u).kclass != (debug_class_type *)0x0)) {\n          uVar13 = ((pdVar10->u).kclass)->id;\n          if (uVar13 <= info->base_id) {\n            bVar11 = debug_set_class_id(info,pcVar21,pdVar10);\n            if (bVar11 == 0) {\n              return 0;\n            }\n            uVar13 = ((pdVar10->u).kclass)->id;\n            dVar9 = pdVar10->kind;\n            pcVar21 = ((type->u).knamed)->name->name;\n          }\n        }\n        else {\n          uVar13 = 0;\n        }\n        bVar11 = (*fns->tag_type)(fhandle,pcVar21,uVar13,dVar9);\n        return bVar11;\n      }\n      goto LAB_0001d6c3;\n    }\n    if (dVar9 != DEBUG_KIND_TAGGED) goto LAB_0001d300;\n    if (pdVar2 != name) goto LAB_0001db7f;\n    name->mark = info->mark;\nLAB_0001d36b:\n    type = local_2c->range_type;\n  } while( true );\n_L288:\n  type = *((type->u).kindirect)->slot;\n  if (type == (debug_type_conflict)0x0) {\nLAB_0001d6c3:\n    UNRECOVERED_JUMPTABLE_00 = fns->empty_type;\nLAB_0001d69f:\n                    /* WARNING: Could not recover jumptable at 0x0001d6a6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    bVar11 = (*UNRECOVERED_JUMPTABLE_00)(fhandle);\n    return bVar11;\n  }\n  goto LAB_0001d2f6;\n}\n\n" comment (function_definition "bfd_boolean __regparm3\ndebug_write_type(debug_handle *info,debug_write_fns *fns,void *fhandle,debug_type_s *type,\n                debug_name *name)\n\n{\n  int *piVar1;\n  debug_name *pdVar2;\n  debug_array_type *pdVar3;\n  debug_enum_type *pdVar4;\n  debug_field *ppdVar5;\n  debug_method_variant_s *pdVar6;\n  _func_bfd_boolean_void_ptr *UNRECOVERED_JUMPTABLE_00;\n  undefined4 uVar7;\n  int iVar8;\n  _func_bfd_boolean_void_ptr_char_ptr *UNRECOVERED_JUMPTABLE;\n  debug_type_kind dVar9;\n  debug_type_s *pdVar10;\n  bfd_boolean bVar11;\n  debug_class_type *pdVar12;\n  uint uVar13;\n  debug_method_type *pdVar14;\n  debug_function_type *pdVar15;\n  uint uVar16;\n  int iVar17;\n  _func_bfd_boolean_void_ptr_char_ptr_uint_bfd_boolean_uint *p_Var18;\n  debug_field pdVar19;\n  debug_baseclass pdVar20;\n  char *pcVar21;\n  debug_class_type *local_34;\n  char *local_30;\n  debug_array_type *local_2c;\n  debug_method local_28;\n  int local_24;\n  \nLAB_0001d2f6:\n  do {\n    for (; dVar9 = type->kind, 1 < dVar9 - DEBUG_KIND_NAMED; type = ((type->u).karray)->range_type)\n    {\nLAB_0001d300:\n      if (name == (debug_name *)0x0) {\n        local_30 = (char *)0x0;\nLAB_0001d329:\n        switch(dVar9) {\n        case DEBUG_KIND_ILLEGAL:\n          uVar7 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar7);\n          return 0;\n        case DEBUG_KIND_INDIRECT:\n          goto _L288;\n        case DEBUG_KIND_VOID:\n          UNRECOVERED_JUMPTABLE_00 = fns->void_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_INT:\n          bVar11 = (*fns->int_type)(fhandle,type->size,(type->u).kint);\n          return bVar11;\n        case DEBUG_KIND_FLOAT:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->float_type;\n          break;\n        case DEBUG_KIND_COMPLEX:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->complex_type;\n          break;\n        case DEBUG_KIND_BOOL:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->bool_type;\n          break;\n        case DEBUG_KIND_STRUCT:\n        case DEBUG_KIND_UNION:\n          pdVar12 = (type->u).kclass;\n          if (pdVar12 == (debug_class_type *)0x0) {\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            uVar16 = 0;\n          }\n          else {\n            uVar13 = pdVar12->id;\n            if (info->base_id < uVar13) {\n              uVar16 = info->mark;\n              if (pdVar12->mark == uVar16) {\nLAB_0001db48:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,uVar13,type->kind);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar12 = (type->u).kclass;\n              uVar16 = info->mark;\n              if (uVar16 == pdVar12->mark) {\n                uVar13 = pdVar12->id;\n                if (uVar13 <= info->base_id) {\n                  pcVar21 = "debug_write_type";\n                  uVar13 = 0x9d1;\nLAB_0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar13\n                                ,pcVar21);\n                }\n                goto LAB_0001db48;\n              }\n            }\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            pdVar12->mark = uVar16;\n            uVar16 = pdVar12->id;\n            dVar9 = type->kind;\n          }\n          bVar11 = (*p_Var18)(fhandle,local_30,uVar16,(uint)(dVar9 == DEBUG_KIND_STRUCT),uVar13);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          if ((((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar5 = ((type->u).kclass)->fields, ppdVar5 != (debug_field *)0x0)) &&\n             (pdVar19 = *ppdVar5, pdVar19 != (debug_field)0x0)) {\n            iVar17 = 4;\n            do {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              bVar11 = (*fns->struct_field)\n                                 (fhandle,pdVar19->name,(pdVar19->u).f.bitpos,(pdVar19->u).f.bitsize\n                                  ,pdVar19->visibility);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar19 = *(debug_field *)((int)((type->u).kindirect)->slot + iVar17);\n              iVar17 = iVar17 + 4;\n            } while (pdVar19 != (debug_field)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->end_struct_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_CLASS:\n        case DEBUG_KIND_UNION_CLASS:\n          local_34 = (type->u).kclass;\n          if (local_34 == (debug_class_type *)0x0) {\n            uVar13 = 0;\n            local_2c = (debug_array_type *)0x0;\n            local_34 = (debug_class_type *)0x0;\n          }\n          else {\n            local_2c = (debug_array_type *)local_34->id;\n            if (info->base_id < local_2c) {\n              uVar13 = info->mark;\n              if (local_34->mark == uVar13) {\nLAB_0001dafa:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,(uint)local_2c,dVar9);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              local_34 = (type->u).kclass;\n              uVar13 = info->mark;\n              local_2c = (debug_array_type *)local_34->id;\n              if (uVar13 == local_34->mark) {\n                if (local_2c <= info->base_id) {\n                  pcVar21 = "debug_write_class_type";\n                  uVar13 = 0xa7d;\n                  goto LAB_0001de3e;\n                }\n                dVar9 = type->kind;\n                goto LAB_0001dafa;\n              }\n            }\n            local_34->mark = uVar13;\n            local_34 = (debug_class_type *)local_34->vptrbase;\n            if (((debug_class_type *)type == local_34) || (local_34 == (debug_class_type *)0x0)) {\n              uVar13 = (uint)(local_34 != (debug_class_type *)0x0);\n              dVar9 = type->kind;\n            }\n            else {\n              bVar11 = debug_write_type(info,fns,fhandle,(debug_type_s *)local_34,(debug_name *)0x0)\n              ;\n              if (bVar11 == 0) {\n                return 0;\n              }\n              dVar9 = type->kind;\n              uVar13 = 1;\n            }\n          }\n          bVar11 = (*fns->start_class_type)\n                             (fhandle,local_30,(uint)local_2c,(uint)(dVar9 == DEBUG_KIND_CLASS),\n                              type->size,uVar13,(uint)((debug_class_type *)type == local_34));\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar12 = (type->u).kclass;\n          if (pdVar12 != (debug_class_type *)0x0) {\n            if ((pdVar12->fields != (debug_field *)0x0) &&\n               (pdVar19 = *pdVar12->fields, pdVar19 != (debug_field)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pcVar21 = (char *)(pdVar19->u).f.bitpos;\n                if (pdVar19->static_member == 0) {\n                  iVar8 = (*fns->struct_field)\n                                    (fhandle,pdVar19->name,(bfd_vma)pcVar21,(pdVar19->u).f.bitsize,\n                                     pdVar19->visibility);\n                }\n                else {\n                  iVar8 = (*fns->class_static_member)\n                                    (fhandle,pdVar19->name,pcVar21,pdVar19->visibility);\n                }\n                if (iVar8 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar19 = *(debug_field *)((int)pdVar12->fields + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar19 != (debug_field)0x0);\n            }\n            if ((pdVar12->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar20 = *pdVar12->baseclasses, pdVar20 != (debug_baseclass)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar20->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                bVar11 = (*fns->class_baseclass)\n                                   (fhandle,pdVar20->bitpos,pdVar20->is_virtual,pdVar20->visibility)\n                ;\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar20 = *(debug_baseclass *)((int)pdVar12->baseclasses + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar20 != (debug_baseclass)0x0);\n            }\n            if ((pdVar12->methods != (debug_method *)0x0) &&\n               (local_28 = *pdVar12->methods, local_28 != (debug_method)0x0)) {\n              local_24 = 0;\n              do {\n                bVar11 = (*fns->class_start_method)(fhandle,local_28->name);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                iVar17 = 4;\n                pdVar6 = *local_28->variants;\n                while (pdVar6 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar6->context != (debug_type_s *)0x0) &&\n                     (bVar11 = debug_write_type(info,fns,fhandle,pdVar6->context,(debug_name *)0x0),\n                     bVar11 == 0)) {\n                    return 0;\n                  }\n                  bVar11 = debug_write_type(info,fns,fhandle,pdVar6->type,(debug_name *)0x0);\n                  if (bVar11 == 0) {\n                    return 0;\n                  }\n                  if (pdVar6->voffset == 0xffffffff) {\n                    iVar8 = (*fns->class_static_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep);\n                  }\n                  else {\n                    iVar8 = (*fns->class_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep,pdVar6->voffset,\n                                       (uint)(pdVar6->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar8 == 0) {\n                    return 0;\n                  }\n                  piVar1 = (int *)((int)local_28->variants + iVar17);\n                  iVar17 = iVar17 + 4;\n                  pdVar6 = (debug_method_variant_s *)*piVar1;\n                }\n                bVar11 = (*fns->class_end_method)(fhandle);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                local_24 = local_24 + 1;\n                local_28 = ((type->u).kclass)->methods[local_24];\n              } while (local_28 != (debug_method)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->end_class_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_ENUM:\n          pdVar4 = (type->u).kenum;\n          if (pdVar4 == (debug_enum_type *)0x0) {\n            bVar11 = (*fns->enum_type)(fhandle,local_30,(char **)0x0,(bfd_signed_vma *)0x0);\n            return bVar11;\n          }\n          bVar11 = (*fns->enum_type)(fhandle,local_30,pdVar4->names,pdVar4->values);\n          return bVar11;\n        case DEBUG_KIND_POINTER:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->pointer_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_FUNCTION:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar15 = (type->u).kfunction;\n          if (pdVar15->arg_types == (debug_type_conflict *)0x0) {\n            iVar17 = -1;\n          }\n          else {\n            iVar17 = 0;\n            pdVar10 = *pdVar15->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar15 = (type->u).kfunction;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar15->arg_types[iVar17];\n            }\n          }\n          bVar11 = (*fns->function_type)(fhandle,iVar17,pdVar15->varargs);\n          return bVar11;\n        case DEBUG_KIND_REFERENCE:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->reference_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_RANGE:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);\n          return bVar11;\n        case DEBUG_KIND_ARRAY:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar3 = (type->u).karray;\n          bVar11 = (*fns->array_type)(fhandle,pdVar3->lower,pdVar3->upper,pdVar3->stringp);\n          return bVar11;\n        case DEBUG_KIND_SET:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          name = (debug_name *)((type->u).karray)->range_type;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->set_type;\n          break;\n        case DEBUG_KIND_OFFSET:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->offset_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_METHOD:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar14 = (type->u).kmethod;\n          if (pdVar14->arg_types == (debug_type_conflict *)0x0) {\n            iVar17 = -1;\n          }\n          else {\n            iVar17 = 0;\n            pdVar10 = *pdVar14->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar14 = (type->u).kmethod;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar14->arg_types[iVar17];\n            }\n          }\n          pdVar10 = pdVar14->domain_type;\n          if (pdVar10 != (debug_type_s *)0x0) {\n            bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar11 == 0) {\n              return 0;\n            }\n            pdVar14 = (type->u).kmethod;\n            pdVar10 = pdVar14->domain_type;\n          }\n          bVar11 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar17,\n                                       pdVar14->varargs);\n          return bVar11;\n        case DEBUG_KIND_CONST:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->const_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_VOLATILE:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->volatile_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_NAMED:\n          goto _L264;\n        case DEBUG_KIND_TAGGED:\n_L268:\n          local_2c = (type->u).karray;\n          name = (debug_name *)local_2c->element_type;\n          goto LAB_0001d36b;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\nLAB_0001d9c6:\n                    /* WARNING: Could not recover jumptable at 0x0001d9cd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        bVar11 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)name);\n        return bVar11;\n      }\n      name->mark = info->mark;\n      if (dVar9 != DEBUG_KIND_NAMED) {\n        if (dVar9 != DEBUG_KIND_TAGGED) {\n          if (name->kind != DEBUG_OBJECT_TAG) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = name->name;\n          goto LAB_0001d329;\n        }\n        goto _L268;\n      }\n_L264:\n      name = (debug_name *)0x0;\n    }\n    local_2c = (debug_array_type *)(type->u).knamed;\n    pdVar2 = (debug_name *)local_2c->element_type;\n    if (pdVar2->mark == info->mark) {\n      if (dVar9 == DEBUG_KIND_NAMED) {\n        name = (debug_name *)pdVar2->name;\n        UNRECOVERED_JUMPTABLE = fns->typedef_type;\n        goto LAB_0001d9c6;\n      }\nLAB_0001db7f:\n      pdVar10 = debug_get_real_type(info,type,(debug_type_real_list *)0x0);\n      if (pdVar10 != (debug_type_s *)0x0) {\n        dVar9 = pdVar10->kind;\n        pcVar21 = ((type->u).knamed)->name->name;\n        if ((dVar9 - DEBUG_KIND_STRUCT < 4) && ((pdVar10->u).kclass != (debug_class_type *)0x0)) {\n          uVar13 = ((pdVar10->u).kclass)->id;\n          if (uVar13 <= info->base_id) {\n            bVar11 = debug_set_class_id(info,pcVar21,pdVar10);\n            if (bVar11 == 0) {\n              return 0;\n            }\n            uVar13 = ((pdVar10->u).kclass)->id;\n            dVar9 = pdVar10->kind;\n            pcVar21 = ((type->u).knamed)->name->name;\n          }\n        }\n        else {\n          uVar13 = 0;\n        }\n        bVar11 = (*fns->tag_type)(fhandle,pcVar21,uVar13,dVar9);\n        return bVar11;\n      }\n      goto LAB_0001d6c3;\n    }\n    if (dVar9 != DEBUG_KIND_TAGGED) goto LAB_0001d300;\n    if (pdVar2 != name) goto LAB_0001db7f;\n    name->mark = info->mark;\nLAB_0001d36b:\n    type = local_2c->range_type;\n  } while( true );\n_L288:\n  type = *((type->u).kindirect)->slot;\n  if (type == (debug_type_conflict)0x0) {\nLAB_0001d6c3:\n    UNRECOVERED_JUMPTABLE_00 = fns->empty_type;\nLAB_0001d69f:\n                    /* WARNING: Could not recover jumptable at 0x0001d6a6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    bVar11 = (*UNRECOVERED_JUMPTABLE_00)(fhandle);\n    return bVar11;\n  }\n  goto LAB_0001d2f6;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "debug_write_type(debug_handle *info,debug_write_fns *fns,void *fhandle,debug_type_s *type,\n                debug_name *name)" identifier (parameter_list "(debug_handle *info,debug_write_fns *fns,void *fhandle,debug_type_s *type,\n                debug_name *name)" ( (parameter_declaration "debug_handle *info" type_identifier (pointer_declarator "*info" * identifier)) , (parameter_declaration "debug_write_fns *fns" type_identifier (pointer_declarator "*fns" * identifier)) , (parameter_declaration "void *fhandle" primitive_type (pointer_declarator "*fhandle" * identifier)) , (parameter_declaration "debug_type_s *type" type_identifier (pointer_declarator "*type" * identifier)) , (parameter_declaration "debug_name *name" type_identifier (pointer_declarator "*name" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  debug_name *pdVar2;\n  debug_array_type *pdVar3;\n  debug_enum_type *pdVar4;\n  debug_field *ppdVar5;\n  debug_method_variant_s *pdVar6;\n  _func_bfd_boolean_void_ptr *UNRECOVERED_JUMPTABLE_00;\n  undefined4 uVar7;\n  int iVar8;\n  _func_bfd_boolean_void_ptr_char_ptr *UNRECOVERED_JUMPTABLE;\n  debug_type_kind dVar9;\n  debug_type_s *pdVar10;\n  bfd_boolean bVar11;\n  debug_class_type *pdVar12;\n  uint uVar13;\n  debug_method_type *pdVar14;\n  debug_function_type *pdVar15;\n  uint uVar16;\n  int iVar17;\n  _func_bfd_boolean_void_ptr_char_ptr_uint_bfd_boolean_uint *p_Var18;\n  debug_field pdVar19;\n  debug_baseclass pdVar20;\n  char *pcVar21;\n  debug_class_type *local_34;\n  char *local_30;\n  debug_array_type *local_2c;\n  debug_method local_28;\n  int local_24;\n  \nLAB_0001d2f6:\n  do {\n    for (; dVar9 = type->kind, 1 < dVar9 - DEBUG_KIND_NAMED; type = ((type->u).karray)->range_type)\n    {\nLAB_0001d300:\n      if (name == (debug_name *)0x0) {\n        local_30 = (char *)0x0;\nLAB_0001d329:\n        switch(dVar9) {\n        case DEBUG_KIND_ILLEGAL:\n          uVar7 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar7);\n          return 0;\n        case DEBUG_KIND_INDIRECT:\n          goto _L288;\n        case DEBUG_KIND_VOID:\n          UNRECOVERED_JUMPTABLE_00 = fns->void_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_INT:\n          bVar11 = (*fns->int_type)(fhandle,type->size,(type->u).kint);\n          return bVar11;\n        case DEBUG_KIND_FLOAT:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->float_type;\n          break;\n        case DEBUG_KIND_COMPLEX:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->complex_type;\n          break;\n        case DEBUG_KIND_BOOL:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->bool_type;\n          break;\n        case DEBUG_KIND_STRUCT:\n        case DEBUG_KIND_UNION:\n          pdVar12 = (type->u).kclass;\n          if (pdVar12 == (debug_class_type *)0x0) {\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            uVar16 = 0;\n          }\n          else {\n            uVar13 = pdVar12->id;\n            if (info->base_id < uVar13) {\n              uVar16 = info->mark;\n              if (pdVar12->mark == uVar16) {\nLAB_0001db48:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,uVar13,type->kind);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar12 = (type->u).kclass;\n              uVar16 = info->mark;\n              if (uVar16 == pdVar12->mark) {\n                uVar13 = pdVar12->id;\n                if (uVar13 <= info->base_id) {\n                  pcVar21 = "debug_write_type";\n                  uVar13 = 0x9d1;\nLAB_0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar13\n                                ,pcVar21);\n                }\n                goto LAB_0001db48;\n              }\n            }\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            pdVar12->mark = uVar16;\n            uVar16 = pdVar12->id;\n            dVar9 = type->kind;\n          }\n          bVar11 = (*p_Var18)(fhandle,local_30,uVar16,(uint)(dVar9 == DEBUG_KIND_STRUCT),uVar13);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          if ((((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar5 = ((type->u).kclass)->fields, ppdVar5 != (debug_field *)0x0)) &&\n             (pdVar19 = *ppdVar5, pdVar19 != (debug_field)0x0)) {\n            iVar17 = 4;\n            do {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              bVar11 = (*fns->struct_field)\n                                 (fhandle,pdVar19->name,(pdVar19->u).f.bitpos,(pdVar19->u).f.bitsize\n                                  ,pdVar19->visibility);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar19 = *(debug_field *)((int)((type->u).kindirect)->slot + iVar17);\n              iVar17 = iVar17 + 4;\n            } while (pdVar19 != (debug_field)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->end_struct_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_CLASS:\n        case DEBUG_KIND_UNION_CLASS:\n          local_34 = (type->u).kclass;\n          if (local_34 == (debug_class_type *)0x0) {\n            uVar13 = 0;\n            local_2c = (debug_array_type *)0x0;\n            local_34 = (debug_class_type *)0x0;\n          }\n          else {\n            local_2c = (debug_array_type *)local_34->id;\n            if (info->base_id < local_2c) {\n              uVar13 = info->mark;\n              if (local_34->mark == uVar13) {\nLAB_0001dafa:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,(uint)local_2c,dVar9);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              local_34 = (type->u).kclass;\n              uVar13 = info->mark;\n              local_2c = (debug_array_type *)local_34->id;\n              if (uVar13 == local_34->mark) {\n                if (local_2c <= info->base_id) {\n                  pcVar21 = "debug_write_class_type";\n                  uVar13 = 0xa7d;\n                  goto LAB_0001de3e;\n                }\n                dVar9 = type->kind;\n                goto LAB_0001dafa;\n              }\n            }\n            local_34->mark = uVar13;\n            local_34 = (debug_class_type *)local_34->vptrbase;\n            if (((debug_class_type *)type == local_34) || (local_34 == (debug_class_type *)0x0)) {\n              uVar13 = (uint)(local_34 != (debug_class_type *)0x0);\n              dVar9 = type->kind;\n            }\n            else {\n              bVar11 = debug_write_type(info,fns,fhandle,(debug_type_s *)local_34,(debug_name *)0x0)\n              ;\n              if (bVar11 == 0) {\n                return 0;\n              }\n              dVar9 = type->kind;\n              uVar13 = 1;\n            }\n          }\n          bVar11 = (*fns->start_class_type)\n                             (fhandle,local_30,(uint)local_2c,(uint)(dVar9 == DEBUG_KIND_CLASS),\n                              type->size,uVar13,(uint)((debug_class_type *)type == local_34));\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar12 = (type->u).kclass;\n          if (pdVar12 != (debug_class_type *)0x0) {\n            if ((pdVar12->fields != (debug_field *)0x0) &&\n               (pdVar19 = *pdVar12->fields, pdVar19 != (debug_field)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pcVar21 = (char *)(pdVar19->u).f.bitpos;\n                if (pdVar19->static_member == 0) {\n                  iVar8 = (*fns->struct_field)\n                                    (fhandle,pdVar19->name,(bfd_vma)pcVar21,(pdVar19->u).f.bitsize,\n                                     pdVar19->visibility);\n                }\n                else {\n                  iVar8 = (*fns->class_static_member)\n                                    (fhandle,pdVar19->name,pcVar21,pdVar19->visibility);\n                }\n                if (iVar8 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar19 = *(debug_field *)((int)pdVar12->fields + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar19 != (debug_field)0x0);\n            }\n            if ((pdVar12->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar20 = *pdVar12->baseclasses, pdVar20 != (debug_baseclass)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar20->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                bVar11 = (*fns->class_baseclass)\n                                   (fhandle,pdVar20->bitpos,pdVar20->is_virtual,pdVar20->visibility)\n                ;\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar20 = *(debug_baseclass *)((int)pdVar12->baseclasses + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar20 != (debug_baseclass)0x0);\n            }\n            if ((pdVar12->methods != (debug_method *)0x0) &&\n               (local_28 = *pdVar12->methods, local_28 != (debug_method)0x0)) {\n              local_24 = 0;\n              do {\n                bVar11 = (*fns->class_start_method)(fhandle,local_28->name);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                iVar17 = 4;\n                pdVar6 = *local_28->variants;\n                while (pdVar6 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar6->context != (debug_type_s *)0x0) &&\n                     (bVar11 = debug_write_type(info,fns,fhandle,pdVar6->context,(debug_name *)0x0),\n                     bVar11 == 0)) {\n                    return 0;\n                  }\n                  bVar11 = debug_write_type(info,fns,fhandle,pdVar6->type,(debug_name *)0x0);\n                  if (bVar11 == 0) {\n                    return 0;\n                  }\n                  if (pdVar6->voffset == 0xffffffff) {\n                    iVar8 = (*fns->class_static_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep);\n                  }\n                  else {\n                    iVar8 = (*fns->class_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep,pdVar6->voffset,\n                                       (uint)(pdVar6->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar8 == 0) {\n                    return 0;\n                  }\n                  piVar1 = (int *)((int)local_28->variants + iVar17);\n                  iVar17 = iVar17 + 4;\n                  pdVar6 = (debug_method_variant_s *)*piVar1;\n                }\n                bVar11 = (*fns->class_end_method)(fhandle);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                local_24 = local_24 + 1;\n                local_28 = ((type->u).kclass)->methods[local_24];\n              } while (local_28 != (debug_method)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->end_class_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_ENUM:\n          pdVar4 = (type->u).kenum;\n          if (pdVar4 == (debug_enum_type *)0x0) {\n            bVar11 = (*fns->enum_type)(fhandle,local_30,(char **)0x0,(bfd_signed_vma *)0x0);\n            return bVar11;\n          }\n          bVar11 = (*fns->enum_type)(fhandle,local_30,pdVar4->names,pdVar4->values);\n          return bVar11;\n        case DEBUG_KIND_POINTER:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->pointer_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_FUNCTION:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar15 = (type->u).kfunction;\n          if (pdVar15->arg_types == (debug_type_conflict *)0x0) {\n            iVar17 = -1;\n          }\n          else {\n            iVar17 = 0;\n            pdVar10 = *pdVar15->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar15 = (type->u).kfunction;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar15->arg_types[iVar17];\n            }\n          }\n          bVar11 = (*fns->function_type)(fhandle,iVar17,pdVar15->varargs);\n          return bVar11;\n        case DEBUG_KIND_REFERENCE:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->reference_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_RANGE:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);\n          return bVar11;\n        case DEBUG_KIND_ARRAY:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar3 = (type->u).karray;\n          bVar11 = (*fns->array_type)(fhandle,pdVar3->lower,pdVar3->upper,pdVar3->stringp);\n          return bVar11;\n        case DEBUG_KIND_SET:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          name = (debug_name *)((type->u).karray)->range_type;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->set_type;\n          break;\n        case DEBUG_KIND_OFFSET:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->offset_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_METHOD:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar14 = (type->u).kmethod;\n          if (pdVar14->arg_types == (debug_type_conflict *)0x0) {\n            iVar17 = -1;\n          }\n          else {\n            iVar17 = 0;\n            pdVar10 = *pdVar14->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar14 = (type->u).kmethod;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar14->arg_types[iVar17];\n            }\n          }\n          pdVar10 = pdVar14->domain_type;\n          if (pdVar10 != (debug_type_s *)0x0) {\n            bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar11 == 0) {\n              return 0;\n            }\n            pdVar14 = (type->u).kmethod;\n            pdVar10 = pdVar14->domain_type;\n          }\n          bVar11 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar17,\n                                       pdVar14->varargs);\n          return bVar11;\n        case DEBUG_KIND_CONST:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->const_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_VOLATILE:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->volatile_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_NAMED:\n          goto _L264;\n        case DEBUG_KIND_TAGGED:\n_L268:\n          local_2c = (type->u).karray;\n          name = (debug_name *)local_2c->element_type;\n          goto LAB_0001d36b;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\nLAB_0001d9c6:\n                    /* WARNING: Could not recover jumptable at 0x0001d9cd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        bVar11 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)name);\n        return bVar11;\n      }\n      name->mark = info->mark;\n      if (dVar9 != DEBUG_KIND_NAMED) {\n        if (dVar9 != DEBUG_KIND_TAGGED) {\n          if (name->kind != DEBUG_OBJECT_TAG) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = name->name;\n          goto LAB_0001d329;\n        }\n        goto _L268;\n      }\n_L264:\n      name = (debug_name *)0x0;\n    }\n    local_2c = (debug_array_type *)(type->u).knamed;\n    pdVar2 = (debug_name *)local_2c->element_type;\n    if (pdVar2->mark == info->mark) {\n      if (dVar9 == DEBUG_KIND_NAMED) {\n        name = (debug_name *)pdVar2->name;\n        UNRECOVERED_JUMPTABLE = fns->typedef_type;\n        goto LAB_0001d9c6;\n      }\nLAB_0001db7f:\n      pdVar10 = debug_get_real_type(info,type,(debug_type_real_list *)0x0);\n      if (pdVar10 != (debug_type_s *)0x0) {\n        dVar9 = pdVar10->kind;\n        pcVar21 = ((type->u).knamed)->name->name;\n        if ((dVar9 - DEBUG_KIND_STRUCT < 4) && ((pdVar10->u).kclass != (debug_class_type *)0x0)) {\n          uVar13 = ((pdVar10->u).kclass)->id;\n          if (uVar13 <= info->base_id) {\n            bVar11 = debug_set_class_id(info,pcVar21,pdVar10);\n            if (bVar11 == 0) {\n              return 0;\n            }\n            uVar13 = ((pdVar10->u).kclass)->id;\n            dVar9 = pdVar10->kind;\n            pcVar21 = ((type->u).knamed)->name->name;\n          }\n        }\n        else {\n          uVar13 = 0;\n        }\n        bVar11 = (*fns->tag_type)(fhandle,pcVar21,uVar13,dVar9);\n        return bVar11;\n      }\n      goto LAB_0001d6c3;\n    }\n    if (dVar9 != DEBUG_KIND_TAGGED) goto LAB_0001d300;\n    if (pdVar2 != name) goto LAB_0001db7f;\n    name->mark = info->mark;\nLAB_0001d36b:\n    type = local_2c->range_type;\n  } while( true );\n_L288:\n  type = *((type->u).kindirect)->slot;\n  if (type == (debug_type_conflict)0x0) {\nLAB_0001d6c3:\n    UNRECOVERED_JUMPTABLE_00 = fns->empty_type;\nLAB_0001d69f:\n                    /* WARNING: Could not recover jumptable at 0x0001d6a6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    bVar11 = (*UNRECOVERED_JUMPTABLE_00)(fhandle);\n    return bVar11;\n  }\n  goto LAB_0001d2f6;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "debug_name *pdVar2;" type_identifier (pointer_declarator "*pdVar2" * identifier) ;) (declaration "debug_array_type *pdVar3;" type_identifier (pointer_declarator "*pdVar3" * identifier) ;) (declaration "debug_enum_type *pdVar4;" type_identifier (pointer_declarator "*pdVar4" * identifier) ;) (declaration "debug_field *ppdVar5;" type_identifier (pointer_declarator "*ppdVar5" * identifier) ;) (declaration "debug_method_variant_s *pdVar6;" type_identifier (pointer_declarator "*pdVar6" * identifier) ;) (declaration "_func_bfd_boolean_void_ptr *UNRECOVERED_JUMPTABLE_00;" type_identifier (pointer_declarator "*UNRECOVERED_JUMPTABLE_00" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "_func_bfd_boolean_void_ptr_char_ptr *UNRECOVERED_JUMPTABLE;" type_identifier (pointer_declarator "*UNRECOVERED_JUMPTABLE" * identifier) ;) (declaration "debug_type_kind dVar9;" type_identifier identifier ;) (declaration "debug_type_s *pdVar10;" type_identifier (pointer_declarator "*pdVar10" * identifier) ;) (declaration "bfd_boolean bVar11;" type_identifier identifier ;) (declaration "debug_class_type *pdVar12;" type_identifier (pointer_declarator "*pdVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "debug_method_type *pdVar14;" type_identifier (pointer_declarator "*pdVar14" * identifier) ;) (declaration "debug_function_type *pdVar15;" type_identifier (pointer_declarator "*pdVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "_func_bfd_boolean_void_ptr_char_ptr_uint_bfd_boolean_uint *p_Var18;" type_identifier (pointer_declarator "*p_Var18" * identifier) ;) (declaration "debug_field pdVar19;" type_identifier identifier ;) (declaration "debug_baseclass pdVar20;" type_identifier identifier ;) (declaration "char *pcVar21;" primitive_type (pointer_declarator "*pcVar21" * identifier) ;) (declaration "debug_class_type *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "char *local_30;" primitive_type (pointer_declarator "*local_30" * identifier) ;) (declaration "debug_array_type *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (declaration "debug_method local_28;" type_identifier identifier ;) (declaration "int local_24;" primitive_type identifier ;) (labeled_statement "LAB_0001d2f6:\n  do {\n    for (; dVar9 = type->kind, 1 < dVar9 - DEBUG_KIND_NAMED; type = ((type->u).karray)->range_type)\n    {\nLAB_0001d300:\n      if (name == (debug_name *)0x0) {\n        local_30 = (char *)0x0;\nLAB_0001d329:\n        switch(dVar9) {\n        case DEBUG_KIND_ILLEGAL:\n          uVar7 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar7);\n          return 0;\n        case DEBUG_KIND_INDIRECT:\n          goto _L288;\n        case DEBUG_KIND_VOID:\n          UNRECOVERED_JUMPTABLE_00 = fns->void_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_INT:\n          bVar11 = (*fns->int_type)(fhandle,type->size,(type->u).kint);\n          return bVar11;\n        case DEBUG_KIND_FLOAT:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->float_type;\n          break;\n        case DEBUG_KIND_COMPLEX:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->complex_type;\n          break;\n        case DEBUG_KIND_BOOL:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->bool_type;\n          break;\n        case DEBUG_KIND_STRUCT:\n        case DEBUG_KIND_UNION:\n          pdVar12 = (type->u).kclass;\n          if (pdVar12 == (debug_class_type *)0x0) {\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            uVar16 = 0;\n          }\n          else {\n            uVar13 = pdVar12->id;\n            if (info->base_id < uVar13) {\n              uVar16 = info->mark;\n              if (pdVar12->mark == uVar16) {\nLAB_0001db48:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,uVar13,type->kind);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar12 = (type->u).kclass;\n              uVar16 = info->mark;\n              if (uVar16 == pdVar12->mark) {\n                uVar13 = pdVar12->id;\n                if (uVar13 <= info->base_id) {\n                  pcVar21 = "debug_write_type";\n                  uVar13 = 0x9d1;\nLAB_0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar13\n                                ,pcVar21);\n                }\n                goto LAB_0001db48;\n              }\n            }\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            pdVar12->mark = uVar16;\n            uVar16 = pdVar12->id;\n            dVar9 = type->kind;\n          }\n          bVar11 = (*p_Var18)(fhandle,local_30,uVar16,(uint)(dVar9 == DEBUG_KIND_STRUCT),uVar13);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          if ((((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar5 = ((type->u).kclass)->fields, ppdVar5 != (debug_field *)0x0)) &&\n             (pdVar19 = *ppdVar5, pdVar19 != (debug_field)0x0)) {\n            iVar17 = 4;\n            do {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              bVar11 = (*fns->struct_field)\n                                 (fhandle,pdVar19->name,(pdVar19->u).f.bitpos,(pdVar19->u).f.bitsize\n                                  ,pdVar19->visibility);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar19 = *(debug_field *)((int)((type->u).kindirect)->slot + iVar17);\n              iVar17 = iVar17 + 4;\n            } while (pdVar19 != (debug_field)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->end_struct_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_CLASS:\n        case DEBUG_KIND_UNION_CLASS:\n          local_34 = (type->u).kclass;\n          if (local_34 == (debug_class_type *)0x0) {\n            uVar13 = 0;\n            local_2c = (debug_array_type *)0x0;\n            local_34 = (debug_class_type *)0x0;\n          }\n          else {\n            local_2c = (debug_array_type *)local_34->id;\n            if (info->base_id < local_2c) {\n              uVar13 = info->mark;\n              if (local_34->mark == uVar13) {\nLAB_0001dafa:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,(uint)local_2c,dVar9);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              local_34 = (type->u).kclass;\n              uVar13 = info->mark;\n              local_2c = (debug_array_type *)local_34->id;\n              if (uVar13 == local_34->mark) {\n                if (local_2c <= info->base_id) {\n                  pcVar21 = "debug_write_class_type";\n                  uVar13 = 0xa7d;\n                  goto LAB_0001de3e;\n                }\n                dVar9 = type->kind;\n                goto LAB_0001dafa;\n              }\n            }\n            local_34->mark = uVar13;\n            local_34 = (debug_class_type *)local_34->vptrbase;\n            if (((debug_class_type *)type == local_34) || (local_34 == (debug_class_type *)0x0)) {\n              uVar13 = (uint)(local_34 != (debug_class_type *)0x0);\n              dVar9 = type->kind;\n            }\n            else {\n              bVar11 = debug_write_type(info,fns,fhandle,(debug_type_s *)local_34,(debug_name *)0x0)\n              ;\n              if (bVar11 == 0) {\n                return 0;\n              }\n              dVar9 = type->kind;\n              uVar13 = 1;\n            }\n          }\n          bVar11 = (*fns->start_class_type)\n                             (fhandle,local_30,(uint)local_2c,(uint)(dVar9 == DEBUG_KIND_CLASS),\n                              type->size,uVar13,(uint)((debug_class_type *)type == local_34));\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar12 = (type->u).kclass;\n          if (pdVar12 != (debug_class_type *)0x0) {\n            if ((pdVar12->fields != (debug_field *)0x0) &&\n               (pdVar19 = *pdVar12->fields, pdVar19 != (debug_field)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pcVar21 = (char *)(pdVar19->u).f.bitpos;\n                if (pdVar19->static_member == 0) {\n                  iVar8 = (*fns->struct_field)\n                                    (fhandle,pdVar19->name,(bfd_vma)pcVar21,(pdVar19->u).f.bitsize,\n                                     pdVar19->visibility);\n                }\n                else {\n                  iVar8 = (*fns->class_static_member)\n                                    (fhandle,pdVar19->name,pcVar21,pdVar19->visibility);\n                }\n                if (iVar8 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar19 = *(debug_field *)((int)pdVar12->fields + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar19 != (debug_field)0x0);\n            }\n            if ((pdVar12->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar20 = *pdVar12->baseclasses, pdVar20 != (debug_baseclass)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar20->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                bVar11 = (*fns->class_baseclass)\n                                   (fhandle,pdVar20->bitpos,pdVar20->is_virtual,pdVar20->visibility)\n                ;\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar20 = *(debug_baseclass *)((int)pdVar12->baseclasses + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar20 != (debug_baseclass)0x0);\n            }\n            if ((pdVar12->methods != (debug_method *)0x0) &&\n               (local_28 = *pdVar12->methods, local_28 != (debug_method)0x0)) {\n              local_24 = 0;\n              do {\n                bVar11 = (*fns->class_start_method)(fhandle,local_28->name);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                iVar17 = 4;\n                pdVar6 = *local_28->variants;\n                while (pdVar6 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar6->context != (debug_type_s *)0x0) &&\n                     (bVar11 = debug_write_type(info,fns,fhandle,pdVar6->context,(debug_name *)0x0),\n                     bVar11 == 0)) {\n                    return 0;\n                  }\n                  bVar11 = debug_write_type(info,fns,fhandle,pdVar6->type,(debug_name *)0x0);\n                  if (bVar11 == 0) {\n                    return 0;\n                  }\n                  if (pdVar6->voffset == 0xffffffff) {\n                    iVar8 = (*fns->class_static_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep);\n                  }\n                  else {\n                    iVar8 = (*fns->class_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep,pdVar6->voffset,\n                                       (uint)(pdVar6->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar8 == 0) {\n                    return 0;\n                  }\n                  piVar1 = (int *)((int)local_28->variants + iVar17);\n                  iVar17 = iVar17 + 4;\n                  pdVar6 = (debug_method_variant_s *)*piVar1;\n                }\n                bVar11 = (*fns->class_end_method)(fhandle);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                local_24 = local_24 + 1;\n                local_28 = ((type->u).kclass)->methods[local_24];\n              } while (local_28 != (debug_method)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->end_class_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_ENUM:\n          pdVar4 = (type->u).kenum;\n          if (pdVar4 == (debug_enum_type *)0x0) {\n            bVar11 = (*fns->enum_type)(fhandle,local_30,(char **)0x0,(bfd_signed_vma *)0x0);\n            return bVar11;\n          }\n          bVar11 = (*fns->enum_type)(fhandle,local_30,pdVar4->names,pdVar4->values);\n          return bVar11;\n        case DEBUG_KIND_POINTER:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->pointer_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_FUNCTION:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar15 = (type->u).kfunction;\n          if (pdVar15->arg_types == (debug_type_conflict *)0x0) {\n            iVar17 = -1;\n          }\n          else {\n            iVar17 = 0;\n            pdVar10 = *pdVar15->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar15 = (type->u).kfunction;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar15->arg_types[iVar17];\n            }\n          }\n          bVar11 = (*fns->function_type)(fhandle,iVar17,pdVar15->varargs);\n          return bVar11;\n        case DEBUG_KIND_REFERENCE:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->reference_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_RANGE:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);\n          return bVar11;\n        case DEBUG_KIND_ARRAY:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar3 = (type->u).karray;\n          bVar11 = (*fns->array_type)(fhandle,pdVar3->lower,pdVar3->upper,pdVar3->stringp);\n          return bVar11;\n        case DEBUG_KIND_SET:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          name = (debug_name *)((type->u).karray)->range_type;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->set_type;\n          break;\n        case DEBUG_KIND_OFFSET:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->offset_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_METHOD:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar14 = (type->u).kmethod;\n          if (pdVar14->arg_types == (debug_type_conflict *)0x0) {\n            iVar17 = -1;\n          }\n          else {\n            iVar17 = 0;\n            pdVar10 = *pdVar14->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar14 = (type->u).kmethod;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar14->arg_types[iVar17];\n            }\n          }\n          pdVar10 = pdVar14->domain_type;\n          if (pdVar10 != (debug_type_s *)0x0) {\n            bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar11 == 0) {\n              return 0;\n            }\n            pdVar14 = (type->u).kmethod;\n            pdVar10 = pdVar14->domain_type;\n          }\n          bVar11 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar17,\n                                       pdVar14->varargs);\n          return bVar11;\n        case DEBUG_KIND_CONST:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->const_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_VOLATILE:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->volatile_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_NAMED:\n          goto _L264;\n        case DEBUG_KIND_TAGGED:\n_L268:\n          local_2c = (type->u).karray;\n          name = (debug_name *)local_2c->element_type;\n          goto LAB_0001d36b;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\nLAB_0001d9c6:\n                    /* WARNING: Could not recover jumptable at 0x0001d9cd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        bVar11 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)name);\n        return bVar11;\n      }\n      name->mark = info->mark;\n      if (dVar9 != DEBUG_KIND_NAMED) {\n        if (dVar9 != DEBUG_KIND_TAGGED) {\n          if (name->kind != DEBUG_OBJECT_TAG) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = name->name;\n          goto LAB_0001d329;\n        }\n        goto _L268;\n      }\n_L264:\n      name = (debug_name *)0x0;\n    }\n    local_2c = (debug_array_type *)(type->u).knamed;\n    pdVar2 = (debug_name *)local_2c->element_type;\n    if (pdVar2->mark == info->mark) {\n      if (dVar9 == DEBUG_KIND_NAMED) {\n        name = (debug_name *)pdVar2->name;\n        UNRECOVERED_JUMPTABLE = fns->typedef_type;\n        goto LAB_0001d9c6;\n      }\nLAB_0001db7f:\n      pdVar10 = debug_get_real_type(info,type,(debug_type_real_list *)0x0);\n      if (pdVar10 != (debug_type_s *)0x0) {\n        dVar9 = pdVar10->kind;\n        pcVar21 = ((type->u).knamed)->name->name;\n        if ((dVar9 - DEBUG_KIND_STRUCT < 4) && ((pdVar10->u).kclass != (debug_class_type *)0x0)) {\n          uVar13 = ((pdVar10->u).kclass)->id;\n          if (uVar13 <= info->base_id) {\n            bVar11 = debug_set_class_id(info,pcVar21,pdVar10);\n            if (bVar11 == 0) {\n              return 0;\n            }\n            uVar13 = ((pdVar10->u).kclass)->id;\n            dVar9 = pdVar10->kind;\n            pcVar21 = ((type->u).knamed)->name->name;\n          }\n        }\n        else {\n          uVar13 = 0;\n        }\n        bVar11 = (*fns->tag_type)(fhandle,pcVar21,uVar13,dVar9);\n        return bVar11;\n      }\n      goto LAB_0001d6c3;\n    }\n    if (dVar9 != DEBUG_KIND_TAGGED) goto LAB_0001d300;\n    if (pdVar2 != name) goto LAB_0001db7f;\n    name->mark = info->mark;\nLAB_0001d36b:\n    type = local_2c->range_type;\n  } while( true );" statement_identifier : (do_statement "do {\n    for (; dVar9 = type->kind, 1 < dVar9 - DEBUG_KIND_NAMED; type = ((type->u).karray)->range_type)\n    {\nLAB_0001d300:\n      if (name == (debug_name *)0x0) {\n        local_30 = (char *)0x0;\nLAB_0001d329:\n        switch(dVar9) {\n        case DEBUG_KIND_ILLEGAL:\n          uVar7 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar7);\n          return 0;\n        case DEBUG_KIND_INDIRECT:\n          goto _L288;\n        case DEBUG_KIND_VOID:\n          UNRECOVERED_JUMPTABLE_00 = fns->void_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_INT:\n          bVar11 = (*fns->int_type)(fhandle,type->size,(type->u).kint);\n          return bVar11;\n        case DEBUG_KIND_FLOAT:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->float_type;\n          break;\n        case DEBUG_KIND_COMPLEX:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->complex_type;\n          break;\n        case DEBUG_KIND_BOOL:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->bool_type;\n          break;\n        case DEBUG_KIND_STRUCT:\n        case DEBUG_KIND_UNION:\n          pdVar12 = (type->u).kclass;\n          if (pdVar12 == (debug_class_type *)0x0) {\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            uVar16 = 0;\n          }\n          else {\n            uVar13 = pdVar12->id;\n            if (info->base_id < uVar13) {\n              uVar16 = info->mark;\n              if (pdVar12->mark == uVar16) {\nLAB_0001db48:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,uVar13,type->kind);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar12 = (type->u).kclass;\n              uVar16 = info->mark;\n              if (uVar16 == pdVar12->mark) {\n                uVar13 = pdVar12->id;\n                if (uVar13 <= info->base_id) {\n                  pcVar21 = "debug_write_type";\n                  uVar13 = 0x9d1;\nLAB_0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar13\n                                ,pcVar21);\n                }\n                goto LAB_0001db48;\n              }\n            }\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            pdVar12->mark = uVar16;\n            uVar16 = pdVar12->id;\n            dVar9 = type->kind;\n          }\n          bVar11 = (*p_Var18)(fhandle,local_30,uVar16,(uint)(dVar9 == DEBUG_KIND_STRUCT),uVar13);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          if ((((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar5 = ((type->u).kclass)->fields, ppdVar5 != (debug_field *)0x0)) &&\n             (pdVar19 = *ppdVar5, pdVar19 != (debug_field)0x0)) {\n            iVar17 = 4;\n            do {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              bVar11 = (*fns->struct_field)\n                                 (fhandle,pdVar19->name,(pdVar19->u).f.bitpos,(pdVar19->u).f.bitsize\n                                  ,pdVar19->visibility);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar19 = *(debug_field *)((int)((type->u).kindirect)->slot + iVar17);\n              iVar17 = iVar17 + 4;\n            } while (pdVar19 != (debug_field)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->end_struct_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_CLASS:\n        case DEBUG_KIND_UNION_CLASS:\n          local_34 = (type->u).kclass;\n          if (local_34 == (debug_class_type *)0x0) {\n            uVar13 = 0;\n            local_2c = (debug_array_type *)0x0;\n            local_34 = (debug_class_type *)0x0;\n          }\n          else {\n            local_2c = (debug_array_type *)local_34->id;\n            if (info->base_id < local_2c) {\n              uVar13 = info->mark;\n              if (local_34->mark == uVar13) {\nLAB_0001dafa:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,(uint)local_2c,dVar9);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              local_34 = (type->u).kclass;\n              uVar13 = info->mark;\n              local_2c = (debug_array_type *)local_34->id;\n              if (uVar13 == local_34->mark) {\n                if (local_2c <= info->base_id) {\n                  pcVar21 = "debug_write_class_type";\n                  uVar13 = 0xa7d;\n                  goto LAB_0001de3e;\n                }\n                dVar9 = type->kind;\n                goto LAB_0001dafa;\n              }\n            }\n            local_34->mark = uVar13;\n            local_34 = (debug_class_type *)local_34->vptrbase;\n            if (((debug_class_type *)type == local_34) || (local_34 == (debug_class_type *)0x0)) {\n              uVar13 = (uint)(local_34 != (debug_class_type *)0x0);\n              dVar9 = type->kind;\n            }\n            else {\n              bVar11 = debug_write_type(info,fns,fhandle,(debug_type_s *)local_34,(debug_name *)0x0)\n              ;\n              if (bVar11 == 0) {\n                return 0;\n              }\n              dVar9 = type->kind;\n              uVar13 = 1;\n            }\n          }\n          bVar11 = (*fns->start_class_type)\n                             (fhandle,local_30,(uint)local_2c,(uint)(dVar9 == DEBUG_KIND_CLASS),\n                              type->size,uVar13,(uint)((debug_class_type *)type == local_34));\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar12 = (type->u).kclass;\n          if (pdVar12 != (debug_class_type *)0x0) {\n            if ((pdVar12->fields != (debug_field *)0x0) &&\n               (pdVar19 = *pdVar12->fields, pdVar19 != (debug_field)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pcVar21 = (char *)(pdVar19->u).f.bitpos;\n                if (pdVar19->static_member == 0) {\n                  iVar8 = (*fns->struct_field)\n                                    (fhandle,pdVar19->name,(bfd_vma)pcVar21,(pdVar19->u).f.bitsize,\n                                     pdVar19->visibility);\n                }\n                else {\n                  iVar8 = (*fns->class_static_member)\n                                    (fhandle,pdVar19->name,pcVar21,pdVar19->visibility);\n                }\n                if (iVar8 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar19 = *(debug_field *)((int)pdVar12->fields + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar19 != (debug_field)0x0);\n            }\n            if ((pdVar12->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar20 = *pdVar12->baseclasses, pdVar20 != (debug_baseclass)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar20->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                bVar11 = (*fns->class_baseclass)\n                                   (fhandle,pdVar20->bitpos,pdVar20->is_virtual,pdVar20->visibility)\n                ;\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar20 = *(debug_baseclass *)((int)pdVar12->baseclasses + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar20 != (debug_baseclass)0x0);\n            }\n            if ((pdVar12->methods != (debug_method *)0x0) &&\n               (local_28 = *pdVar12->methods, local_28 != (debug_method)0x0)) {\n              local_24 = 0;\n              do {\n                bVar11 = (*fns->class_start_method)(fhandle,local_28->name);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                iVar17 = 4;\n                pdVar6 = *local_28->variants;\n                while (pdVar6 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar6->context != (debug_type_s *)0x0) &&\n                     (bVar11 = debug_write_type(info,fns,fhandle,pdVar6->context,(debug_name *)0x0),\n                     bVar11 == 0)) {\n                    return 0;\n                  }\n                  bVar11 = debug_write_type(info,fns,fhandle,pdVar6->type,(debug_name *)0x0);\n                  if (bVar11 == 0) {\n                    return 0;\n                  }\n                  if (pdVar6->voffset == 0xffffffff) {\n                    iVar8 = (*fns->class_static_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep);\n                  }\n                  else {\n                    iVar8 = (*fns->class_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep,pdVar6->voffset,\n                                       (uint)(pdVar6->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar8 == 0) {\n                    return 0;\n                  }\n                  piVar1 = (int *)((int)local_28->variants + iVar17);\n                  iVar17 = iVar17 + 4;\n                  pdVar6 = (debug_method_variant_s *)*piVar1;\n                }\n                bVar11 = (*fns->class_end_method)(fhandle);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                local_24 = local_24 + 1;\n                local_28 = ((type->u).kclass)->methods[local_24];\n              } while (local_28 != (debug_method)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->end_class_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_ENUM:\n          pdVar4 = (type->u).kenum;\n          if (pdVar4 == (debug_enum_type *)0x0) {\n            bVar11 = (*fns->enum_type)(fhandle,local_30,(char **)0x0,(bfd_signed_vma *)0x0);\n            return bVar11;\n          }\n          bVar11 = (*fns->enum_type)(fhandle,local_30,pdVar4->names,pdVar4->values);\n          return bVar11;\n        case DEBUG_KIND_POINTER:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->pointer_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_FUNCTION:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar15 = (type->u).kfunction;\n          if (pdVar15->arg_types == (debug_type_conflict *)0x0) {\n            iVar17 = -1;\n          }\n          else {\n            iVar17 = 0;\n            pdVar10 = *pdVar15->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar15 = (type->u).kfunction;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar15->arg_types[iVar17];\n            }\n          }\n          bVar11 = (*fns->function_type)(fhandle,iVar17,pdVar15->varargs);\n          return bVar11;\n        case DEBUG_KIND_REFERENCE:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->reference_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_RANGE:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);\n          return bVar11;\n        case DEBUG_KIND_ARRAY:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar3 = (type->u).karray;\n          bVar11 = (*fns->array_type)(fhandle,pdVar3->lower,pdVar3->upper,pdVar3->stringp);\n          return bVar11;\n        case DEBUG_KIND_SET:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          name = (debug_name *)((type->u).karray)->range_type;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->set_type;\n          break;\n        case DEBUG_KIND_OFFSET:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->offset_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_METHOD:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar14 = (type->u).kmethod;\n          if (pdVar14->arg_types == (debug_type_conflict *)0x0) {\n            iVar17 = -1;\n          }\n          else {\n            iVar17 = 0;\n            pdVar10 = *pdVar14->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar14 = (type->u).kmethod;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar14->arg_types[iVar17];\n            }\n          }\n          pdVar10 = pdVar14->domain_type;\n          if (pdVar10 != (debug_type_s *)0x0) {\n            bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar11 == 0) {\n              return 0;\n            }\n            pdVar14 = (type->u).kmethod;\n            pdVar10 = pdVar14->domain_type;\n          }\n          bVar11 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar17,\n                                       pdVar14->varargs);\n          return bVar11;\n        case DEBUG_KIND_CONST:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->const_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_VOLATILE:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->volatile_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_NAMED:\n          goto _L264;\n        case DEBUG_KIND_TAGGED:\n_L268:\n          local_2c = (type->u).karray;\n          name = (debug_name *)local_2c->element_type;\n          goto LAB_0001d36b;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\nLAB_0001d9c6:\n                    /* WARNING: Could not recover jumptable at 0x0001d9cd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        bVar11 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)name);\n        return bVar11;\n      }\n      name->mark = info->mark;\n      if (dVar9 != DEBUG_KIND_NAMED) {\n        if (dVar9 != DEBUG_KIND_TAGGED) {\n          if (name->kind != DEBUG_OBJECT_TAG) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = name->name;\n          goto LAB_0001d329;\n        }\n        goto _L268;\n      }\n_L264:\n      name = (debug_name *)0x0;\n    }\n    local_2c = (debug_array_type *)(type->u).knamed;\n    pdVar2 = (debug_name *)local_2c->element_type;\n    if (pdVar2->mark == info->mark) {\n      if (dVar9 == DEBUG_KIND_NAMED) {\n        name = (debug_name *)pdVar2->name;\n        UNRECOVERED_JUMPTABLE = fns->typedef_type;\n        goto LAB_0001d9c6;\n      }\nLAB_0001db7f:\n      pdVar10 = debug_get_real_type(info,type,(debug_type_real_list *)0x0);\n      if (pdVar10 != (debug_type_s *)0x0) {\n        dVar9 = pdVar10->kind;\n        pcVar21 = ((type->u).knamed)->name->name;\n        if ((dVar9 - DEBUG_KIND_STRUCT < 4) && ((pdVar10->u).kclass != (debug_class_type *)0x0)) {\n          uVar13 = ((pdVar10->u).kclass)->id;\n          if (uVar13 <= info->base_id) {\n            bVar11 = debug_set_class_id(info,pcVar21,pdVar10);\n            if (bVar11 == 0) {\n              return 0;\n            }\n            uVar13 = ((pdVar10->u).kclass)->id;\n            dVar9 = pdVar10->kind;\n            pcVar21 = ((type->u).knamed)->name->name;\n          }\n        }\n        else {\n          uVar13 = 0;\n        }\n        bVar11 = (*fns->tag_type)(fhandle,pcVar21,uVar13,dVar9);\n        return bVar11;\n      }\n      goto LAB_0001d6c3;\n    }\n    if (dVar9 != DEBUG_KIND_TAGGED) goto LAB_0001d300;\n    if (pdVar2 != name) goto LAB_0001db7f;\n    name->mark = info->mark;\nLAB_0001d36b:\n    type = local_2c->range_type;\n  } while( true );" do (compound_statement "{\n    for (; dVar9 = type->kind, 1 < dVar9 - DEBUG_KIND_NAMED; type = ((type->u).karray)->range_type)\n    {\nLAB_0001d300:\n      if (name == (debug_name *)0x0) {\n        local_30 = (char *)0x0;\nLAB_0001d329:\n        switch(dVar9) {\n        case DEBUG_KIND_ILLEGAL:\n          uVar7 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar7);\n          return 0;\n        case DEBUG_KIND_INDIRECT:\n          goto _L288;\n        case DEBUG_KIND_VOID:\n          UNRECOVERED_JUMPTABLE_00 = fns->void_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_INT:\n          bVar11 = (*fns->int_type)(fhandle,type->size,(type->u).kint);\n          return bVar11;\n        case DEBUG_KIND_FLOAT:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->float_type;\n          break;\n        case DEBUG_KIND_COMPLEX:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->complex_type;\n          break;\n        case DEBUG_KIND_BOOL:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->bool_type;\n          break;\n        case DEBUG_KIND_STRUCT:\n        case DEBUG_KIND_UNION:\n          pdVar12 = (type->u).kclass;\n          if (pdVar12 == (debug_class_type *)0x0) {\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            uVar16 = 0;\n          }\n          else {\n            uVar13 = pdVar12->id;\n            if (info->base_id < uVar13) {\n              uVar16 = info->mark;\n              if (pdVar12->mark == uVar16) {\nLAB_0001db48:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,uVar13,type->kind);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar12 = (type->u).kclass;\n              uVar16 = info->mark;\n              if (uVar16 == pdVar12->mark) {\n                uVar13 = pdVar12->id;\n                if (uVar13 <= info->base_id) {\n                  pcVar21 = "debug_write_type";\n                  uVar13 = 0x9d1;\nLAB_0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar13\n                                ,pcVar21);\n                }\n                goto LAB_0001db48;\n              }\n            }\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            pdVar12->mark = uVar16;\n            uVar16 = pdVar12->id;\n            dVar9 = type->kind;\n          }\n          bVar11 = (*p_Var18)(fhandle,local_30,uVar16,(uint)(dVar9 == DEBUG_KIND_STRUCT),uVar13);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          if ((((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar5 = ((type->u).kclass)->fields, ppdVar5 != (debug_field *)0x0)) &&\n             (pdVar19 = *ppdVar5, pdVar19 != (debug_field)0x0)) {\n            iVar17 = 4;\n            do {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              bVar11 = (*fns->struct_field)\n                                 (fhandle,pdVar19->name,(pdVar19->u).f.bitpos,(pdVar19->u).f.bitsize\n                                  ,pdVar19->visibility);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar19 = *(debug_field *)((int)((type->u).kindirect)->slot + iVar17);\n              iVar17 = iVar17 + 4;\n            } while (pdVar19 != (debug_field)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->end_struct_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_CLASS:\n        case DEBUG_KIND_UNION_CLASS:\n          local_34 = (type->u).kclass;\n          if (local_34 == (debug_class_type *)0x0) {\n            uVar13 = 0;\n            local_2c = (debug_array_type *)0x0;\n            local_34 = (debug_class_type *)0x0;\n          }\n          else {\n            local_2c = (debug_array_type *)local_34->id;\n            if (info->base_id < local_2c) {\n              uVar13 = info->mark;\n              if (local_34->mark == uVar13) {\nLAB_0001dafa:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,(uint)local_2c,dVar9);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              local_34 = (type->u).kclass;\n              uVar13 = info->mark;\n              local_2c = (debug_array_type *)local_34->id;\n              if (uVar13 == local_34->mark) {\n                if (local_2c <= info->base_id) {\n                  pcVar21 = "debug_write_class_type";\n                  uVar13 = 0xa7d;\n                  goto LAB_0001de3e;\n                }\n                dVar9 = type->kind;\n                goto LAB_0001dafa;\n              }\n            }\n            local_34->mark = uVar13;\n            local_34 = (debug_class_type *)local_34->vptrbase;\n            if (((debug_class_type *)type == local_34) || (local_34 == (debug_class_type *)0x0)) {\n              uVar13 = (uint)(local_34 != (debug_class_type *)0x0);\n              dVar9 = type->kind;\n            }\n            else {\n              bVar11 = debug_write_type(info,fns,fhandle,(debug_type_s *)local_34,(debug_name *)0x0)\n              ;\n              if (bVar11 == 0) {\n                return 0;\n              }\n              dVar9 = type->kind;\n              uVar13 = 1;\n            }\n          }\n          bVar11 = (*fns->start_class_type)\n                             (fhandle,local_30,(uint)local_2c,(uint)(dVar9 == DEBUG_KIND_CLASS),\n                              type->size,uVar13,(uint)((debug_class_type *)type == local_34));\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar12 = (type->u).kclass;\n          if (pdVar12 != (debug_class_type *)0x0) {\n            if ((pdVar12->fields != (debug_field *)0x0) &&\n               (pdVar19 = *pdVar12->fields, pdVar19 != (debug_field)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pcVar21 = (char *)(pdVar19->u).f.bitpos;\n                if (pdVar19->static_member == 0) {\n                  iVar8 = (*fns->struct_field)\n                                    (fhandle,pdVar19->name,(bfd_vma)pcVar21,(pdVar19->u).f.bitsize,\n                                     pdVar19->visibility);\n                }\n                else {\n                  iVar8 = (*fns->class_static_member)\n                                    (fhandle,pdVar19->name,pcVar21,pdVar19->visibility);\n                }\n                if (iVar8 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar19 = *(debug_field *)((int)pdVar12->fields + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar19 != (debug_field)0x0);\n            }\n            if ((pdVar12->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar20 = *pdVar12->baseclasses, pdVar20 != (debug_baseclass)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar20->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                bVar11 = (*fns->class_baseclass)\n                                   (fhandle,pdVar20->bitpos,pdVar20->is_virtual,pdVar20->visibility)\n                ;\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar20 = *(debug_baseclass *)((int)pdVar12->baseclasses + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar20 != (debug_baseclass)0x0);\n            }\n            if ((pdVar12->methods != (debug_method *)0x0) &&\n               (local_28 = *pdVar12->methods, local_28 != (debug_method)0x0)) {\n              local_24 = 0;\n              do {\n                bVar11 = (*fns->class_start_method)(fhandle,local_28->name);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                iVar17 = 4;\n                pdVar6 = *local_28->variants;\n                while (pdVar6 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar6->context != (debug_type_s *)0x0) &&\n                     (bVar11 = debug_write_type(info,fns,fhandle,pdVar6->context,(debug_name *)0x0),\n                     bVar11 == 0)) {\n                    return 0;\n                  }\n                  bVar11 = debug_write_type(info,fns,fhandle,pdVar6->type,(debug_name *)0x0);\n                  if (bVar11 == 0) {\n                    return 0;\n                  }\n                  if (pdVar6->voffset == 0xffffffff) {\n                    iVar8 = (*fns->class_static_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep);\n                  }\n                  else {\n                    iVar8 = (*fns->class_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep,pdVar6->voffset,\n                                       (uint)(pdVar6->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar8 == 0) {\n                    return 0;\n                  }\n                  piVar1 = (int *)((int)local_28->variants + iVar17);\n                  iVar17 = iVar17 + 4;\n                  pdVar6 = (debug_method_variant_s *)*piVar1;\n                }\n                bVar11 = (*fns->class_end_method)(fhandle);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                local_24 = local_24 + 1;\n                local_28 = ((type->u).kclass)->methods[local_24];\n              } while (local_28 != (debug_method)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->end_class_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_ENUM:\n          pdVar4 = (type->u).kenum;\n          if (pdVar4 == (debug_enum_type *)0x0) {\n            bVar11 = (*fns->enum_type)(fhandle,local_30,(char **)0x0,(bfd_signed_vma *)0x0);\n            return bVar11;\n          }\n          bVar11 = (*fns->enum_type)(fhandle,local_30,pdVar4->names,pdVar4->values);\n          return bVar11;\n        case DEBUG_KIND_POINTER:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->pointer_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_FUNCTION:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar15 = (type->u).kfunction;\n          if (pdVar15->arg_types == (debug_type_conflict *)0x0) {\n            iVar17 = -1;\n          }\n          else {\n            iVar17 = 0;\n            pdVar10 = *pdVar15->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar15 = (type->u).kfunction;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar15->arg_types[iVar17];\n            }\n          }\n          bVar11 = (*fns->function_type)(fhandle,iVar17,pdVar15->varargs);\n          return bVar11;\n        case DEBUG_KIND_REFERENCE:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->reference_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_RANGE:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);\n          return bVar11;\n        case DEBUG_KIND_ARRAY:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar3 = (type->u).karray;\n          bVar11 = (*fns->array_type)(fhandle,pdVar3->lower,pdVar3->upper,pdVar3->stringp);\n          return bVar11;\n        case DEBUG_KIND_SET:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          name = (debug_name *)((type->u).karray)->range_type;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->set_type;\n          break;\n        case DEBUG_KIND_OFFSET:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->offset_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_METHOD:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar14 = (type->u).kmethod;\n          if (pdVar14->arg_types == (debug_type_conflict *)0x0) {\n            iVar17 = -1;\n          }\n          else {\n            iVar17 = 0;\n            pdVar10 = *pdVar14->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar14 = (type->u).kmethod;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar14->arg_types[iVar17];\n            }\n          }\n          pdVar10 = pdVar14->domain_type;\n          if (pdVar10 != (debug_type_s *)0x0) {\n            bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar11 == 0) {\n              return 0;\n            }\n            pdVar14 = (type->u).kmethod;\n            pdVar10 = pdVar14->domain_type;\n          }\n          bVar11 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar17,\n                                       pdVar14->varargs);\n          return bVar11;\n        case DEBUG_KIND_CONST:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->const_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_VOLATILE:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->volatile_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_NAMED:\n          goto _L264;\n        case DEBUG_KIND_TAGGED:\n_L268:\n          local_2c = (type->u).karray;\n          name = (debug_name *)local_2c->element_type;\n          goto LAB_0001d36b;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\nLAB_0001d9c6:\n                    /* WARNING: Could not recover jumptable at 0x0001d9cd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        bVar11 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)name);\n        return bVar11;\n      }\n      name->mark = info->mark;\n      if (dVar9 != DEBUG_KIND_NAMED) {\n        if (dVar9 != DEBUG_KIND_TAGGED) {\n          if (name->kind != DEBUG_OBJECT_TAG) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = name->name;\n          goto LAB_0001d329;\n        }\n        goto _L268;\n      }\n_L264:\n      name = (debug_name *)0x0;\n    }\n    local_2c = (debug_array_type *)(type->u).knamed;\n    pdVar2 = (debug_name *)local_2c->element_type;\n    if (pdVar2->mark == info->mark) {\n      if (dVar9 == DEBUG_KIND_NAMED) {\n        name = (debug_name *)pdVar2->name;\n        UNRECOVERED_JUMPTABLE = fns->typedef_type;\n        goto LAB_0001d9c6;\n      }\nLAB_0001db7f:\n      pdVar10 = debug_get_real_type(info,type,(debug_type_real_list *)0x0);\n      if (pdVar10 != (debug_type_s *)0x0) {\n        dVar9 = pdVar10->kind;\n        pcVar21 = ((type->u).knamed)->name->name;\n        if ((dVar9 - DEBUG_KIND_STRUCT < 4) && ((pdVar10->u).kclass != (debug_class_type *)0x0)) {\n          uVar13 = ((pdVar10->u).kclass)->id;\n          if (uVar13 <= info->base_id) {\n            bVar11 = debug_set_class_id(info,pcVar21,pdVar10);\n            if (bVar11 == 0) {\n              return 0;\n            }\n            uVar13 = ((pdVar10->u).kclass)->id;\n            dVar9 = pdVar10->kind;\n            pcVar21 = ((type->u).knamed)->name->name;\n          }\n        }\n        else {\n          uVar13 = 0;\n        }\n        bVar11 = (*fns->tag_type)(fhandle,pcVar21,uVar13,dVar9);\n        return bVar11;\n      }\n      goto LAB_0001d6c3;\n    }\n    if (dVar9 != DEBUG_KIND_TAGGED) goto LAB_0001d300;\n    if (pdVar2 != name) goto LAB_0001db7f;\n    name->mark = info->mark;\nLAB_0001d36b:\n    type = local_2c->range_type;\n  }" { (for_statement "for (; dVar9 = type->kind, 1 < dVar9 - DEBUG_KIND_NAMED; type = ((type->u).karray)->range_type)\n    {\nLAB_0001d300:\n      if (name == (debug_name *)0x0) {\n        local_30 = (char *)0x0;\nLAB_0001d329:\n        switch(dVar9) {\n        case DEBUG_KIND_ILLEGAL:\n          uVar7 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar7);\n          return 0;\n        case DEBUG_KIND_INDIRECT:\n          goto _L288;\n        case DEBUG_KIND_VOID:\n          UNRECOVERED_JUMPTABLE_00 = fns->void_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_INT:\n          bVar11 = (*fns->int_type)(fhandle,type->size,(type->u).kint);\n          return bVar11;\n        case DEBUG_KIND_FLOAT:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->float_type;\n          break;\n        case DEBUG_KIND_COMPLEX:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->complex_type;\n          break;\n        case DEBUG_KIND_BOOL:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->bool_type;\n          break;\n        case DEBUG_KIND_STRUCT:\n        case DEBUG_KIND_UNION:\n          pdVar12 = (type->u).kclass;\n          if (pdVar12 == (debug_class_type *)0x0) {\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            uVar16 = 0;\n          }\n          else {\n            uVar13 = pdVar12->id;\n            if (info->base_id < uVar13) {\n              uVar16 = info->mark;\n              if (pdVar12->mark == uVar16) {\nLAB_0001db48:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,uVar13,type->kind);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar12 = (type->u).kclass;\n              uVar16 = info->mark;\n              if (uVar16 == pdVar12->mark) {\n                uVar13 = pdVar12->id;\n                if (uVar13 <= info->base_id) {\n                  pcVar21 = "debug_write_type";\n                  uVar13 = 0x9d1;\nLAB_0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar13\n                                ,pcVar21);\n                }\n                goto LAB_0001db48;\n              }\n            }\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            pdVar12->mark = uVar16;\n            uVar16 = pdVar12->id;\n            dVar9 = type->kind;\n          }\n          bVar11 = (*p_Var18)(fhandle,local_30,uVar16,(uint)(dVar9 == DEBUG_KIND_STRUCT),uVar13);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          if ((((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar5 = ((type->u).kclass)->fields, ppdVar5 != (debug_field *)0x0)) &&\n             (pdVar19 = *ppdVar5, pdVar19 != (debug_field)0x0)) {\n            iVar17 = 4;\n            do {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              bVar11 = (*fns->struct_field)\n                                 (fhandle,pdVar19->name,(pdVar19->u).f.bitpos,(pdVar19->u).f.bitsize\n                                  ,pdVar19->visibility);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar19 = *(debug_field *)((int)((type->u).kindirect)->slot + iVar17);\n              iVar17 = iVar17 + 4;\n            } while (pdVar19 != (debug_field)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->end_struct_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_CLASS:\n        case DEBUG_KIND_UNION_CLASS:\n          local_34 = (type->u).kclass;\n          if (local_34 == (debug_class_type *)0x0) {\n            uVar13 = 0;\n            local_2c = (debug_array_type *)0x0;\n            local_34 = (debug_class_type *)0x0;\n          }\n          else {\n            local_2c = (debug_array_type *)local_34->id;\n            if (info->base_id < local_2c) {\n              uVar13 = info->mark;\n              if (local_34->mark == uVar13) {\nLAB_0001dafa:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,(uint)local_2c,dVar9);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              local_34 = (type->u).kclass;\n              uVar13 = info->mark;\n              local_2c = (debug_array_type *)local_34->id;\n              if (uVar13 == local_34->mark) {\n                if (local_2c <= info->base_id) {\n                  pcVar21 = "debug_write_class_type";\n                  uVar13 = 0xa7d;\n                  goto LAB_0001de3e;\n                }\n                dVar9 = type->kind;\n                goto LAB_0001dafa;\n              }\n            }\n            local_34->mark = uVar13;\n            local_34 = (debug_class_type *)local_34->vptrbase;\n            if (((debug_class_type *)type == local_34) || (local_34 == (debug_class_type *)0x0)) {\n              uVar13 = (uint)(local_34 != (debug_class_type *)0x0);\n              dVar9 = type->kind;\n            }\n            else {\n              bVar11 = debug_write_type(info,fns,fhandle,(debug_type_s *)local_34,(debug_name *)0x0)\n              ;\n              if (bVar11 == 0) {\n                return 0;\n              }\n              dVar9 = type->kind;\n              uVar13 = 1;\n            }\n          }\n          bVar11 = (*fns->start_class_type)\n                             (fhandle,local_30,(uint)local_2c,(uint)(dVar9 == DEBUG_KIND_CLASS),\n                              type->size,uVar13,(uint)((debug_class_type *)type == local_34));\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar12 = (type->u).kclass;\n          if (pdVar12 != (debug_class_type *)0x0) {\n            if ((pdVar12->fields != (debug_field *)0x0) &&\n               (pdVar19 = *pdVar12->fields, pdVar19 != (debug_field)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pcVar21 = (char *)(pdVar19->u).f.bitpos;\n                if (pdVar19->static_member == 0) {\n                  iVar8 = (*fns->struct_field)\n                                    (fhandle,pdVar19->name,(bfd_vma)pcVar21,(pdVar19->u).f.bitsize,\n                                     pdVar19->visibility);\n                }\n                else {\n                  iVar8 = (*fns->class_static_member)\n                                    (fhandle,pdVar19->name,pcVar21,pdVar19->visibility);\n                }\n                if (iVar8 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar19 = *(debug_field *)((int)pdVar12->fields + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar19 != (debug_field)0x0);\n            }\n            if ((pdVar12->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar20 = *pdVar12->baseclasses, pdVar20 != (debug_baseclass)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar20->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                bVar11 = (*fns->class_baseclass)\n                                   (fhandle,pdVar20->bitpos,pdVar20->is_virtual,pdVar20->visibility)\n                ;\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar20 = *(debug_baseclass *)((int)pdVar12->baseclasses + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar20 != (debug_baseclass)0x0);\n            }\n            if ((pdVar12->methods != (debug_method *)0x0) &&\n               (local_28 = *pdVar12->methods, local_28 != (debug_method)0x0)) {\n              local_24 = 0;\n              do {\n                bVar11 = (*fns->class_start_method)(fhandle,local_28->name);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                iVar17 = 4;\n                pdVar6 = *local_28->variants;\n                while (pdVar6 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar6->context != (debug_type_s *)0x0) &&\n                     (bVar11 = debug_write_type(info,fns,fhandle,pdVar6->context,(debug_name *)0x0),\n                     bVar11 == 0)) {\n                    return 0;\n                  }\n                  bVar11 = debug_write_type(info,fns,fhandle,pdVar6->type,(debug_name *)0x0);\n                  if (bVar11 == 0) {\n                    return 0;\n                  }\n                  if (pdVar6->voffset == 0xffffffff) {\n                    iVar8 = (*fns->class_static_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep);\n                  }\n                  else {\n                    iVar8 = (*fns->class_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep,pdVar6->voffset,\n                                       (uint)(pdVar6->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar8 == 0) {\n                    return 0;\n                  }\n                  piVar1 = (int *)((int)local_28->variants + iVar17);\n                  iVar17 = iVar17 + 4;\n                  pdVar6 = (debug_method_variant_s *)*piVar1;\n                }\n                bVar11 = (*fns->class_end_method)(fhandle);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                local_24 = local_24 + 1;\n                local_28 = ((type->u).kclass)->methods[local_24];\n              } while (local_28 != (debug_method)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->end_class_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_ENUM:\n          pdVar4 = (type->u).kenum;\n          if (pdVar4 == (debug_enum_type *)0x0) {\n            bVar11 = (*fns->enum_type)(fhandle,local_30,(char **)0x0,(bfd_signed_vma *)0x0);\n            return bVar11;\n          }\n          bVar11 = (*fns->enum_type)(fhandle,local_30,pdVar4->names,pdVar4->values);\n          return bVar11;\n        case DEBUG_KIND_POINTER:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->pointer_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_FUNCTION:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar15 = (type->u).kfunction;\n          if (pdVar15->arg_types == (debug_type_conflict *)0x0) {\n            iVar17 = -1;\n          }\n          else {\n            iVar17 = 0;\n            pdVar10 = *pdVar15->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar15 = (type->u).kfunction;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar15->arg_types[iVar17];\n            }\n          }\n          bVar11 = (*fns->function_type)(fhandle,iVar17,pdVar15->varargs);\n          return bVar11;\n        case DEBUG_KIND_REFERENCE:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->reference_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_RANGE:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);\n          return bVar11;\n        case DEBUG_KIND_ARRAY:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar3 = (type->u).karray;\n          bVar11 = (*fns->array_type)(fhandle,pdVar3->lower,pdVar3->upper,pdVar3->stringp);\n          return bVar11;\n        case DEBUG_KIND_SET:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          name = (debug_name *)((type->u).karray)->range_type;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->set_type;\n          break;\n        case DEBUG_KIND_OFFSET:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->offset_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_METHOD:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar14 = (type->u).kmethod;\n          if (pdVar14->arg_types == (debug_type_conflict *)0x0) {\n            iVar17 = -1;\n          }\n          else {\n            iVar17 = 0;\n            pdVar10 = *pdVar14->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar14 = (type->u).kmethod;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar14->arg_types[iVar17];\n            }\n          }\n          pdVar10 = pdVar14->domain_type;\n          if (pdVar10 != (debug_type_s *)0x0) {\n            bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar11 == 0) {\n              return 0;\n            }\n            pdVar14 = (type->u).kmethod;\n            pdVar10 = pdVar14->domain_type;\n          }\n          bVar11 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar17,\n                                       pdVar14->varargs);\n          return bVar11;\n        case DEBUG_KIND_CONST:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->const_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_VOLATILE:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->volatile_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_NAMED:\n          goto _L264;\n        case DEBUG_KIND_TAGGED:\n_L268:\n          local_2c = (type->u).karray;\n          name = (debug_name *)local_2c->element_type;\n          goto LAB_0001d36b;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\nLAB_0001d9c6:\n                    /* WARNING: Could not recover jumptable at 0x0001d9cd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        bVar11 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)name);\n        return bVar11;\n      }\n      name->mark = info->mark;\n      if (dVar9 != DEBUG_KIND_NAMED) {\n        if (dVar9 != DEBUG_KIND_TAGGED) {\n          if (name->kind != DEBUG_OBJECT_TAG) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = name->name;\n          goto LAB_0001d329;\n        }\n        goto _L268;\n      }\n_L264:\n      name = (debug_name *)0x0;\n    }" for ( ; (comma_expression "dVar9 = type->kind, 1 < dVar9 - DEBUG_KIND_NAMED" (assignment_expression "dVar9 = type->kind" identifier = (field_expression "type->kind" identifier -> field_identifier)) , (binary_expression "1 < dVar9 - DEBUG_KIND_NAMED" number_literal < (binary_expression "dVar9 - DEBUG_KIND_NAMED" identifier - identifier))) ; (assignment_expression "type = ((type->u).karray)->range_type" identifier = (field_expression "((type->u).karray)->range_type" (parenthesized_expression "((type->u).karray)" ( (field_expression "(type->u).karray" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ) (compound_statement "{\nLAB_0001d300:\n      if (name == (debug_name *)0x0) {\n        local_30 = (char *)0x0;\nLAB_0001d329:\n        switch(dVar9) {\n        case DEBUG_KIND_ILLEGAL:\n          uVar7 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar7);\n          return 0;\n        case DEBUG_KIND_INDIRECT:\n          goto _L288;\n        case DEBUG_KIND_VOID:\n          UNRECOVERED_JUMPTABLE_00 = fns->void_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_INT:\n          bVar11 = (*fns->int_type)(fhandle,type->size,(type->u).kint);\n          return bVar11;\n        case DEBUG_KIND_FLOAT:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->float_type;\n          break;\n        case DEBUG_KIND_COMPLEX:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->complex_type;\n          break;\n        case DEBUG_KIND_BOOL:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->bool_type;\n          break;\n        case DEBUG_KIND_STRUCT:\n        case DEBUG_KIND_UNION:\n          pdVar12 = (type->u).kclass;\n          if (pdVar12 == (debug_class_type *)0x0) {\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            uVar16 = 0;\n          }\n          else {\n            uVar13 = pdVar12->id;\n            if (info->base_id < uVar13) {\n              uVar16 = info->mark;\n              if (pdVar12->mark == uVar16) {\nLAB_0001db48:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,uVar13,type->kind);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar12 = (type->u).kclass;\n              uVar16 = info->mark;\n              if (uVar16 == pdVar12->mark) {\n                uVar13 = pdVar12->id;\n                if (uVar13 <= info->base_id) {\n                  pcVar21 = "debug_write_type";\n                  uVar13 = 0x9d1;\nLAB_0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar13\n                                ,pcVar21);\n                }\n                goto LAB_0001db48;\n              }\n            }\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            pdVar12->mark = uVar16;\n            uVar16 = pdVar12->id;\n            dVar9 = type->kind;\n          }\n          bVar11 = (*p_Var18)(fhandle,local_30,uVar16,(uint)(dVar9 == DEBUG_KIND_STRUCT),uVar13);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          if ((((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar5 = ((type->u).kclass)->fields, ppdVar5 != (debug_field *)0x0)) &&\n             (pdVar19 = *ppdVar5, pdVar19 != (debug_field)0x0)) {\n            iVar17 = 4;\n            do {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              bVar11 = (*fns->struct_field)\n                                 (fhandle,pdVar19->name,(pdVar19->u).f.bitpos,(pdVar19->u).f.bitsize\n                                  ,pdVar19->visibility);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar19 = *(debug_field *)((int)((type->u).kindirect)->slot + iVar17);\n              iVar17 = iVar17 + 4;\n            } while (pdVar19 != (debug_field)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->end_struct_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_CLASS:\n        case DEBUG_KIND_UNION_CLASS:\n          local_34 = (type->u).kclass;\n          if (local_34 == (debug_class_type *)0x0) {\n            uVar13 = 0;\n            local_2c = (debug_array_type *)0x0;\n            local_34 = (debug_class_type *)0x0;\n          }\n          else {\n            local_2c = (debug_array_type *)local_34->id;\n            if (info->base_id < local_2c) {\n              uVar13 = info->mark;\n              if (local_34->mark == uVar13) {\nLAB_0001dafa:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,(uint)local_2c,dVar9);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              local_34 = (type->u).kclass;\n              uVar13 = info->mark;\n              local_2c = (debug_array_type *)local_34->id;\n              if (uVar13 == local_34->mark) {\n                if (local_2c <= info->base_id) {\n                  pcVar21 = "debug_write_class_type";\n                  uVar13 = 0xa7d;\n                  goto LAB_0001de3e;\n                }\n                dVar9 = type->kind;\n                goto LAB_0001dafa;\n              }\n            }\n            local_34->mark = uVar13;\n            local_34 = (debug_class_type *)local_34->vptrbase;\n            if (((debug_class_type *)type == local_34) || (local_34 == (debug_class_type *)0x0)) {\n              uVar13 = (uint)(local_34 != (debug_class_type *)0x0);\n              dVar9 = type->kind;\n            }\n            else {\n              bVar11 = debug_write_type(info,fns,fhandle,(debug_type_s *)local_34,(debug_name *)0x0)\n              ;\n              if (bVar11 == 0) {\n                return 0;\n              }\n              dVar9 = type->kind;\n              uVar13 = 1;\n            }\n          }\n          bVar11 = (*fns->start_class_type)\n                             (fhandle,local_30,(uint)local_2c,(uint)(dVar9 == DEBUG_KIND_CLASS),\n                              type->size,uVar13,(uint)((debug_class_type *)type == local_34));\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar12 = (type->u).kclass;\n          if (pdVar12 != (debug_class_type *)0x0) {\n            if ((pdVar12->fields != (debug_field *)0x0) &&\n               (pdVar19 = *pdVar12->fields, pdVar19 != (debug_field)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pcVar21 = (char *)(pdVar19->u).f.bitpos;\n                if (pdVar19->static_member == 0) {\n                  iVar8 = (*fns->struct_field)\n                                    (fhandle,pdVar19->name,(bfd_vma)pcVar21,(pdVar19->u).f.bitsize,\n                                     pdVar19->visibility);\n                }\n                else {\n                  iVar8 = (*fns->class_static_member)\n                                    (fhandle,pdVar19->name,pcVar21,pdVar19->visibility);\n                }\n                if (iVar8 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar19 = *(debug_field *)((int)pdVar12->fields + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar19 != (debug_field)0x0);\n            }\n            if ((pdVar12->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar20 = *pdVar12->baseclasses, pdVar20 != (debug_baseclass)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar20->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                bVar11 = (*fns->class_baseclass)\n                                   (fhandle,pdVar20->bitpos,pdVar20->is_virtual,pdVar20->visibility)\n                ;\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar20 = *(debug_baseclass *)((int)pdVar12->baseclasses + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar20 != (debug_baseclass)0x0);\n            }\n            if ((pdVar12->methods != (debug_method *)0x0) &&\n               (local_28 = *pdVar12->methods, local_28 != (debug_method)0x0)) {\n              local_24 = 0;\n              do {\n                bVar11 = (*fns->class_start_method)(fhandle,local_28->name);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                iVar17 = 4;\n                pdVar6 = *local_28->variants;\n                while (pdVar6 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar6->context != (debug_type_s *)0x0) &&\n                     (bVar11 = debug_write_type(info,fns,fhandle,pdVar6->context,(debug_name *)0x0),\n                     bVar11 == 0)) {\n                    return 0;\n                  }\n                  bVar11 = debug_write_type(info,fns,fhandle,pdVar6->type,(debug_name *)0x0);\n                  if (bVar11 == 0) {\n                    return 0;\n                  }\n                  if (pdVar6->voffset == 0xffffffff) {\n                    iVar8 = (*fns->class_static_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep);\n                  }\n                  else {\n                    iVar8 = (*fns->class_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep,pdVar6->voffset,\n                                       (uint)(pdVar6->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar8 == 0) {\n                    return 0;\n                  }\n                  piVar1 = (int *)((int)local_28->variants + iVar17);\n                  iVar17 = iVar17 + 4;\n                  pdVar6 = (debug_method_variant_s *)*piVar1;\n                }\n                bVar11 = (*fns->class_end_method)(fhandle);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                local_24 = local_24 + 1;\n                local_28 = ((type->u).kclass)->methods[local_24];\n              } while (local_28 != (debug_method)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->end_class_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_ENUM:\n          pdVar4 = (type->u).kenum;\n          if (pdVar4 == (debug_enum_type *)0x0) {\n            bVar11 = (*fns->enum_type)(fhandle,local_30,(char **)0x0,(bfd_signed_vma *)0x0);\n            return bVar11;\n          }\n          bVar11 = (*fns->enum_type)(fhandle,local_30,pdVar4->names,pdVar4->values);\n          return bVar11;\n        case DEBUG_KIND_POINTER:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->pointer_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_FUNCTION:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar15 = (type->u).kfunction;\n          if (pdVar15->arg_types == (debug_type_conflict *)0x0) {\n            iVar17 = -1;\n          }\n          else {\n            iVar17 = 0;\n            pdVar10 = *pdVar15->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar15 = (type->u).kfunction;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar15->arg_types[iVar17];\n            }\n          }\n          bVar11 = (*fns->function_type)(fhandle,iVar17,pdVar15->varargs);\n          return bVar11;\n        case DEBUG_KIND_REFERENCE:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->reference_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_RANGE:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);\n          return bVar11;\n        case DEBUG_KIND_ARRAY:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar3 = (type->u).karray;\n          bVar11 = (*fns->array_type)(fhandle,pdVar3->lower,pdVar3->upper,pdVar3->stringp);\n          return bVar11;\n        case DEBUG_KIND_SET:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          name = (debug_name *)((type->u).karray)->range_type;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->set_type;\n          break;\n        case DEBUG_KIND_OFFSET:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->offset_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_METHOD:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar14 = (type->u).kmethod;\n          if (pdVar14->arg_types == (debug_type_conflict *)0x0) {\n            iVar17 = -1;\n          }\n          else {\n            iVar17 = 0;\n            pdVar10 = *pdVar14->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar14 = (type->u).kmethod;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar14->arg_types[iVar17];\n            }\n          }\n          pdVar10 = pdVar14->domain_type;\n          if (pdVar10 != (debug_type_s *)0x0) {\n            bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar11 == 0) {\n              return 0;\n            }\n            pdVar14 = (type->u).kmethod;\n            pdVar10 = pdVar14->domain_type;\n          }\n          bVar11 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar17,\n                                       pdVar14->varargs);\n          return bVar11;\n        case DEBUG_KIND_CONST:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->const_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_VOLATILE:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->volatile_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_NAMED:\n          goto _L264;\n        case DEBUG_KIND_TAGGED:\n_L268:\n          local_2c = (type->u).karray;\n          name = (debug_name *)local_2c->element_type;\n          goto LAB_0001d36b;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\nLAB_0001d9c6:\n                    /* WARNING: Could not recover jumptable at 0x0001d9cd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        bVar11 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)name);\n        return bVar11;\n      }\n      name->mark = info->mark;\n      if (dVar9 != DEBUG_KIND_NAMED) {\n        if (dVar9 != DEBUG_KIND_TAGGED) {\n          if (name->kind != DEBUG_OBJECT_TAG) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = name->name;\n          goto LAB_0001d329;\n        }\n        goto _L268;\n      }\n_L264:\n      name = (debug_name *)0x0;\n    }" { (labeled_statement "LAB_0001d300:\n      if (name == (debug_name *)0x0) {\n        local_30 = (char *)0x0;\nLAB_0001d329:\n        switch(dVar9) {\n        case DEBUG_KIND_ILLEGAL:\n          uVar7 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar7);\n          return 0;\n        case DEBUG_KIND_INDIRECT:\n          goto _L288;\n        case DEBUG_KIND_VOID:\n          UNRECOVERED_JUMPTABLE_00 = fns->void_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_INT:\n          bVar11 = (*fns->int_type)(fhandle,type->size,(type->u).kint);\n          return bVar11;\n        case DEBUG_KIND_FLOAT:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->float_type;\n          break;\n        case DEBUG_KIND_COMPLEX:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->complex_type;\n          break;\n        case DEBUG_KIND_BOOL:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->bool_type;\n          break;\n        case DEBUG_KIND_STRUCT:\n        case DEBUG_KIND_UNION:\n          pdVar12 = (type->u).kclass;\n          if (pdVar12 == (debug_class_type *)0x0) {\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            uVar16 = 0;\n          }\n          else {\n            uVar13 = pdVar12->id;\n            if (info->base_id < uVar13) {\n              uVar16 = info->mark;\n              if (pdVar12->mark == uVar16) {\nLAB_0001db48:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,uVar13,type->kind);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar12 = (type->u).kclass;\n              uVar16 = info->mark;\n              if (uVar16 == pdVar12->mark) {\n                uVar13 = pdVar12->id;\n                if (uVar13 <= info->base_id) {\n                  pcVar21 = "debug_write_type";\n                  uVar13 = 0x9d1;\nLAB_0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar13\n                                ,pcVar21);\n                }\n                goto LAB_0001db48;\n              }\n            }\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            pdVar12->mark = uVar16;\n            uVar16 = pdVar12->id;\n            dVar9 = type->kind;\n          }\n          bVar11 = (*p_Var18)(fhandle,local_30,uVar16,(uint)(dVar9 == DEBUG_KIND_STRUCT),uVar13);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          if ((((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar5 = ((type->u).kclass)->fields, ppdVar5 != (debug_field *)0x0)) &&\n             (pdVar19 = *ppdVar5, pdVar19 != (debug_field)0x0)) {\n            iVar17 = 4;\n            do {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              bVar11 = (*fns->struct_field)\n                                 (fhandle,pdVar19->name,(pdVar19->u).f.bitpos,(pdVar19->u).f.bitsize\n                                  ,pdVar19->visibility);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar19 = *(debug_field *)((int)((type->u).kindirect)->slot + iVar17);\n              iVar17 = iVar17 + 4;\n            } while (pdVar19 != (debug_field)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->end_struct_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_CLASS:\n        case DEBUG_KIND_UNION_CLASS:\n          local_34 = (type->u).kclass;\n          if (local_34 == (debug_class_type *)0x0) {\n            uVar13 = 0;\n            local_2c = (debug_array_type *)0x0;\n            local_34 = (debug_class_type *)0x0;\n          }\n          else {\n            local_2c = (debug_array_type *)local_34->id;\n            if (info->base_id < local_2c) {\n              uVar13 = info->mark;\n              if (local_34->mark == uVar13) {\nLAB_0001dafa:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,(uint)local_2c,dVar9);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              local_34 = (type->u).kclass;\n              uVar13 = info->mark;\n              local_2c = (debug_array_type *)local_34->id;\n              if (uVar13 == local_34->mark) {\n                if (local_2c <= info->base_id) {\n                  pcVar21 = "debug_write_class_type";\n                  uVar13 = 0xa7d;\n                  goto LAB_0001de3e;\n                }\n                dVar9 = type->kind;\n                goto LAB_0001dafa;\n              }\n            }\n            local_34->mark = uVar13;\n            local_34 = (debug_class_type *)local_34->vptrbase;\n            if (((debug_class_type *)type == local_34) || (local_34 == (debug_class_type *)0x0)) {\n              uVar13 = (uint)(local_34 != (debug_class_type *)0x0);\n              dVar9 = type->kind;\n            }\n            else {\n              bVar11 = debug_write_type(info,fns,fhandle,(debug_type_s *)local_34,(debug_name *)0x0)\n              ;\n              if (bVar11 == 0) {\n                return 0;\n              }\n              dVar9 = type->kind;\n              uVar13 = 1;\n            }\n          }\n          bVar11 = (*fns->start_class_type)\n                             (fhandle,local_30,(uint)local_2c,(uint)(dVar9 == DEBUG_KIND_CLASS),\n                              type->size,uVar13,(uint)((debug_class_type *)type == local_34));\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar12 = (type->u).kclass;\n          if (pdVar12 != (debug_class_type *)0x0) {\n            if ((pdVar12->fields != (debug_field *)0x0) &&\n               (pdVar19 = *pdVar12->fields, pdVar19 != (debug_field)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pcVar21 = (char *)(pdVar19->u).f.bitpos;\n                if (pdVar19->static_member == 0) {\n                  iVar8 = (*fns->struct_field)\n                                    (fhandle,pdVar19->name,(bfd_vma)pcVar21,(pdVar19->u).f.bitsize,\n                                     pdVar19->visibility);\n                }\n                else {\n                  iVar8 = (*fns->class_static_member)\n                                    (fhandle,pdVar19->name,pcVar21,pdVar19->visibility);\n                }\n                if (iVar8 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar19 = *(debug_field *)((int)pdVar12->fields + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar19 != (debug_field)0x0);\n            }\n            if ((pdVar12->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar20 = *pdVar12->baseclasses, pdVar20 != (debug_baseclass)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar20->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                bVar11 = (*fns->class_baseclass)\n                                   (fhandle,pdVar20->bitpos,pdVar20->is_virtual,pdVar20->visibility)\n                ;\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar20 = *(debug_baseclass *)((int)pdVar12->baseclasses + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar20 != (debug_baseclass)0x0);\n            }\n            if ((pdVar12->methods != (debug_method *)0x0) &&\n               (local_28 = *pdVar12->methods, local_28 != (debug_method)0x0)) {\n              local_24 = 0;\n              do {\n                bVar11 = (*fns->class_start_method)(fhandle,local_28->name);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                iVar17 = 4;\n                pdVar6 = *local_28->variants;\n                while (pdVar6 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar6->context != (debug_type_s *)0x0) &&\n                     (bVar11 = debug_write_type(info,fns,fhandle,pdVar6->context,(debug_name *)0x0),\n                     bVar11 == 0)) {\n                    return 0;\n                  }\n                  bVar11 = debug_write_type(info,fns,fhandle,pdVar6->type,(debug_name *)0x0);\n                  if (bVar11 == 0) {\n                    return 0;\n                  }\n                  if (pdVar6->voffset == 0xffffffff) {\n                    iVar8 = (*fns->class_static_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep);\n                  }\n                  else {\n                    iVar8 = (*fns->class_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep,pdVar6->voffset,\n                                       (uint)(pdVar6->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar8 == 0) {\n                    return 0;\n                  }\n                  piVar1 = (int *)((int)local_28->variants + iVar17);\n                  iVar17 = iVar17 + 4;\n                  pdVar6 = (debug_method_variant_s *)*piVar1;\n                }\n                bVar11 = (*fns->class_end_method)(fhandle);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                local_24 = local_24 + 1;\n                local_28 = ((type->u).kclass)->methods[local_24];\n              } while (local_28 != (debug_method)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->end_class_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_ENUM:\n          pdVar4 = (type->u).kenum;\n          if (pdVar4 == (debug_enum_type *)0x0) {\n            bVar11 = (*fns->enum_type)(fhandle,local_30,(char **)0x0,(bfd_signed_vma *)0x0);\n            return bVar11;\n          }\n          bVar11 = (*fns->enum_type)(fhandle,local_30,pdVar4->names,pdVar4->values);\n          return bVar11;\n        case DEBUG_KIND_POINTER:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->pointer_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_FUNCTION:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar15 = (type->u).kfunction;\n          if (pdVar15->arg_types == (debug_type_conflict *)0x0) {\n            iVar17 = -1;\n          }\n          else {\n            iVar17 = 0;\n            pdVar10 = *pdVar15->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar15 = (type->u).kfunction;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar15->arg_types[iVar17];\n            }\n          }\n          bVar11 = (*fns->function_type)(fhandle,iVar17,pdVar15->varargs);\n          return bVar11;\n        case DEBUG_KIND_REFERENCE:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->reference_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_RANGE:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);\n          return bVar11;\n        case DEBUG_KIND_ARRAY:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar3 = (type->u).karray;\n          bVar11 = (*fns->array_type)(fhandle,pdVar3->lower,pdVar3->upper,pdVar3->stringp);\n          return bVar11;\n        case DEBUG_KIND_SET:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          name = (debug_name *)((type->u).karray)->range_type;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->set_type;\n          break;\n        case DEBUG_KIND_OFFSET:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->offset_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_METHOD:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar14 = (type->u).kmethod;\n          if (pdVar14->arg_types == (debug_type_conflict *)0x0) {\n            iVar17 = -1;\n          }\n          else {\n            iVar17 = 0;\n            pdVar10 = *pdVar14->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar14 = (type->u).kmethod;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar14->arg_types[iVar17];\n            }\n          }\n          pdVar10 = pdVar14->domain_type;\n          if (pdVar10 != (debug_type_s *)0x0) {\n            bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar11 == 0) {\n              return 0;\n            }\n            pdVar14 = (type->u).kmethod;\n            pdVar10 = pdVar14->domain_type;\n          }\n          bVar11 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar17,\n                                       pdVar14->varargs);\n          return bVar11;\n        case DEBUG_KIND_CONST:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->const_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_VOLATILE:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->volatile_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_NAMED:\n          goto _L264;\n        case DEBUG_KIND_TAGGED:\n_L268:\n          local_2c = (type->u).karray;\n          name = (debug_name *)local_2c->element_type;\n          goto LAB_0001d36b;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\nLAB_0001d9c6:\n                    /* WARNING: Could not recover jumptable at 0x0001d9cd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        bVar11 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)name);\n        return bVar11;\n      }" statement_identifier : (if_statement "if (name == (debug_name *)0x0) {\n        local_30 = (char *)0x0;\nLAB_0001d329:\n        switch(dVar9) {\n        case DEBUG_KIND_ILLEGAL:\n          uVar7 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar7);\n          return 0;\n        case DEBUG_KIND_INDIRECT:\n          goto _L288;\n        case DEBUG_KIND_VOID:\n          UNRECOVERED_JUMPTABLE_00 = fns->void_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_INT:\n          bVar11 = (*fns->int_type)(fhandle,type->size,(type->u).kint);\n          return bVar11;\n        case DEBUG_KIND_FLOAT:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->float_type;\n          break;\n        case DEBUG_KIND_COMPLEX:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->complex_type;\n          break;\n        case DEBUG_KIND_BOOL:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->bool_type;\n          break;\n        case DEBUG_KIND_STRUCT:\n        case DEBUG_KIND_UNION:\n          pdVar12 = (type->u).kclass;\n          if (pdVar12 == (debug_class_type *)0x0) {\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            uVar16 = 0;\n          }\n          else {\n            uVar13 = pdVar12->id;\n            if (info->base_id < uVar13) {\n              uVar16 = info->mark;\n              if (pdVar12->mark == uVar16) {\nLAB_0001db48:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,uVar13,type->kind);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar12 = (type->u).kclass;\n              uVar16 = info->mark;\n              if (uVar16 == pdVar12->mark) {\n                uVar13 = pdVar12->id;\n                if (uVar13 <= info->base_id) {\n                  pcVar21 = "debug_write_type";\n                  uVar13 = 0x9d1;\nLAB_0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar13\n                                ,pcVar21);\n                }\n                goto LAB_0001db48;\n              }\n            }\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            pdVar12->mark = uVar16;\n            uVar16 = pdVar12->id;\n            dVar9 = type->kind;\n          }\n          bVar11 = (*p_Var18)(fhandle,local_30,uVar16,(uint)(dVar9 == DEBUG_KIND_STRUCT),uVar13);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          if ((((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar5 = ((type->u).kclass)->fields, ppdVar5 != (debug_field *)0x0)) &&\n             (pdVar19 = *ppdVar5, pdVar19 != (debug_field)0x0)) {\n            iVar17 = 4;\n            do {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              bVar11 = (*fns->struct_field)\n                                 (fhandle,pdVar19->name,(pdVar19->u).f.bitpos,(pdVar19->u).f.bitsize\n                                  ,pdVar19->visibility);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar19 = *(debug_field *)((int)((type->u).kindirect)->slot + iVar17);\n              iVar17 = iVar17 + 4;\n            } while (pdVar19 != (debug_field)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->end_struct_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_CLASS:\n        case DEBUG_KIND_UNION_CLASS:\n          local_34 = (type->u).kclass;\n          if (local_34 == (debug_class_type *)0x0) {\n            uVar13 = 0;\n            local_2c = (debug_array_type *)0x0;\n            local_34 = (debug_class_type *)0x0;\n          }\n          else {\n            local_2c = (debug_array_type *)local_34->id;\n            if (info->base_id < local_2c) {\n              uVar13 = info->mark;\n              if (local_34->mark == uVar13) {\nLAB_0001dafa:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,(uint)local_2c,dVar9);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              local_34 = (type->u).kclass;\n              uVar13 = info->mark;\n              local_2c = (debug_array_type *)local_34->id;\n              if (uVar13 == local_34->mark) {\n                if (local_2c <= info->base_id) {\n                  pcVar21 = "debug_write_class_type";\n                  uVar13 = 0xa7d;\n                  goto LAB_0001de3e;\n                }\n                dVar9 = type->kind;\n                goto LAB_0001dafa;\n              }\n            }\n            local_34->mark = uVar13;\n            local_34 = (debug_class_type *)local_34->vptrbase;\n            if (((debug_class_type *)type == local_34) || (local_34 == (debug_class_type *)0x0)) {\n              uVar13 = (uint)(local_34 != (debug_class_type *)0x0);\n              dVar9 = type->kind;\n            }\n            else {\n              bVar11 = debug_write_type(info,fns,fhandle,(debug_type_s *)local_34,(debug_name *)0x0)\n              ;\n              if (bVar11 == 0) {\n                return 0;\n              }\n              dVar9 = type->kind;\n              uVar13 = 1;\n            }\n          }\n          bVar11 = (*fns->start_class_type)\n                             (fhandle,local_30,(uint)local_2c,(uint)(dVar9 == DEBUG_KIND_CLASS),\n                              type->size,uVar13,(uint)((debug_class_type *)type == local_34));\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar12 = (type->u).kclass;\n          if (pdVar12 != (debug_class_type *)0x0) {\n            if ((pdVar12->fields != (debug_field *)0x0) &&\n               (pdVar19 = *pdVar12->fields, pdVar19 != (debug_field)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pcVar21 = (char *)(pdVar19->u).f.bitpos;\n                if (pdVar19->static_member == 0) {\n                  iVar8 = (*fns->struct_field)\n                                    (fhandle,pdVar19->name,(bfd_vma)pcVar21,(pdVar19->u).f.bitsize,\n                                     pdVar19->visibility);\n                }\n                else {\n                  iVar8 = (*fns->class_static_member)\n                                    (fhandle,pdVar19->name,pcVar21,pdVar19->visibility);\n                }\n                if (iVar8 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar19 = *(debug_field *)((int)pdVar12->fields + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar19 != (debug_field)0x0);\n            }\n            if ((pdVar12->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar20 = *pdVar12->baseclasses, pdVar20 != (debug_baseclass)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar20->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                bVar11 = (*fns->class_baseclass)\n                                   (fhandle,pdVar20->bitpos,pdVar20->is_virtual,pdVar20->visibility)\n                ;\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar20 = *(debug_baseclass *)((int)pdVar12->baseclasses + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar20 != (debug_baseclass)0x0);\n            }\n            if ((pdVar12->methods != (debug_method *)0x0) &&\n               (local_28 = *pdVar12->methods, local_28 != (debug_method)0x0)) {\n              local_24 = 0;\n              do {\n                bVar11 = (*fns->class_start_method)(fhandle,local_28->name);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                iVar17 = 4;\n                pdVar6 = *local_28->variants;\n                while (pdVar6 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar6->context != (debug_type_s *)0x0) &&\n                     (bVar11 = debug_write_type(info,fns,fhandle,pdVar6->context,(debug_name *)0x0),\n                     bVar11 == 0)) {\n                    return 0;\n                  }\n                  bVar11 = debug_write_type(info,fns,fhandle,pdVar6->type,(debug_name *)0x0);\n                  if (bVar11 == 0) {\n                    return 0;\n                  }\n                  if (pdVar6->voffset == 0xffffffff) {\n                    iVar8 = (*fns->class_static_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep);\n                  }\n                  else {\n                    iVar8 = (*fns->class_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep,pdVar6->voffset,\n                                       (uint)(pdVar6->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar8 == 0) {\n                    return 0;\n                  }\n                  piVar1 = (int *)((int)local_28->variants + iVar17);\n                  iVar17 = iVar17 + 4;\n                  pdVar6 = (debug_method_variant_s *)*piVar1;\n                }\n                bVar11 = (*fns->class_end_method)(fhandle);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                local_24 = local_24 + 1;\n                local_28 = ((type->u).kclass)->methods[local_24];\n              } while (local_28 != (debug_method)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->end_class_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_ENUM:\n          pdVar4 = (type->u).kenum;\n          if (pdVar4 == (debug_enum_type *)0x0) {\n            bVar11 = (*fns->enum_type)(fhandle,local_30,(char **)0x0,(bfd_signed_vma *)0x0);\n            return bVar11;\n          }\n          bVar11 = (*fns->enum_type)(fhandle,local_30,pdVar4->names,pdVar4->values);\n          return bVar11;\n        case DEBUG_KIND_POINTER:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->pointer_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_FUNCTION:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar15 = (type->u).kfunction;\n          if (pdVar15->arg_types == (debug_type_conflict *)0x0) {\n            iVar17 = -1;\n          }\n          else {\n            iVar17 = 0;\n            pdVar10 = *pdVar15->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar15 = (type->u).kfunction;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar15->arg_types[iVar17];\n            }\n          }\n          bVar11 = (*fns->function_type)(fhandle,iVar17,pdVar15->varargs);\n          return bVar11;\n        case DEBUG_KIND_REFERENCE:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->reference_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_RANGE:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);\n          return bVar11;\n        case DEBUG_KIND_ARRAY:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar3 = (type->u).karray;\n          bVar11 = (*fns->array_type)(fhandle,pdVar3->lower,pdVar3->upper,pdVar3->stringp);\n          return bVar11;\n        case DEBUG_KIND_SET:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          name = (debug_name *)((type->u).karray)->range_type;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->set_type;\n          break;\n        case DEBUG_KIND_OFFSET:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->offset_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_METHOD:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar14 = (type->u).kmethod;\n          if (pdVar14->arg_types == (debug_type_conflict *)0x0) {\n            iVar17 = -1;\n          }\n          else {\n            iVar17 = 0;\n            pdVar10 = *pdVar14->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar14 = (type->u).kmethod;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar14->arg_types[iVar17];\n            }\n          }\n          pdVar10 = pdVar14->domain_type;\n          if (pdVar10 != (debug_type_s *)0x0) {\n            bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar11 == 0) {\n              return 0;\n            }\n            pdVar14 = (type->u).kmethod;\n            pdVar10 = pdVar14->domain_type;\n          }\n          bVar11 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar17,\n                                       pdVar14->varargs);\n          return bVar11;\n        case DEBUG_KIND_CONST:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->const_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_VOLATILE:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->volatile_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_NAMED:\n          goto _L264;\n        case DEBUG_KIND_TAGGED:\n_L268:\n          local_2c = (type->u).karray;\n          name = (debug_name *)local_2c->element_type;\n          goto LAB_0001d36b;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\nLAB_0001d9c6:\n                    /* WARNING: Could not recover jumptable at 0x0001d9cd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        bVar11 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)name);\n        return bVar11;\n      }" if (parenthesized_expression "(name == (debug_name *)0x0)" ( (binary_expression "name == (debug_name *)0x0" identifier == (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_30 = (char *)0x0;\nLAB_0001d329:\n        switch(dVar9) {\n        case DEBUG_KIND_ILLEGAL:\n          uVar7 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar7);\n          return 0;\n        case DEBUG_KIND_INDIRECT:\n          goto _L288;\n        case DEBUG_KIND_VOID:\n          UNRECOVERED_JUMPTABLE_00 = fns->void_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_INT:\n          bVar11 = (*fns->int_type)(fhandle,type->size,(type->u).kint);\n          return bVar11;\n        case DEBUG_KIND_FLOAT:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->float_type;\n          break;\n        case DEBUG_KIND_COMPLEX:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->complex_type;\n          break;\n        case DEBUG_KIND_BOOL:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->bool_type;\n          break;\n        case DEBUG_KIND_STRUCT:\n        case DEBUG_KIND_UNION:\n          pdVar12 = (type->u).kclass;\n          if (pdVar12 == (debug_class_type *)0x0) {\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            uVar16 = 0;\n          }\n          else {\n            uVar13 = pdVar12->id;\n            if (info->base_id < uVar13) {\n              uVar16 = info->mark;\n              if (pdVar12->mark == uVar16) {\nLAB_0001db48:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,uVar13,type->kind);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar12 = (type->u).kclass;\n              uVar16 = info->mark;\n              if (uVar16 == pdVar12->mark) {\n                uVar13 = pdVar12->id;\n                if (uVar13 <= info->base_id) {\n                  pcVar21 = "debug_write_type";\n                  uVar13 = 0x9d1;\nLAB_0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar13\n                                ,pcVar21);\n                }\n                goto LAB_0001db48;\n              }\n            }\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            pdVar12->mark = uVar16;\n            uVar16 = pdVar12->id;\n            dVar9 = type->kind;\n          }\n          bVar11 = (*p_Var18)(fhandle,local_30,uVar16,(uint)(dVar9 == DEBUG_KIND_STRUCT),uVar13);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          if ((((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar5 = ((type->u).kclass)->fields, ppdVar5 != (debug_field *)0x0)) &&\n             (pdVar19 = *ppdVar5, pdVar19 != (debug_field)0x0)) {\n            iVar17 = 4;\n            do {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              bVar11 = (*fns->struct_field)\n                                 (fhandle,pdVar19->name,(pdVar19->u).f.bitpos,(pdVar19->u).f.bitsize\n                                  ,pdVar19->visibility);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar19 = *(debug_field *)((int)((type->u).kindirect)->slot + iVar17);\n              iVar17 = iVar17 + 4;\n            } while (pdVar19 != (debug_field)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->end_struct_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_CLASS:\n        case DEBUG_KIND_UNION_CLASS:\n          local_34 = (type->u).kclass;\n          if (local_34 == (debug_class_type *)0x0) {\n            uVar13 = 0;\n            local_2c = (debug_array_type *)0x0;\n            local_34 = (debug_class_type *)0x0;\n          }\n          else {\n            local_2c = (debug_array_type *)local_34->id;\n            if (info->base_id < local_2c) {\n              uVar13 = info->mark;\n              if (local_34->mark == uVar13) {\nLAB_0001dafa:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,(uint)local_2c,dVar9);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              local_34 = (type->u).kclass;\n              uVar13 = info->mark;\n              local_2c = (debug_array_type *)local_34->id;\n              if (uVar13 == local_34->mark) {\n                if (local_2c <= info->base_id) {\n                  pcVar21 = "debug_write_class_type";\n                  uVar13 = 0xa7d;\n                  goto LAB_0001de3e;\n                }\n                dVar9 = type->kind;\n                goto LAB_0001dafa;\n              }\n            }\n            local_34->mark = uVar13;\n            local_34 = (debug_class_type *)local_34->vptrbase;\n            if (((debug_class_type *)type == local_34) || (local_34 == (debug_class_type *)0x0)) {\n              uVar13 = (uint)(local_34 != (debug_class_type *)0x0);\n              dVar9 = type->kind;\n            }\n            else {\n              bVar11 = debug_write_type(info,fns,fhandle,(debug_type_s *)local_34,(debug_name *)0x0)\n              ;\n              if (bVar11 == 0) {\n                return 0;\n              }\n              dVar9 = type->kind;\n              uVar13 = 1;\n            }\n          }\n          bVar11 = (*fns->start_class_type)\n                             (fhandle,local_30,(uint)local_2c,(uint)(dVar9 == DEBUG_KIND_CLASS),\n                              type->size,uVar13,(uint)((debug_class_type *)type == local_34));\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar12 = (type->u).kclass;\n          if (pdVar12 != (debug_class_type *)0x0) {\n            if ((pdVar12->fields != (debug_field *)0x0) &&\n               (pdVar19 = *pdVar12->fields, pdVar19 != (debug_field)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pcVar21 = (char *)(pdVar19->u).f.bitpos;\n                if (pdVar19->static_member == 0) {\n                  iVar8 = (*fns->struct_field)\n                                    (fhandle,pdVar19->name,(bfd_vma)pcVar21,(pdVar19->u).f.bitsize,\n                                     pdVar19->visibility);\n                }\n                else {\n                  iVar8 = (*fns->class_static_member)\n                                    (fhandle,pdVar19->name,pcVar21,pdVar19->visibility);\n                }\n                if (iVar8 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar19 = *(debug_field *)((int)pdVar12->fields + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar19 != (debug_field)0x0);\n            }\n            if ((pdVar12->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar20 = *pdVar12->baseclasses, pdVar20 != (debug_baseclass)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar20->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                bVar11 = (*fns->class_baseclass)\n                                   (fhandle,pdVar20->bitpos,pdVar20->is_virtual,pdVar20->visibility)\n                ;\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar20 = *(debug_baseclass *)((int)pdVar12->baseclasses + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar20 != (debug_baseclass)0x0);\n            }\n            if ((pdVar12->methods != (debug_method *)0x0) &&\n               (local_28 = *pdVar12->methods, local_28 != (debug_method)0x0)) {\n              local_24 = 0;\n              do {\n                bVar11 = (*fns->class_start_method)(fhandle,local_28->name);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                iVar17 = 4;\n                pdVar6 = *local_28->variants;\n                while (pdVar6 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar6->context != (debug_type_s *)0x0) &&\n                     (bVar11 = debug_write_type(info,fns,fhandle,pdVar6->context,(debug_name *)0x0),\n                     bVar11 == 0)) {\n                    return 0;\n                  }\n                  bVar11 = debug_write_type(info,fns,fhandle,pdVar6->type,(debug_name *)0x0);\n                  if (bVar11 == 0) {\n                    return 0;\n                  }\n                  if (pdVar6->voffset == 0xffffffff) {\n                    iVar8 = (*fns->class_static_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep);\n                  }\n                  else {\n                    iVar8 = (*fns->class_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep,pdVar6->voffset,\n                                       (uint)(pdVar6->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar8 == 0) {\n                    return 0;\n                  }\n                  piVar1 = (int *)((int)local_28->variants + iVar17);\n                  iVar17 = iVar17 + 4;\n                  pdVar6 = (debug_method_variant_s *)*piVar1;\n                }\n                bVar11 = (*fns->class_end_method)(fhandle);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                local_24 = local_24 + 1;\n                local_28 = ((type->u).kclass)->methods[local_24];\n              } while (local_28 != (debug_method)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->end_class_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_ENUM:\n          pdVar4 = (type->u).kenum;\n          if (pdVar4 == (debug_enum_type *)0x0) {\n            bVar11 = (*fns->enum_type)(fhandle,local_30,(char **)0x0,(bfd_signed_vma *)0x0);\n            return bVar11;\n          }\n          bVar11 = (*fns->enum_type)(fhandle,local_30,pdVar4->names,pdVar4->values);\n          return bVar11;\n        case DEBUG_KIND_POINTER:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->pointer_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_FUNCTION:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar15 = (type->u).kfunction;\n          if (pdVar15->arg_types == (debug_type_conflict *)0x0) {\n            iVar17 = -1;\n          }\n          else {\n            iVar17 = 0;\n            pdVar10 = *pdVar15->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar15 = (type->u).kfunction;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar15->arg_types[iVar17];\n            }\n          }\n          bVar11 = (*fns->function_type)(fhandle,iVar17,pdVar15->varargs);\n          return bVar11;\n        case DEBUG_KIND_REFERENCE:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->reference_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_RANGE:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);\n          return bVar11;\n        case DEBUG_KIND_ARRAY:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar3 = (type->u).karray;\n          bVar11 = (*fns->array_type)(fhandle,pdVar3->lower,pdVar3->upper,pdVar3->stringp);\n          return bVar11;\n        case DEBUG_KIND_SET:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          name = (debug_name *)((type->u).karray)->range_type;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->set_type;\n          break;\n        case DEBUG_KIND_OFFSET:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->offset_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_METHOD:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar14 = (type->u).kmethod;\n          if (pdVar14->arg_types == (debug_type_conflict *)0x0) {\n            iVar17 = -1;\n          }\n          else {\n            iVar17 = 0;\n            pdVar10 = *pdVar14->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar14 = (type->u).kmethod;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar14->arg_types[iVar17];\n            }\n          }\n          pdVar10 = pdVar14->domain_type;\n          if (pdVar10 != (debug_type_s *)0x0) {\n            bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar11 == 0) {\n              return 0;\n            }\n            pdVar14 = (type->u).kmethod;\n            pdVar10 = pdVar14->domain_type;\n          }\n          bVar11 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar17,\n                                       pdVar14->varargs);\n          return bVar11;\n        case DEBUG_KIND_CONST:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->const_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_VOLATILE:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->volatile_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_NAMED:\n          goto _L264;\n        case DEBUG_KIND_TAGGED:\n_L268:\n          local_2c = (type->u).karray;\n          name = (debug_name *)local_2c->element_type;\n          goto LAB_0001d36b;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\nLAB_0001d9c6:\n                    /* WARNING: Could not recover jumptable at 0x0001d9cd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        bVar11 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)name);\n        return bVar11;\n      }" { (expression_statement "local_30 = (char *)0x0;" (assignment_expression "local_30 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0001d329:\n        switch(dVar9) {\n        case DEBUG_KIND_ILLEGAL:\n          uVar7 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar7);\n          return 0;\n        case DEBUG_KIND_INDIRECT:\n          goto _L288;\n        case DEBUG_KIND_VOID:\n          UNRECOVERED_JUMPTABLE_00 = fns->void_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_INT:\n          bVar11 = (*fns->int_type)(fhandle,type->size,(type->u).kint);\n          return bVar11;\n        case DEBUG_KIND_FLOAT:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->float_type;\n          break;\n        case DEBUG_KIND_COMPLEX:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->complex_type;\n          break;\n        case DEBUG_KIND_BOOL:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->bool_type;\n          break;\n        case DEBUG_KIND_STRUCT:\n        case DEBUG_KIND_UNION:\n          pdVar12 = (type->u).kclass;\n          if (pdVar12 == (debug_class_type *)0x0) {\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            uVar16 = 0;\n          }\n          else {\n            uVar13 = pdVar12->id;\n            if (info->base_id < uVar13) {\n              uVar16 = info->mark;\n              if (pdVar12->mark == uVar16) {\nLAB_0001db48:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,uVar13,type->kind);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar12 = (type->u).kclass;\n              uVar16 = info->mark;\n              if (uVar16 == pdVar12->mark) {\n                uVar13 = pdVar12->id;\n                if (uVar13 <= info->base_id) {\n                  pcVar21 = "debug_write_type";\n                  uVar13 = 0x9d1;\nLAB_0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar13\n                                ,pcVar21);\n                }\n                goto LAB_0001db48;\n              }\n            }\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            pdVar12->mark = uVar16;\n            uVar16 = pdVar12->id;\n            dVar9 = type->kind;\n          }\n          bVar11 = (*p_Var18)(fhandle,local_30,uVar16,(uint)(dVar9 == DEBUG_KIND_STRUCT),uVar13);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          if ((((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar5 = ((type->u).kclass)->fields, ppdVar5 != (debug_field *)0x0)) &&\n             (pdVar19 = *ppdVar5, pdVar19 != (debug_field)0x0)) {\n            iVar17 = 4;\n            do {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              bVar11 = (*fns->struct_field)\n                                 (fhandle,pdVar19->name,(pdVar19->u).f.bitpos,(pdVar19->u).f.bitsize\n                                  ,pdVar19->visibility);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar19 = *(debug_field *)((int)((type->u).kindirect)->slot + iVar17);\n              iVar17 = iVar17 + 4;\n            } while (pdVar19 != (debug_field)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->end_struct_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_CLASS:\n        case DEBUG_KIND_UNION_CLASS:\n          local_34 = (type->u).kclass;\n          if (local_34 == (debug_class_type *)0x0) {\n            uVar13 = 0;\n            local_2c = (debug_array_type *)0x0;\n            local_34 = (debug_class_type *)0x0;\n          }\n          else {\n            local_2c = (debug_array_type *)local_34->id;\n            if (info->base_id < local_2c) {\n              uVar13 = info->mark;\n              if (local_34->mark == uVar13) {\nLAB_0001dafa:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,(uint)local_2c,dVar9);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              local_34 = (type->u).kclass;\n              uVar13 = info->mark;\n              local_2c = (debug_array_type *)local_34->id;\n              if (uVar13 == local_34->mark) {\n                if (local_2c <= info->base_id) {\n                  pcVar21 = "debug_write_class_type";\n                  uVar13 = 0xa7d;\n                  goto LAB_0001de3e;\n                }\n                dVar9 = type->kind;\n                goto LAB_0001dafa;\n              }\n            }\n            local_34->mark = uVar13;\n            local_34 = (debug_class_type *)local_34->vptrbase;\n            if (((debug_class_type *)type == local_34) || (local_34 == (debug_class_type *)0x0)) {\n              uVar13 = (uint)(local_34 != (debug_class_type *)0x0);\n              dVar9 = type->kind;\n            }\n            else {\n              bVar11 = debug_write_type(info,fns,fhandle,(debug_type_s *)local_34,(debug_name *)0x0)\n              ;\n              if (bVar11 == 0) {\n                return 0;\n              }\n              dVar9 = type->kind;\n              uVar13 = 1;\n            }\n          }\n          bVar11 = (*fns->start_class_type)\n                             (fhandle,local_30,(uint)local_2c,(uint)(dVar9 == DEBUG_KIND_CLASS),\n                              type->size,uVar13,(uint)((debug_class_type *)type == local_34));\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar12 = (type->u).kclass;\n          if (pdVar12 != (debug_class_type *)0x0) {\n            if ((pdVar12->fields != (debug_field *)0x0) &&\n               (pdVar19 = *pdVar12->fields, pdVar19 != (debug_field)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pcVar21 = (char *)(pdVar19->u).f.bitpos;\n                if (pdVar19->static_member == 0) {\n                  iVar8 = (*fns->struct_field)\n                                    (fhandle,pdVar19->name,(bfd_vma)pcVar21,(pdVar19->u).f.bitsize,\n                                     pdVar19->visibility);\n                }\n                else {\n                  iVar8 = (*fns->class_static_member)\n                                    (fhandle,pdVar19->name,pcVar21,pdVar19->visibility);\n                }\n                if (iVar8 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar19 = *(debug_field *)((int)pdVar12->fields + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar19 != (debug_field)0x0);\n            }\n            if ((pdVar12->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar20 = *pdVar12->baseclasses, pdVar20 != (debug_baseclass)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar20->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                bVar11 = (*fns->class_baseclass)\n                                   (fhandle,pdVar20->bitpos,pdVar20->is_virtual,pdVar20->visibility)\n                ;\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar20 = *(debug_baseclass *)((int)pdVar12->baseclasses + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar20 != (debug_baseclass)0x0);\n            }\n            if ((pdVar12->methods != (debug_method *)0x0) &&\n               (local_28 = *pdVar12->methods, local_28 != (debug_method)0x0)) {\n              local_24 = 0;\n              do {\n                bVar11 = (*fns->class_start_method)(fhandle,local_28->name);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                iVar17 = 4;\n                pdVar6 = *local_28->variants;\n                while (pdVar6 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar6->context != (debug_type_s *)0x0) &&\n                     (bVar11 = debug_write_type(info,fns,fhandle,pdVar6->context,(debug_name *)0x0),\n                     bVar11 == 0)) {\n                    return 0;\n                  }\n                  bVar11 = debug_write_type(info,fns,fhandle,pdVar6->type,(debug_name *)0x0);\n                  if (bVar11 == 0) {\n                    return 0;\n                  }\n                  if (pdVar6->voffset == 0xffffffff) {\n                    iVar8 = (*fns->class_static_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep);\n                  }\n                  else {\n                    iVar8 = (*fns->class_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep,pdVar6->voffset,\n                                       (uint)(pdVar6->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar8 == 0) {\n                    return 0;\n                  }\n                  piVar1 = (int *)((int)local_28->variants + iVar17);\n                  iVar17 = iVar17 + 4;\n                  pdVar6 = (debug_method_variant_s *)*piVar1;\n                }\n                bVar11 = (*fns->class_end_method)(fhandle);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                local_24 = local_24 + 1;\n                local_28 = ((type->u).kclass)->methods[local_24];\n              } while (local_28 != (debug_method)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->end_class_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_ENUM:\n          pdVar4 = (type->u).kenum;\n          if (pdVar4 == (debug_enum_type *)0x0) {\n            bVar11 = (*fns->enum_type)(fhandle,local_30,(char **)0x0,(bfd_signed_vma *)0x0);\n            return bVar11;\n          }\n          bVar11 = (*fns->enum_type)(fhandle,local_30,pdVar4->names,pdVar4->values);\n          return bVar11;\n        case DEBUG_KIND_POINTER:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->pointer_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_FUNCTION:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar15 = (type->u).kfunction;\n          if (pdVar15->arg_types == (debug_type_conflict *)0x0) {\n            iVar17 = -1;\n          }\n          else {\n            iVar17 = 0;\n            pdVar10 = *pdVar15->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar15 = (type->u).kfunction;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar15->arg_types[iVar17];\n            }\n          }\n          bVar11 = (*fns->function_type)(fhandle,iVar17,pdVar15->varargs);\n          return bVar11;\n        case DEBUG_KIND_REFERENCE:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->reference_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_RANGE:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);\n          return bVar11;\n        case DEBUG_KIND_ARRAY:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar3 = (type->u).karray;\n          bVar11 = (*fns->array_type)(fhandle,pdVar3->lower,pdVar3->upper,pdVar3->stringp);\n          return bVar11;\n        case DEBUG_KIND_SET:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          name = (debug_name *)((type->u).karray)->range_type;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->set_type;\n          break;\n        case DEBUG_KIND_OFFSET:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->offset_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_METHOD:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar14 = (type->u).kmethod;\n          if (pdVar14->arg_types == (debug_type_conflict *)0x0) {\n            iVar17 = -1;\n          }\n          else {\n            iVar17 = 0;\n            pdVar10 = *pdVar14->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar14 = (type->u).kmethod;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar14->arg_types[iVar17];\n            }\n          }\n          pdVar10 = pdVar14->domain_type;\n          if (pdVar10 != (debug_type_s *)0x0) {\n            bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar11 == 0) {\n              return 0;\n            }\n            pdVar14 = (type->u).kmethod;\n            pdVar10 = pdVar14->domain_type;\n          }\n          bVar11 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar17,\n                                       pdVar14->varargs);\n          return bVar11;\n        case DEBUG_KIND_CONST:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->const_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_VOLATILE:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->volatile_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_NAMED:\n          goto _L264;\n        case DEBUG_KIND_TAGGED:\n_L268:\n          local_2c = (type->u).karray;\n          name = (debug_name *)local_2c->element_type;\n          goto LAB_0001d36b;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }" statement_identifier : (switch_statement "switch(dVar9) {\n        case DEBUG_KIND_ILLEGAL:\n          uVar7 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar7);\n          return 0;\n        case DEBUG_KIND_INDIRECT:\n          goto _L288;\n        case DEBUG_KIND_VOID:\n          UNRECOVERED_JUMPTABLE_00 = fns->void_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_INT:\n          bVar11 = (*fns->int_type)(fhandle,type->size,(type->u).kint);\n          return bVar11;\n        case DEBUG_KIND_FLOAT:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->float_type;\n          break;\n        case DEBUG_KIND_COMPLEX:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->complex_type;\n          break;\n        case DEBUG_KIND_BOOL:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->bool_type;\n          break;\n        case DEBUG_KIND_STRUCT:\n        case DEBUG_KIND_UNION:\n          pdVar12 = (type->u).kclass;\n          if (pdVar12 == (debug_class_type *)0x0) {\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            uVar16 = 0;\n          }\n          else {\n            uVar13 = pdVar12->id;\n            if (info->base_id < uVar13) {\n              uVar16 = info->mark;\n              if (pdVar12->mark == uVar16) {\nLAB_0001db48:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,uVar13,type->kind);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar12 = (type->u).kclass;\n              uVar16 = info->mark;\n              if (uVar16 == pdVar12->mark) {\n                uVar13 = pdVar12->id;\n                if (uVar13 <= info->base_id) {\n                  pcVar21 = "debug_write_type";\n                  uVar13 = 0x9d1;\nLAB_0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar13\n                                ,pcVar21);\n                }\n                goto LAB_0001db48;\n              }\n            }\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            pdVar12->mark = uVar16;\n            uVar16 = pdVar12->id;\n            dVar9 = type->kind;\n          }\n          bVar11 = (*p_Var18)(fhandle,local_30,uVar16,(uint)(dVar9 == DEBUG_KIND_STRUCT),uVar13);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          if ((((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar5 = ((type->u).kclass)->fields, ppdVar5 != (debug_field *)0x0)) &&\n             (pdVar19 = *ppdVar5, pdVar19 != (debug_field)0x0)) {\n            iVar17 = 4;\n            do {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              bVar11 = (*fns->struct_field)\n                                 (fhandle,pdVar19->name,(pdVar19->u).f.bitpos,(pdVar19->u).f.bitsize\n                                  ,pdVar19->visibility);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar19 = *(debug_field *)((int)((type->u).kindirect)->slot + iVar17);\n              iVar17 = iVar17 + 4;\n            } while (pdVar19 != (debug_field)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->end_struct_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_CLASS:\n        case DEBUG_KIND_UNION_CLASS:\n          local_34 = (type->u).kclass;\n          if (local_34 == (debug_class_type *)0x0) {\n            uVar13 = 0;\n            local_2c = (debug_array_type *)0x0;\n            local_34 = (debug_class_type *)0x0;\n          }\n          else {\n            local_2c = (debug_array_type *)local_34->id;\n            if (info->base_id < local_2c) {\n              uVar13 = info->mark;\n              if (local_34->mark == uVar13) {\nLAB_0001dafa:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,(uint)local_2c,dVar9);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              local_34 = (type->u).kclass;\n              uVar13 = info->mark;\n              local_2c = (debug_array_type *)local_34->id;\n              if (uVar13 == local_34->mark) {\n                if (local_2c <= info->base_id) {\n                  pcVar21 = "debug_write_class_type";\n                  uVar13 = 0xa7d;\n                  goto LAB_0001de3e;\n                }\n                dVar9 = type->kind;\n                goto LAB_0001dafa;\n              }\n            }\n            local_34->mark = uVar13;\n            local_34 = (debug_class_type *)local_34->vptrbase;\n            if (((debug_class_type *)type == local_34) || (local_34 == (debug_class_type *)0x0)) {\n              uVar13 = (uint)(local_34 != (debug_class_type *)0x0);\n              dVar9 = type->kind;\n            }\n            else {\n              bVar11 = debug_write_type(info,fns,fhandle,(debug_type_s *)local_34,(debug_name *)0x0)\n              ;\n              if (bVar11 == 0) {\n                return 0;\n              }\n              dVar9 = type->kind;\n              uVar13 = 1;\n            }\n          }\n          bVar11 = (*fns->start_class_type)\n                             (fhandle,local_30,(uint)local_2c,(uint)(dVar9 == DEBUG_KIND_CLASS),\n                              type->size,uVar13,(uint)((debug_class_type *)type == local_34));\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar12 = (type->u).kclass;\n          if (pdVar12 != (debug_class_type *)0x0) {\n            if ((pdVar12->fields != (debug_field *)0x0) &&\n               (pdVar19 = *pdVar12->fields, pdVar19 != (debug_field)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pcVar21 = (char *)(pdVar19->u).f.bitpos;\n                if (pdVar19->static_member == 0) {\n                  iVar8 = (*fns->struct_field)\n                                    (fhandle,pdVar19->name,(bfd_vma)pcVar21,(pdVar19->u).f.bitsize,\n                                     pdVar19->visibility);\n                }\n                else {\n                  iVar8 = (*fns->class_static_member)\n                                    (fhandle,pdVar19->name,pcVar21,pdVar19->visibility);\n                }\n                if (iVar8 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar19 = *(debug_field *)((int)pdVar12->fields + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar19 != (debug_field)0x0);\n            }\n            if ((pdVar12->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar20 = *pdVar12->baseclasses, pdVar20 != (debug_baseclass)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar20->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                bVar11 = (*fns->class_baseclass)\n                                   (fhandle,pdVar20->bitpos,pdVar20->is_virtual,pdVar20->visibility)\n                ;\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar20 = *(debug_baseclass *)((int)pdVar12->baseclasses + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar20 != (debug_baseclass)0x0);\n            }\n            if ((pdVar12->methods != (debug_method *)0x0) &&\n               (local_28 = *pdVar12->methods, local_28 != (debug_method)0x0)) {\n              local_24 = 0;\n              do {\n                bVar11 = (*fns->class_start_method)(fhandle,local_28->name);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                iVar17 = 4;\n                pdVar6 = *local_28->variants;\n                while (pdVar6 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar6->context != (debug_type_s *)0x0) &&\n                     (bVar11 = debug_write_type(info,fns,fhandle,pdVar6->context,(debug_name *)0x0),\n                     bVar11 == 0)) {\n                    return 0;\n                  }\n                  bVar11 = debug_write_type(info,fns,fhandle,pdVar6->type,(debug_name *)0x0);\n                  if (bVar11 == 0) {\n                    return 0;\n                  }\n                  if (pdVar6->voffset == 0xffffffff) {\n                    iVar8 = (*fns->class_static_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep);\n                  }\n                  else {\n                    iVar8 = (*fns->class_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep,pdVar6->voffset,\n                                       (uint)(pdVar6->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar8 == 0) {\n                    return 0;\n                  }\n                  piVar1 = (int *)((int)local_28->variants + iVar17);\n                  iVar17 = iVar17 + 4;\n                  pdVar6 = (debug_method_variant_s *)*piVar1;\n                }\n                bVar11 = (*fns->class_end_method)(fhandle);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                local_24 = local_24 + 1;\n                local_28 = ((type->u).kclass)->methods[local_24];\n              } while (local_28 != (debug_method)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->end_class_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_ENUM:\n          pdVar4 = (type->u).kenum;\n          if (pdVar4 == (debug_enum_type *)0x0) {\n            bVar11 = (*fns->enum_type)(fhandle,local_30,(char **)0x0,(bfd_signed_vma *)0x0);\n            return bVar11;\n          }\n          bVar11 = (*fns->enum_type)(fhandle,local_30,pdVar4->names,pdVar4->values);\n          return bVar11;\n        case DEBUG_KIND_POINTER:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->pointer_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_FUNCTION:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar15 = (type->u).kfunction;\n          if (pdVar15->arg_types == (debug_type_conflict *)0x0) {\n            iVar17 = -1;\n          }\n          else {\n            iVar17 = 0;\n            pdVar10 = *pdVar15->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar15 = (type->u).kfunction;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar15->arg_types[iVar17];\n            }\n          }\n          bVar11 = (*fns->function_type)(fhandle,iVar17,pdVar15->varargs);\n          return bVar11;\n        case DEBUG_KIND_REFERENCE:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->reference_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_RANGE:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);\n          return bVar11;\n        case DEBUG_KIND_ARRAY:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar3 = (type->u).karray;\n          bVar11 = (*fns->array_type)(fhandle,pdVar3->lower,pdVar3->upper,pdVar3->stringp);\n          return bVar11;\n        case DEBUG_KIND_SET:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          name = (debug_name *)((type->u).karray)->range_type;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->set_type;\n          break;\n        case DEBUG_KIND_OFFSET:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->offset_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_METHOD:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar14 = (type->u).kmethod;\n          if (pdVar14->arg_types == (debug_type_conflict *)0x0) {\n            iVar17 = -1;\n          }\n          else {\n            iVar17 = 0;\n            pdVar10 = *pdVar14->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar14 = (type->u).kmethod;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar14->arg_types[iVar17];\n            }\n          }\n          pdVar10 = pdVar14->domain_type;\n          if (pdVar10 != (debug_type_s *)0x0) {\n            bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar11 == 0) {\n              return 0;\n            }\n            pdVar14 = (type->u).kmethod;\n            pdVar10 = pdVar14->domain_type;\n          }\n          bVar11 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar17,\n                                       pdVar14->varargs);\n          return bVar11;\n        case DEBUG_KIND_CONST:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->const_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_VOLATILE:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->volatile_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_NAMED:\n          goto _L264;\n        case DEBUG_KIND_TAGGED:\n_L268:\n          local_2c = (type->u).karray;\n          name = (debug_name *)local_2c->element_type;\n          goto LAB_0001d36b;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }" switch (parenthesized_expression "(dVar9)" ( identifier )) (compound_statement "{\n        case DEBUG_KIND_ILLEGAL:\n          uVar7 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar7);\n          return 0;\n        case DEBUG_KIND_INDIRECT:\n          goto _L288;\n        case DEBUG_KIND_VOID:\n          UNRECOVERED_JUMPTABLE_00 = fns->void_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_INT:\n          bVar11 = (*fns->int_type)(fhandle,type->size,(type->u).kint);\n          return bVar11;\n        case DEBUG_KIND_FLOAT:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->float_type;\n          break;\n        case DEBUG_KIND_COMPLEX:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->complex_type;\n          break;\n        case DEBUG_KIND_BOOL:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->bool_type;\n          break;\n        case DEBUG_KIND_STRUCT:\n        case DEBUG_KIND_UNION:\n          pdVar12 = (type->u).kclass;\n          if (pdVar12 == (debug_class_type *)0x0) {\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            uVar16 = 0;\n          }\n          else {\n            uVar13 = pdVar12->id;\n            if (info->base_id < uVar13) {\n              uVar16 = info->mark;\n              if (pdVar12->mark == uVar16) {\nLAB_0001db48:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,uVar13,type->kind);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar12 = (type->u).kclass;\n              uVar16 = info->mark;\n              if (uVar16 == pdVar12->mark) {\n                uVar13 = pdVar12->id;\n                if (uVar13 <= info->base_id) {\n                  pcVar21 = "debug_write_type";\n                  uVar13 = 0x9d1;\nLAB_0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar13\n                                ,pcVar21);\n                }\n                goto LAB_0001db48;\n              }\n            }\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            pdVar12->mark = uVar16;\n            uVar16 = pdVar12->id;\n            dVar9 = type->kind;\n          }\n          bVar11 = (*p_Var18)(fhandle,local_30,uVar16,(uint)(dVar9 == DEBUG_KIND_STRUCT),uVar13);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          if ((((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar5 = ((type->u).kclass)->fields, ppdVar5 != (debug_field *)0x0)) &&\n             (pdVar19 = *ppdVar5, pdVar19 != (debug_field)0x0)) {\n            iVar17 = 4;\n            do {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              bVar11 = (*fns->struct_field)\n                                 (fhandle,pdVar19->name,(pdVar19->u).f.bitpos,(pdVar19->u).f.bitsize\n                                  ,pdVar19->visibility);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar19 = *(debug_field *)((int)((type->u).kindirect)->slot + iVar17);\n              iVar17 = iVar17 + 4;\n            } while (pdVar19 != (debug_field)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->end_struct_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_CLASS:\n        case DEBUG_KIND_UNION_CLASS:\n          local_34 = (type->u).kclass;\n          if (local_34 == (debug_class_type *)0x0) {\n            uVar13 = 0;\n            local_2c = (debug_array_type *)0x0;\n            local_34 = (debug_class_type *)0x0;\n          }\n          else {\n            local_2c = (debug_array_type *)local_34->id;\n            if (info->base_id < local_2c) {\n              uVar13 = info->mark;\n              if (local_34->mark == uVar13) {\nLAB_0001dafa:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,(uint)local_2c,dVar9);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              local_34 = (type->u).kclass;\n              uVar13 = info->mark;\n              local_2c = (debug_array_type *)local_34->id;\n              if (uVar13 == local_34->mark) {\n                if (local_2c <= info->base_id) {\n                  pcVar21 = "debug_write_class_type";\n                  uVar13 = 0xa7d;\n                  goto LAB_0001de3e;\n                }\n                dVar9 = type->kind;\n                goto LAB_0001dafa;\n              }\n            }\n            local_34->mark = uVar13;\n            local_34 = (debug_class_type *)local_34->vptrbase;\n            if (((debug_class_type *)type == local_34) || (local_34 == (debug_class_type *)0x0)) {\n              uVar13 = (uint)(local_34 != (debug_class_type *)0x0);\n              dVar9 = type->kind;\n            }\n            else {\n              bVar11 = debug_write_type(info,fns,fhandle,(debug_type_s *)local_34,(debug_name *)0x0)\n              ;\n              if (bVar11 == 0) {\n                return 0;\n              }\n              dVar9 = type->kind;\n              uVar13 = 1;\n            }\n          }\n          bVar11 = (*fns->start_class_type)\n                             (fhandle,local_30,(uint)local_2c,(uint)(dVar9 == DEBUG_KIND_CLASS),\n                              type->size,uVar13,(uint)((debug_class_type *)type == local_34));\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar12 = (type->u).kclass;\n          if (pdVar12 != (debug_class_type *)0x0) {\n            if ((pdVar12->fields != (debug_field *)0x0) &&\n               (pdVar19 = *pdVar12->fields, pdVar19 != (debug_field)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pcVar21 = (char *)(pdVar19->u).f.bitpos;\n                if (pdVar19->static_member == 0) {\n                  iVar8 = (*fns->struct_field)\n                                    (fhandle,pdVar19->name,(bfd_vma)pcVar21,(pdVar19->u).f.bitsize,\n                                     pdVar19->visibility);\n                }\n                else {\n                  iVar8 = (*fns->class_static_member)\n                                    (fhandle,pdVar19->name,pcVar21,pdVar19->visibility);\n                }\n                if (iVar8 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar19 = *(debug_field *)((int)pdVar12->fields + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar19 != (debug_field)0x0);\n            }\n            if ((pdVar12->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar20 = *pdVar12->baseclasses, pdVar20 != (debug_baseclass)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar20->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                bVar11 = (*fns->class_baseclass)\n                                   (fhandle,pdVar20->bitpos,pdVar20->is_virtual,pdVar20->visibility)\n                ;\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar20 = *(debug_baseclass *)((int)pdVar12->baseclasses + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar20 != (debug_baseclass)0x0);\n            }\n            if ((pdVar12->methods != (debug_method *)0x0) &&\n               (local_28 = *pdVar12->methods, local_28 != (debug_method)0x0)) {\n              local_24 = 0;\n              do {\n                bVar11 = (*fns->class_start_method)(fhandle,local_28->name);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                iVar17 = 4;\n                pdVar6 = *local_28->variants;\n                while (pdVar6 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar6->context != (debug_type_s *)0x0) &&\n                     (bVar11 = debug_write_type(info,fns,fhandle,pdVar6->context,(debug_name *)0x0),\n                     bVar11 == 0)) {\n                    return 0;\n                  }\n                  bVar11 = debug_write_type(info,fns,fhandle,pdVar6->type,(debug_name *)0x0);\n                  if (bVar11 == 0) {\n                    return 0;\n                  }\n                  if (pdVar6->voffset == 0xffffffff) {\n                    iVar8 = (*fns->class_static_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep);\n                  }\n                  else {\n                    iVar8 = (*fns->class_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep,pdVar6->voffset,\n                                       (uint)(pdVar6->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar8 == 0) {\n                    return 0;\n                  }\n                  piVar1 = (int *)((int)local_28->variants + iVar17);\n                  iVar17 = iVar17 + 4;\n                  pdVar6 = (debug_method_variant_s *)*piVar1;\n                }\n                bVar11 = (*fns->class_end_method)(fhandle);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                local_24 = local_24 + 1;\n                local_28 = ((type->u).kclass)->methods[local_24];\n              } while (local_28 != (debug_method)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->end_class_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_ENUM:\n          pdVar4 = (type->u).kenum;\n          if (pdVar4 == (debug_enum_type *)0x0) {\n            bVar11 = (*fns->enum_type)(fhandle,local_30,(char **)0x0,(bfd_signed_vma *)0x0);\n            return bVar11;\n          }\n          bVar11 = (*fns->enum_type)(fhandle,local_30,pdVar4->names,pdVar4->values);\n          return bVar11;\n        case DEBUG_KIND_POINTER:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->pointer_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_FUNCTION:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar15 = (type->u).kfunction;\n          if (pdVar15->arg_types == (debug_type_conflict *)0x0) {\n            iVar17 = -1;\n          }\n          else {\n            iVar17 = 0;\n            pdVar10 = *pdVar15->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar15 = (type->u).kfunction;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar15->arg_types[iVar17];\n            }\n          }\n          bVar11 = (*fns->function_type)(fhandle,iVar17,pdVar15->varargs);\n          return bVar11;\n        case DEBUG_KIND_REFERENCE:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->reference_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_RANGE:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);\n          return bVar11;\n        case DEBUG_KIND_ARRAY:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar3 = (type->u).karray;\n          bVar11 = (*fns->array_type)(fhandle,pdVar3->lower,pdVar3->upper,pdVar3->stringp);\n          return bVar11;\n        case DEBUG_KIND_SET:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          name = (debug_name *)((type->u).karray)->range_type;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->set_type;\n          break;\n        case DEBUG_KIND_OFFSET:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->offset_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_METHOD:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar14 = (type->u).kmethod;\n          if (pdVar14->arg_types == (debug_type_conflict *)0x0) {\n            iVar17 = -1;\n          }\n          else {\n            iVar17 = 0;\n            pdVar10 = *pdVar14->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar14 = (type->u).kmethod;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar14->arg_types[iVar17];\n            }\n          }\n          pdVar10 = pdVar14->domain_type;\n          if (pdVar10 != (debug_type_s *)0x0) {\n            bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar11 == 0) {\n              return 0;\n            }\n            pdVar14 = (type->u).kmethod;\n            pdVar10 = pdVar14->domain_type;\n          }\n          bVar11 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar17,\n                                       pdVar14->varargs);\n          return bVar11;\n        case DEBUG_KIND_CONST:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->const_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_VOLATILE:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->volatile_type;\n          goto LAB_0001d69f;\n        case DEBUG_KIND_NAMED:\n          goto _L264;\n        case DEBUG_KIND_TAGGED:\n_L268:\n          local_2c = (type->u).karray;\n          name = (debug_name *)local_2c->element_type;\n          goto LAB_0001d36b;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }" { (case_statement "case DEBUG_KIND_ILLEGAL:\n          uVar7 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar7);\n          return 0;" case identifier : (expression_statement "uVar7 = dcgettext(0,"debug_write_type: illegal type encountered",5);" (assignment_expression "uVar7 = dcgettext(0,"debug_write_type: illegal type encountered",5)" identifier = (call_expression "dcgettext(0,"debug_write_type: illegal type encountered",5)" identifier (argument_list "(0,"debug_write_type: illegal type encountered",5)" ( number_literal , (string_literal ""debug_write_type: illegal type encountered"" " string_content ") , number_literal )))) ;) (expression_statement "fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar7);" (call_expression "fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar7)" identifier (argument_list "(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar7)" ( (pointer_expression "*(FILE **)PTR_stderr_0003efa8" * (cast_expression "(FILE **)PTR_stderr_0003efa8" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , (string_literal ""%s\n"" " string_content escape_sequence ") , identifier ))) ;) (return_statement "return 0;" return number_literal ;)) (case_statement "case DEBUG_KIND_INDIRECT:\n          goto _L288;" case identifier : (goto_statement "goto _L288;" goto statement_identifier ;)) (case_statement "case DEBUG_KIND_VOID:\n          UNRECOVERED_JUMPTABLE_00 = fns->void_type;\n          goto LAB_0001d69f;" case identifier : (expression_statement "UNRECOVERED_JUMPTABLE_00 = fns->void_type;" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = fns->void_type" identifier = (field_expression "fns->void_type" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0001d69f;" goto statement_identifier ;)) (case_statement "case DEBUG_KIND_INT:\n          bVar11 = (*fns->int_type)(fhandle,type->size,(type->u).kint);\n          return bVar11;" case identifier : (expression_statement "bVar11 = (*fns->int_type)(fhandle,type->size,(type->u).kint);" (assignment_expression "bVar11 = (*fns->int_type)(fhandle,type->size,(type->u).kint)" identifier = (call_expression "(*fns->int_type)(fhandle,type->size,(type->u).kint)" (parenthesized_expression "(*fns->int_type)" ( (pointer_expression "*fns->int_type" * (field_expression "fns->int_type" identifier -> field_identifier)) )) (argument_list "(fhandle,type->size,(type->u).kint)" ( identifier , (field_expression "type->size" identifier -> field_identifier) , (field_expression "(type->u).kint" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier) )))) ;) (return_statement "return bVar11;" return identifier ;)) (case_statement "case DEBUG_KIND_FLOAT:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->float_type;\n          break;" case identifier : (expression_statement "name = (debug_name *)type->size;" (assignment_expression "name = (debug_name *)type->size" identifier = (cast_expression "(debug_name *)type->size" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "type->size" identifier -> field_identifier))) ;) (expression_statement "UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->float_type;" (assignment_expression "UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->float_type" identifier = (cast_expression "(_func_bfd_boolean_void_ptr_char_ptr *)fns->float_type" ( (type_descriptor "_func_bfd_boolean_void_ptr_char_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "fns->float_type" identifier -> field_identifier))) ;) (break_statement "break;" break ;)) (case_statement "case DEBUG_KIND_COMPLEX:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->complex_type;\n          break;" case identifier : (expression_statement "name = (debug_name *)type->size;" (assignment_expression "name = (debug_name *)type->size" identifier = (cast_expression "(debug_name *)type->size" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "type->size" identifier -> field_identifier))) ;) (expression_statement "UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->complex_type;" (assignment_expression "UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->complex_type" identifier = (cast_expression "(_func_bfd_boolean_void_ptr_char_ptr *)fns->complex_type" ( (type_descriptor "_func_bfd_boolean_void_ptr_char_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "fns->complex_type" identifier -> field_identifier))) ;) (break_statement "break;" break ;)) (case_statement "case DEBUG_KIND_BOOL:\n          name = (debug_name *)type->size;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->bool_type;\n          break;" case identifier : (expression_statement "name = (debug_name *)type->size;" (assignment_expression "name = (debug_name *)type->size" identifier = (cast_expression "(debug_name *)type->size" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "type->size" identifier -> field_identifier))) ;) (expression_statement "UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->bool_type;" (assignment_expression "UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->bool_type" identifier = (cast_expression "(_func_bfd_boolean_void_ptr_char_ptr *)fns->bool_type" ( (type_descriptor "_func_bfd_boolean_void_ptr_char_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "fns->bool_type" identifier -> field_identifier))) ;) (break_statement "break;" break ;)) (case_statement "case DEBUG_KIND_STRUCT:" case identifier :) (case_statement "case DEBUG_KIND_UNION:\n          pdVar12 = (type->u).kclass;\n          if (pdVar12 == (debug_class_type *)0x0) {\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            uVar16 = 0;\n          }\n          else {\n            uVar13 = pdVar12->id;\n            if (info->base_id < uVar13) {\n              uVar16 = info->mark;\n              if (pdVar12->mark == uVar16) {\nLAB_0001db48:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,uVar13,type->kind);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar12 = (type->u).kclass;\n              uVar16 = info->mark;\n              if (uVar16 == pdVar12->mark) {\n                uVar13 = pdVar12->id;\n                if (uVar13 <= info->base_id) {\n                  pcVar21 = "debug_write_type";\n                  uVar13 = 0x9d1;\nLAB_0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar13\n                                ,pcVar21);\n                }\n                goto LAB_0001db48;\n              }\n            }\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            pdVar12->mark = uVar16;\n            uVar16 = pdVar12->id;\n            dVar9 = type->kind;\n          }\n          bVar11 = (*p_Var18)(fhandle,local_30,uVar16,(uint)(dVar9 == DEBUG_KIND_STRUCT),uVar13);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          if ((((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar5 = ((type->u).kclass)->fields, ppdVar5 != (debug_field *)0x0)) &&\n             (pdVar19 = *ppdVar5, pdVar19 != (debug_field)0x0)) {\n            iVar17 = 4;\n            do {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              bVar11 = (*fns->struct_field)\n                                 (fhandle,pdVar19->name,(pdVar19->u).f.bitpos,(pdVar19->u).f.bitsize\n                                  ,pdVar19->visibility);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar19 = *(debug_field *)((int)((type->u).kindirect)->slot + iVar17);\n              iVar17 = iVar17 + 4;\n            } while (pdVar19 != (debug_field)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->end_struct_type;\n          goto LAB_0001d69f;" case identifier : (expression_statement "pdVar12 = (type->u).kclass;" (assignment_expression "pdVar12 = (type->u).kclass" identifier = (field_expression "(type->u).kclass" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (pdVar12 == (debug_class_type *)0x0) {\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            uVar16 = 0;\n          }\n          else {\n            uVar13 = pdVar12->id;\n            if (info->base_id < uVar13) {\n              uVar16 = info->mark;\n              if (pdVar12->mark == uVar16) {\nLAB_0001db48:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,uVar13,type->kind);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar12 = (type->u).kclass;\n              uVar16 = info->mark;\n              if (uVar16 == pdVar12->mark) {\n                uVar13 = pdVar12->id;\n                if (uVar13 <= info->base_id) {\n                  pcVar21 = "debug_write_type";\n                  uVar13 = 0x9d1;\nLAB_0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar13\n                                ,pcVar21);\n                }\n                goto LAB_0001db48;\n              }\n            }\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            pdVar12->mark = uVar16;\n            uVar16 = pdVar12->id;\n            dVar9 = type->kind;\n          }" if (parenthesized_expression "(pdVar12 == (debug_class_type *)0x0)" ( (binary_expression "pdVar12 == (debug_class_type *)0x0" identifier == (cast_expression "(debug_class_type *)0x0" ( (type_descriptor "debug_class_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            uVar16 = 0;\n          }" { (expression_statement "p_Var18 = fns->start_struct_type;" (assignment_expression "p_Var18 = fns->start_struct_type" identifier = (field_expression "fns->start_struct_type" identifier -> field_identifier)) ;) (expression_statement "uVar13 = type->size;" (assignment_expression "uVar13 = type->size" identifier = (field_expression "type->size" identifier -> field_identifier)) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            uVar13 = pdVar12->id;\n            if (info->base_id < uVar13) {\n              uVar16 = info->mark;\n              if (pdVar12->mark == uVar16) {\nLAB_0001db48:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,uVar13,type->kind);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar12 = (type->u).kclass;\n              uVar16 = info->mark;\n              if (uVar16 == pdVar12->mark) {\n                uVar13 = pdVar12->id;\n                if (uVar13 <= info->base_id) {\n                  pcVar21 = "debug_write_type";\n                  uVar13 = 0x9d1;\nLAB_0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar13\n                                ,pcVar21);\n                }\n                goto LAB_0001db48;\n              }\n            }\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            pdVar12->mark = uVar16;\n            uVar16 = pdVar12->id;\n            dVar9 = type->kind;\n          }" else (compound_statement "{\n            uVar13 = pdVar12->id;\n            if (info->base_id < uVar13) {\n              uVar16 = info->mark;\n              if (pdVar12->mark == uVar16) {\nLAB_0001db48:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,uVar13,type->kind);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar12 = (type->u).kclass;\n              uVar16 = info->mark;\n              if (uVar16 == pdVar12->mark) {\n                uVar13 = pdVar12->id;\n                if (uVar13 <= info->base_id) {\n                  pcVar21 = "debug_write_type";\n                  uVar13 = 0x9d1;\nLAB_0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar13\n                                ,pcVar21);\n                }\n                goto LAB_0001db48;\n              }\n            }\n            p_Var18 = fns->start_struct_type;\n            uVar13 = type->size;\n            pdVar12->mark = uVar16;\n            uVar16 = pdVar12->id;\n            dVar9 = type->kind;\n          }" { (expression_statement "uVar13 = pdVar12->id;" (assignment_expression "uVar13 = pdVar12->id" identifier = (field_expression "pdVar12->id" identifier -> field_identifier)) ;) (if_statement "if (info->base_id < uVar13) {\n              uVar16 = info->mark;\n              if (pdVar12->mark == uVar16) {\nLAB_0001db48:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,uVar13,type->kind);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar12 = (type->u).kclass;\n              uVar16 = info->mark;\n              if (uVar16 == pdVar12->mark) {\n                uVar13 = pdVar12->id;\n                if (uVar13 <= info->base_id) {\n                  pcVar21 = "debug_write_type";\n                  uVar13 = 0x9d1;\nLAB_0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar13\n                                ,pcVar21);\n                }\n                goto LAB_0001db48;\n              }\n            }" if (parenthesized_expression "(info->base_id < uVar13)" ( (binary_expression "info->base_id < uVar13" (field_expression "info->base_id" identifier -> field_identifier) < identifier) )) (compound_statement "{\n              uVar16 = info->mark;\n              if (pdVar12->mark == uVar16) {\nLAB_0001db48:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,uVar13,type->kind);\n                return bVar11;\n              }\n            }" { (expression_statement "uVar16 = info->mark;" (assignment_expression "uVar16 = info->mark" identifier = (field_expression "info->mark" identifier -> field_identifier)) ;) (if_statement "if (pdVar12->mark == uVar16) {\nLAB_0001db48:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,uVar13,type->kind);\n                return bVar11;\n              }" if (parenthesized_expression "(pdVar12->mark == uVar16)" ( (binary_expression "pdVar12->mark == uVar16" (field_expression "pdVar12->mark" identifier -> field_identifier) == identifier) )) (compound_statement "{\nLAB_0001db48:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,uVar13,type->kind);\n                return bVar11;\n              }" { (labeled_statement "LAB_0001db48:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,uVar13,type->kind);" statement_identifier : (expression_statement "bVar11 = (*fns->tag_type)(fhandle,local_30,uVar13,type->kind);" (assignment_expression "bVar11 = (*fns->tag_type)(fhandle,local_30,uVar13,type->kind)" identifier = (call_expression "(*fns->tag_type)(fhandle,local_30,uVar13,type->kind)" (parenthesized_expression "(*fns->tag_type)" ( (pointer_expression "*fns->tag_type" * (field_expression "fns->tag_type" identifier -> field_identifier)) )) (argument_list "(fhandle,local_30,uVar13,type->kind)" ( identifier , identifier , identifier , (field_expression "type->kind" identifier -> field_identifier) )))) ;)) (return_statement "return bVar11;" return identifier ;) })) }) (else_clause "else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar12 = (type->u).kclass;\n              uVar16 = info->mark;\n              if (uVar16 == pdVar12->mark) {\n                uVar13 = pdVar12->id;\n                if (uVar13 <= info->base_id) {\n                  pcVar21 = "debug_write_type";\n                  uVar13 = 0x9d1;\nLAB_0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar13\n                                ,pcVar21);\n                }\n                goto LAB_0001db48;\n              }\n            }" else (compound_statement "{\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar12 = (type->u).kclass;\n              uVar16 = info->mark;\n              if (uVar16 == pdVar12->mark) {\n                uVar13 = pdVar12->id;\n                if (uVar13 <= info->base_id) {\n                  pcVar21 = "debug_write_type";\n                  uVar13 = 0x9d1;\nLAB_0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar13\n                                ,pcVar21);\n                }\n                goto LAB_0001db48;\n              }\n            }" { (expression_statement "bVar11 = debug_set_class_id(info,local_30,type);" (assignment_expression "bVar11 = debug_set_class_id(info,local_30,type)" identifier = (call_expression "debug_set_class_id(info,local_30,type)" identifier (argument_list "(info,local_30,type)" ( identifier , identifier , identifier )))) ;) (if_statement "if (bVar11 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pdVar12 = (type->u).kclass;" (assignment_expression "pdVar12 = (type->u).kclass" identifier = (field_expression "(type->u).kclass" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar16 = info->mark;" (assignment_expression "uVar16 = info->mark" identifier = (field_expression "info->mark" identifier -> field_identifier)) ;) (if_statement "if (uVar16 == pdVar12->mark) {\n                uVar13 = pdVar12->id;\n                if (uVar13 <= info->base_id) {\n                  pcVar21 = "debug_write_type";\n                  uVar13 = 0x9d1;\nLAB_0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar13\n                                ,pcVar21);\n                }\n                goto LAB_0001db48;\n              }" if (parenthesized_expression "(uVar16 == pdVar12->mark)" ( (binary_expression "uVar16 == pdVar12->mark" identifier == (field_expression "pdVar12->mark" identifier -> field_identifier)) )) (compound_statement "{\n                uVar13 = pdVar12->id;\n                if (uVar13 <= info->base_id) {\n                  pcVar21 = "debug_write_type";\n                  uVar13 = 0x9d1;\nLAB_0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar13\n                                ,pcVar21);\n                }\n                goto LAB_0001db48;\n              }" { (expression_statement "uVar13 = pdVar12->id;" (assignment_expression "uVar13 = pdVar12->id" identifier = (field_expression "pdVar12->id" identifier -> field_identifier)) ;) (if_statement "if (uVar13 <= info->base_id) {\n                  pcVar21 = "debug_write_type";\n                  uVar13 = 0x9d1;\nLAB_0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar13\n                                ,pcVar21);\n                }" if (parenthesized_expression "(uVar13 <= info->base_id)" ( (binary_expression "uVar13 <= info->base_id" identifier <= (field_expression "info->base_id" identifier -> field_identifier)) )) (compound_statement "{\n                  pcVar21 = "debug_write_type";\n                  uVar13 = 0x9d1;\nLAB_0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar13\n                                ,pcVar21);\n                }" { (expression_statement "pcVar21 = "debug_write_type";" (assignment_expression "pcVar21 = "debug_write_type"" identifier = (string_literal ""debug_write_type"" " string_content ")) ;) (expression_statement "uVar13 = 0x9d1;" (assignment_expression "uVar13 = 0x9d1" identifier = number_literal) ;) (labeled_statement "LAB_0001de3e:\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar13\n                                ,pcVar21);" statement_identifier : comment (expression_statement "__assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar13\n                                ,pcVar21);" (call_expression "__assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar13\n                                ,pcVar21)" identifier (argument_list "("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar13\n                                ,pcVar21)" ( (string_literal ""type->u.kclass->id > info->base_id"" " string_content ") , (string_literal ""../../binutils/debug.c"" " string_content ") , identifier , identifier ))) ;)) })) (goto_statement "goto LAB_0001db48;" goto statement_identifier ;) })) }))) (expression_statement "p_Var18 = fns->start_struct_type;" (assignment_expression "p_Var18 = fns->start_struct_type" identifier = (field_expression "fns->start_struct_type" identifier -> field_identifier)) ;) (expression_statement "uVar13 = type->size;" (assignment_expression "uVar13 = type->size" identifier = (field_expression "type->size" identifier -> field_identifier)) ;) (expression_statement "pdVar12->mark = uVar16;" (assignment_expression "pdVar12->mark = uVar16" (field_expression "pdVar12->mark" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar16 = pdVar12->id;" (assignment_expression "uVar16 = pdVar12->id" identifier = (field_expression "pdVar12->id" identifier -> field_identifier)) ;) (expression_statement "dVar9 = type->kind;" (assignment_expression "dVar9 = type->kind" identifier = (field_expression "type->kind" identifier -> field_identifier)) ;) }))) (expression_statement "bVar11 = (*p_Var18)(fhandle,local_30,uVar16,(uint)(dVar9 == DEBUG_KIND_STRUCT),uVar13);" (assignment_expression "bVar11 = (*p_Var18)(fhandle,local_30,uVar16,(uint)(dVar9 == DEBUG_KIND_STRUCT),uVar13)" identifier = (call_expression "(*p_Var18)(fhandle,local_30,uVar16,(uint)(dVar9 == DEBUG_KIND_STRUCT),uVar13)" (parenthesized_expression "(*p_Var18)" ( (pointer_expression "*p_Var18" * identifier) )) (argument_list "(fhandle,local_30,uVar16,(uint)(dVar9 == DEBUG_KIND_STRUCT),uVar13)" ( identifier , identifier , identifier , (call_expression "(uint)(dVar9 == DEBUG_KIND_STRUCT)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(dVar9 == DEBUG_KIND_STRUCT)" ( (binary_expression "dVar9 == DEBUG_KIND_STRUCT" identifier == identifier) ))) , identifier )))) ;) (if_statement "if (bVar11 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar5 = ((type->u).kclass)->fields, ppdVar5 != (debug_field *)0x0)) &&\n             (pdVar19 = *ppdVar5, pdVar19 != (debug_field)0x0)) {\n            iVar17 = 4;\n            do {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              bVar11 = (*fns->struct_field)\n                                 (fhandle,pdVar19->name,(pdVar19->u).f.bitpos,(pdVar19->u).f.bitsize\n                                  ,pdVar19->visibility);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar19 = *(debug_field *)((int)((type->u).kindirect)->slot + iVar17);\n              iVar17 = iVar17 + 4;\n            } while (pdVar19 != (debug_field)0x0);\n          }" if (parenthesized_expression "((((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar5 = ((type->u).kclass)->fields, ppdVar5 != (debug_field *)0x0)) &&\n             (pdVar19 = *ppdVar5, pdVar19 != (debug_field)0x0))" ( (binary_expression "(((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar5 = ((type->u).kclass)->fields, ppdVar5 != (debug_field *)0x0)) &&\n             (pdVar19 = *ppdVar5, pdVar19 != (debug_field)0x0)" (parenthesized_expression "(((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar5 = ((type->u).kclass)->fields, ppdVar5 != (debug_field *)0x0))" ( (binary_expression "((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar5 = ((type->u).kclass)->fields, ppdVar5 != (debug_field *)0x0)" (parenthesized_expression "((type->u).kclass != (debug_class_type *)0x0)" ( (binary_expression "(type->u).kclass != (debug_class_type *)0x0" (field_expression "(type->u).kclass" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier) != (cast_expression "(debug_class_type *)0x0" ( (type_descriptor "debug_class_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(ppdVar5 = ((type->u).kclass)->fields, ppdVar5 != (debug_field *)0x0)" ( (comma_expression "ppdVar5 = ((type->u).kclass)->fields, ppdVar5 != (debug_field *)0x0" (assignment_expression "ppdVar5 = ((type->u).kclass)->fields" identifier = (field_expression "((type->u).kclass)->fields" (parenthesized_expression "((type->u).kclass)" ( (field_expression "(type->u).kclass" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) , (binary_expression "ppdVar5 != (debug_field *)0x0" identifier != (cast_expression "(debug_field *)0x0" ( (type_descriptor "debug_field *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(pdVar19 = *ppdVar5, pdVar19 != (debug_field)0x0)" ( (comma_expression "pdVar19 = *ppdVar5, pdVar19 != (debug_field)0x0" (assignment_expression "pdVar19 = *ppdVar5" identifier = (pointer_expression "*ppdVar5" * identifier)) , (binary_expression "pdVar19 != (debug_field)0x0" identifier != (cast_expression "(debug_field)0x0" ( (type_descriptor "debug_field" type_identifier) ) number_literal))) ))) )) (compound_statement "{\n            iVar17 = 4;\n            do {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              bVar11 = (*fns->struct_field)\n                                 (fhandle,pdVar19->name,(pdVar19->u).f.bitpos,(pdVar19->u).f.bitsize\n                                  ,pdVar19->visibility);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar19 = *(debug_field *)((int)((type->u).kindirect)->slot + iVar17);\n              iVar17 = iVar17 + 4;\n            } while (pdVar19 != (debug_field)0x0);\n          }" { (expression_statement "iVar17 = 4;" (assignment_expression "iVar17 = 4" identifier = number_literal) ;) (do_statement "do {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              bVar11 = (*fns->struct_field)\n                                 (fhandle,pdVar19->name,(pdVar19->u).f.bitpos,(pdVar19->u).f.bitsize\n                                  ,pdVar19->visibility);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar19 = *(debug_field *)((int)((type->u).kindirect)->slot + iVar17);\n              iVar17 = iVar17 + 4;\n            } while (pdVar19 != (debug_field)0x0);" do (compound_statement "{\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              bVar11 = (*fns->struct_field)\n                                 (fhandle,pdVar19->name,(pdVar19->u).f.bitpos,(pdVar19->u).f.bitsize\n                                  ,pdVar19->visibility);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar19 = *(debug_field *)((int)((type->u).kindirect)->slot + iVar17);\n              iVar17 = iVar17 + 4;\n            }" { (expression_statement "bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);" (assignment_expression "bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0)" identifier = (call_expression "debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0)" identifier (argument_list "(info,fns,fhandle,pdVar19->type,(debug_name *)0x0)" ( identifier , identifier , identifier , (field_expression "pdVar19->type" identifier -> field_identifier) , (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (bVar11 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar11 = (*fns->struct_field)\n                                 (fhandle,pdVar19->name,(pdVar19->u).f.bitpos,(pdVar19->u).f.bitsize\n                                  ,pdVar19->visibility);" (assignment_expression "bVar11 = (*fns->struct_field)\n                                 (fhandle,pdVar19->name,(pdVar19->u).f.bitpos,(pdVar19->u).f.bitsize\n                                  ,pdVar19->visibility)" identifier = (call_expression "(*fns->struct_field)\n                                 (fhandle,pdVar19->name,(pdVar19->u).f.bitpos,(pdVar19->u).f.bitsize\n                                  ,pdVar19->visibility)" (parenthesized_expression "(*fns->struct_field)" ( (pointer_expression "*fns->struct_field" * (field_expression "fns->struct_field" identifier -> field_identifier)) )) (argument_list "(fhandle,pdVar19->name,(pdVar19->u).f.bitpos,(pdVar19->u).f.bitsize\n                                  ,pdVar19->visibility)" ( identifier , (field_expression "pdVar19->name" identifier -> field_identifier) , (field_expression "(pdVar19->u).f.bitpos" (field_expression "(pdVar19->u).f" (parenthesized_expression "(pdVar19->u)" ( (field_expression "pdVar19->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) , (field_expression "(pdVar19->u).f.bitsize" (field_expression "(pdVar19->u).f" (parenthesized_expression "(pdVar19->u)" ( (field_expression "pdVar19->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) , (field_expression "pdVar19->visibility" identifier -> field_identifier) )))) ;) (if_statement "if (bVar11 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pdVar19 = *(debug_field *)((int)((type->u).kindirect)->slot + iVar17);" (assignment_expression "pdVar19 = *(debug_field *)((int)((type->u).kindirect)->slot + iVar17)" identifier = (pointer_expression "*(debug_field *)((int)((type->u).kindirect)->slot + iVar17)" * (cast_expression "(debug_field *)((int)((type->u).kindirect)->slot + iVar17)" ( (type_descriptor "debug_field *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)((type->u).kindirect)->slot + iVar17)" ( (binary_expression "(int)((type->u).kindirect)->slot + iVar17" (cast_expression "(int)((type->u).kindirect)->slot" ( (type_descriptor "int" primitive_type) ) (field_expression "((type->u).kindirect)->slot" (parenthesized_expression "((type->u).kindirect)" ( (field_expression "(type->u).kindirect" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) + identifier) ))))) ;) (expression_statement "iVar17 = iVar17 + 4;" (assignment_expression "iVar17 = iVar17 + 4" identifier = (binary_expression "iVar17 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar19 != (debug_field)0x0)" ( (binary_expression "pdVar19 != (debug_field)0x0" identifier != (cast_expression "(debug_field)0x0" ( (type_descriptor "debug_field" type_identifier) ) number_literal)) )) ;) })) (expression_statement "UNRECOVERED_JUMPTABLE_00 = fns->end_struct_type;" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = fns->end_struct_type" identifier = (field_expression "fns->end_struct_type" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0001d69f;" goto statement_identifier ;)) (case_statement "case DEBUG_KIND_CLASS:" case identifier :) (case_statement "case DEBUG_KIND_UNION_CLASS:\n          local_34 = (type->u).kclass;\n          if (local_34 == (debug_class_type *)0x0) {\n            uVar13 = 0;\n            local_2c = (debug_array_type *)0x0;\n            local_34 = (debug_class_type *)0x0;\n          }\n          else {\n            local_2c = (debug_array_type *)local_34->id;\n            if (info->base_id < local_2c) {\n              uVar13 = info->mark;\n              if (local_34->mark == uVar13) {\nLAB_0001dafa:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,(uint)local_2c,dVar9);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              local_34 = (type->u).kclass;\n              uVar13 = info->mark;\n              local_2c = (debug_array_type *)local_34->id;\n              if (uVar13 == local_34->mark) {\n                if (local_2c <= info->base_id) {\n                  pcVar21 = "debug_write_class_type";\n                  uVar13 = 0xa7d;\n                  goto LAB_0001de3e;\n                }\n                dVar9 = type->kind;\n                goto LAB_0001dafa;\n              }\n            }\n            local_34->mark = uVar13;\n            local_34 = (debug_class_type *)local_34->vptrbase;\n            if (((debug_class_type *)type == local_34) || (local_34 == (debug_class_type *)0x0)) {\n              uVar13 = (uint)(local_34 != (debug_class_type *)0x0);\n              dVar9 = type->kind;\n            }\n            else {\n              bVar11 = debug_write_type(info,fns,fhandle,(debug_type_s *)local_34,(debug_name *)0x0)\n              ;\n              if (bVar11 == 0) {\n                return 0;\n              }\n              dVar9 = type->kind;\n              uVar13 = 1;\n            }\n          }\n          bVar11 = (*fns->start_class_type)\n                             (fhandle,local_30,(uint)local_2c,(uint)(dVar9 == DEBUG_KIND_CLASS),\n                              type->size,uVar13,(uint)((debug_class_type *)type == local_34));\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar12 = (type->u).kclass;\n          if (pdVar12 != (debug_class_type *)0x0) {\n            if ((pdVar12->fields != (debug_field *)0x0) &&\n               (pdVar19 = *pdVar12->fields, pdVar19 != (debug_field)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pcVar21 = (char *)(pdVar19->u).f.bitpos;\n                if (pdVar19->static_member == 0) {\n                  iVar8 = (*fns->struct_field)\n                                    (fhandle,pdVar19->name,(bfd_vma)pcVar21,(pdVar19->u).f.bitsize,\n                                     pdVar19->visibility);\n                }\n                else {\n                  iVar8 = (*fns->class_static_member)\n                                    (fhandle,pdVar19->name,pcVar21,pdVar19->visibility);\n                }\n                if (iVar8 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar19 = *(debug_field *)((int)pdVar12->fields + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar19 != (debug_field)0x0);\n            }\n            if ((pdVar12->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar20 = *pdVar12->baseclasses, pdVar20 != (debug_baseclass)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar20->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                bVar11 = (*fns->class_baseclass)\n                                   (fhandle,pdVar20->bitpos,pdVar20->is_virtual,pdVar20->visibility)\n                ;\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar20 = *(debug_baseclass *)((int)pdVar12->baseclasses + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar20 != (debug_baseclass)0x0);\n            }\n            if ((pdVar12->methods != (debug_method *)0x0) &&\n               (local_28 = *pdVar12->methods, local_28 != (debug_method)0x0)) {\n              local_24 = 0;\n              do {\n                bVar11 = (*fns->class_start_method)(fhandle,local_28->name);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                iVar17 = 4;\n                pdVar6 = *local_28->variants;\n                while (pdVar6 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar6->context != (debug_type_s *)0x0) &&\n                     (bVar11 = debug_write_type(info,fns,fhandle,pdVar6->context,(debug_name *)0x0),\n                     bVar11 == 0)) {\n                    return 0;\n                  }\n                  bVar11 = debug_write_type(info,fns,fhandle,pdVar6->type,(debug_name *)0x0);\n                  if (bVar11 == 0) {\n                    return 0;\n                  }\n                  if (pdVar6->voffset == 0xffffffff) {\n                    iVar8 = (*fns->class_static_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep);\n                  }\n                  else {\n                    iVar8 = (*fns->class_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep,pdVar6->voffset,\n                                       (uint)(pdVar6->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar8 == 0) {\n                    return 0;\n                  }\n                  piVar1 = (int *)((int)local_28->variants + iVar17);\n                  iVar17 = iVar17 + 4;\n                  pdVar6 = (debug_method_variant_s *)*piVar1;\n                }\n                bVar11 = (*fns->class_end_method)(fhandle);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                local_24 = local_24 + 1;\n                local_28 = ((type->u).kclass)->methods[local_24];\n              } while (local_28 != (debug_method)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->end_class_type;\n          goto LAB_0001d69f;" case identifier : (expression_statement "local_34 = (type->u).kclass;" (assignment_expression "local_34 = (type->u).kclass" identifier = (field_expression "(type->u).kclass" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (local_34 == (debug_class_type *)0x0) {\n            uVar13 = 0;\n            local_2c = (debug_array_type *)0x0;\n            local_34 = (debug_class_type *)0x0;\n          }\n          else {\n            local_2c = (debug_array_type *)local_34->id;\n            if (info->base_id < local_2c) {\n              uVar13 = info->mark;\n              if (local_34->mark == uVar13) {\nLAB_0001dafa:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,(uint)local_2c,dVar9);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              local_34 = (type->u).kclass;\n              uVar13 = info->mark;\n              local_2c = (debug_array_type *)local_34->id;\n              if (uVar13 == local_34->mark) {\n                if (local_2c <= info->base_id) {\n                  pcVar21 = "debug_write_class_type";\n                  uVar13 = 0xa7d;\n                  goto LAB_0001de3e;\n                }\n                dVar9 = type->kind;\n                goto LAB_0001dafa;\n              }\n            }\n            local_34->mark = uVar13;\n            local_34 = (debug_class_type *)local_34->vptrbase;\n            if (((debug_class_type *)type == local_34) || (local_34 == (debug_class_type *)0x0)) {\n              uVar13 = (uint)(local_34 != (debug_class_type *)0x0);\n              dVar9 = type->kind;\n            }\n            else {\n              bVar11 = debug_write_type(info,fns,fhandle,(debug_type_s *)local_34,(debug_name *)0x0)\n              ;\n              if (bVar11 == 0) {\n                return 0;\n              }\n              dVar9 = type->kind;\n              uVar13 = 1;\n            }\n          }" if (parenthesized_expression "(local_34 == (debug_class_type *)0x0)" ( (binary_expression "local_34 == (debug_class_type *)0x0" identifier == (cast_expression "(debug_class_type *)0x0" ( (type_descriptor "debug_class_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar13 = 0;\n            local_2c = (debug_array_type *)0x0;\n            local_34 = (debug_class_type *)0x0;\n          }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (expression_statement "local_2c = (debug_array_type *)0x0;" (assignment_expression "local_2c = (debug_array_type *)0x0" identifier = (cast_expression "(debug_array_type *)0x0" ( (type_descriptor "debug_array_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_34 = (debug_class_type *)0x0;" (assignment_expression "local_34 = (debug_class_type *)0x0" identifier = (cast_expression "(debug_class_type *)0x0" ( (type_descriptor "debug_class_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n            local_2c = (debug_array_type *)local_34->id;\n            if (info->base_id < local_2c) {\n              uVar13 = info->mark;\n              if (local_34->mark == uVar13) {\nLAB_0001dafa:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,(uint)local_2c,dVar9);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              local_34 = (type->u).kclass;\n              uVar13 = info->mark;\n              local_2c = (debug_array_type *)local_34->id;\n              if (uVar13 == local_34->mark) {\n                if (local_2c <= info->base_id) {\n                  pcVar21 = "debug_write_class_type";\n                  uVar13 = 0xa7d;\n                  goto LAB_0001de3e;\n                }\n                dVar9 = type->kind;\n                goto LAB_0001dafa;\n              }\n            }\n            local_34->mark = uVar13;\n            local_34 = (debug_class_type *)local_34->vptrbase;\n            if (((debug_class_type *)type == local_34) || (local_34 == (debug_class_type *)0x0)) {\n              uVar13 = (uint)(local_34 != (debug_class_type *)0x0);\n              dVar9 = type->kind;\n            }\n            else {\n              bVar11 = debug_write_type(info,fns,fhandle,(debug_type_s *)local_34,(debug_name *)0x0)\n              ;\n              if (bVar11 == 0) {\n                return 0;\n              }\n              dVar9 = type->kind;\n              uVar13 = 1;\n            }\n          }" else (compound_statement "{\n            local_2c = (debug_array_type *)local_34->id;\n            if (info->base_id < local_2c) {\n              uVar13 = info->mark;\n              if (local_34->mark == uVar13) {\nLAB_0001dafa:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,(uint)local_2c,dVar9);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              local_34 = (type->u).kclass;\n              uVar13 = info->mark;\n              local_2c = (debug_array_type *)local_34->id;\n              if (uVar13 == local_34->mark) {\n                if (local_2c <= info->base_id) {\n                  pcVar21 = "debug_write_class_type";\n                  uVar13 = 0xa7d;\n                  goto LAB_0001de3e;\n                }\n                dVar9 = type->kind;\n                goto LAB_0001dafa;\n              }\n            }\n            local_34->mark = uVar13;\n            local_34 = (debug_class_type *)local_34->vptrbase;\n            if (((debug_class_type *)type == local_34) || (local_34 == (debug_class_type *)0x0)) {\n              uVar13 = (uint)(local_34 != (debug_class_type *)0x0);\n              dVar9 = type->kind;\n            }\n            else {\n              bVar11 = debug_write_type(info,fns,fhandle,(debug_type_s *)local_34,(debug_name *)0x0)\n              ;\n              if (bVar11 == 0) {\n                return 0;\n              }\n              dVar9 = type->kind;\n              uVar13 = 1;\n            }\n          }" { (expression_statement "local_2c = (debug_array_type *)local_34->id;" (assignment_expression "local_2c = (debug_array_type *)local_34->id" identifier = (cast_expression "(debug_array_type *)local_34->id" ( (type_descriptor "debug_array_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_34->id" identifier -> field_identifier))) ;) (if_statement "if (info->base_id < local_2c) {\n              uVar13 = info->mark;\n              if (local_34->mark == uVar13) {\nLAB_0001dafa:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,(uint)local_2c,dVar9);\n                return bVar11;\n              }\n            }\n            else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              local_34 = (type->u).kclass;\n              uVar13 = info->mark;\n              local_2c = (debug_array_type *)local_34->id;\n              if (uVar13 == local_34->mark) {\n                if (local_2c <= info->base_id) {\n                  pcVar21 = "debug_write_class_type";\n                  uVar13 = 0xa7d;\n                  goto LAB_0001de3e;\n                }\n                dVar9 = type->kind;\n                goto LAB_0001dafa;\n              }\n            }" if (parenthesized_expression "(info->base_id < local_2c)" ( (binary_expression "info->base_id < local_2c" (field_expression "info->base_id" identifier -> field_identifier) < identifier) )) (compound_statement "{\n              uVar13 = info->mark;\n              if (local_34->mark == uVar13) {\nLAB_0001dafa:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,(uint)local_2c,dVar9);\n                return bVar11;\n              }\n            }" { (expression_statement "uVar13 = info->mark;" (assignment_expression "uVar13 = info->mark" identifier = (field_expression "info->mark" identifier -> field_identifier)) ;) (if_statement "if (local_34->mark == uVar13) {\nLAB_0001dafa:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,(uint)local_2c,dVar9);\n                return bVar11;\n              }" if (parenthesized_expression "(local_34->mark == uVar13)" ( (binary_expression "local_34->mark == uVar13" (field_expression "local_34->mark" identifier -> field_identifier) == identifier) )) (compound_statement "{\nLAB_0001dafa:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,(uint)local_2c,dVar9);\n                return bVar11;\n              }" { (labeled_statement "LAB_0001dafa:\n                bVar11 = (*fns->tag_type)(fhandle,local_30,(uint)local_2c,dVar9);" statement_identifier : (expression_statement "bVar11 = (*fns->tag_type)(fhandle,local_30,(uint)local_2c,dVar9);" (assignment_expression "bVar11 = (*fns->tag_type)(fhandle,local_30,(uint)local_2c,dVar9)" identifier = (call_expression "(*fns->tag_type)(fhandle,local_30,(uint)local_2c,dVar9)" (parenthesized_expression "(*fns->tag_type)" ( (pointer_expression "*fns->tag_type" * (field_expression "fns->tag_type" identifier -> field_identifier)) )) (argument_list "(fhandle,local_30,(uint)local_2c,dVar9)" ( identifier , identifier , (cast_expression "(uint)local_2c" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier )))) ;)) (return_statement "return bVar11;" return identifier ;) })) }) (else_clause "else {\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              local_34 = (type->u).kclass;\n              uVar13 = info->mark;\n              local_2c = (debug_array_type *)local_34->id;\n              if (uVar13 == local_34->mark) {\n                if (local_2c <= info->base_id) {\n                  pcVar21 = "debug_write_class_type";\n                  uVar13 = 0xa7d;\n                  goto LAB_0001de3e;\n                }\n                dVar9 = type->kind;\n                goto LAB_0001dafa;\n              }\n            }" else (compound_statement "{\n              bVar11 = debug_set_class_id(info,local_30,type);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              local_34 = (type->u).kclass;\n              uVar13 = info->mark;\n              local_2c = (debug_array_type *)local_34->id;\n              if (uVar13 == local_34->mark) {\n                if (local_2c <= info->base_id) {\n                  pcVar21 = "debug_write_class_type";\n                  uVar13 = 0xa7d;\n                  goto LAB_0001de3e;\n                }\n                dVar9 = type->kind;\n                goto LAB_0001dafa;\n              }\n            }" { (expression_statement "bVar11 = debug_set_class_id(info,local_30,type);" (assignment_expression "bVar11 = debug_set_class_id(info,local_30,type)" identifier = (call_expression "debug_set_class_id(info,local_30,type)" identifier (argument_list "(info,local_30,type)" ( identifier , identifier , identifier )))) ;) (if_statement "if (bVar11 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "local_34 = (type->u).kclass;" (assignment_expression "local_34 = (type->u).kclass" identifier = (field_expression "(type->u).kclass" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar13 = info->mark;" (assignment_expression "uVar13 = info->mark" identifier = (field_expression "info->mark" identifier -> field_identifier)) ;) (expression_statement "local_2c = (debug_array_type *)local_34->id;" (assignment_expression "local_2c = (debug_array_type *)local_34->id" identifier = (cast_expression "(debug_array_type *)local_34->id" ( (type_descriptor "debug_array_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_34->id" identifier -> field_identifier))) ;) (if_statement "if (uVar13 == local_34->mark) {\n                if (local_2c <= info->base_id) {\n                  pcVar21 = "debug_write_class_type";\n                  uVar13 = 0xa7d;\n                  goto LAB_0001de3e;\n                }\n                dVar9 = type->kind;\n                goto LAB_0001dafa;\n              }" if (parenthesized_expression "(uVar13 == local_34->mark)" ( (binary_expression "uVar13 == local_34->mark" identifier == (field_expression "local_34->mark" identifier -> field_identifier)) )) (compound_statement "{\n                if (local_2c <= info->base_id) {\n                  pcVar21 = "debug_write_class_type";\n                  uVar13 = 0xa7d;\n                  goto LAB_0001de3e;\n                }\n                dVar9 = type->kind;\n                goto LAB_0001dafa;\n              }" { (if_statement "if (local_2c <= info->base_id) {\n                  pcVar21 = "debug_write_class_type";\n                  uVar13 = 0xa7d;\n                  goto LAB_0001de3e;\n                }" if (parenthesized_expression "(local_2c <= info->base_id)" ( (binary_expression "local_2c <= info->base_id" identifier <= (field_expression "info->base_id" identifier -> field_identifier)) )) (compound_statement "{\n                  pcVar21 = "debug_write_class_type";\n                  uVar13 = 0xa7d;\n                  goto LAB_0001de3e;\n                }" { (expression_statement "pcVar21 = "debug_write_class_type";" (assignment_expression "pcVar21 = "debug_write_class_type"" identifier = (string_literal ""debug_write_class_type"" " string_content ")) ;) (expression_statement "uVar13 = 0xa7d;" (assignment_expression "uVar13 = 0xa7d" identifier = number_literal) ;) (goto_statement "goto LAB_0001de3e;" goto statement_identifier ;) })) (expression_statement "dVar9 = type->kind;" (assignment_expression "dVar9 = type->kind" identifier = (field_expression "type->kind" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0001dafa;" goto statement_identifier ;) })) }))) (expression_statement "local_34->mark = uVar13;" (assignment_expression "local_34->mark = uVar13" (field_expression "local_34->mark" identifier -> field_identifier) = identifier) ;) (expression_statement "local_34 = (debug_class_type *)local_34->vptrbase;" (assignment_expression "local_34 = (debug_class_type *)local_34->vptrbase" identifier = (cast_expression "(debug_class_type *)local_34->vptrbase" ( (type_descriptor "debug_class_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_34->vptrbase" identifier -> field_identifier))) ;) (if_statement "if (((debug_class_type *)type == local_34) || (local_34 == (debug_class_type *)0x0)) {\n              uVar13 = (uint)(local_34 != (debug_class_type *)0x0);\n              dVar9 = type->kind;\n            }\n            else {\n              bVar11 = debug_write_type(info,fns,fhandle,(debug_type_s *)local_34,(debug_name *)0x0)\n              ;\n              if (bVar11 == 0) {\n                return 0;\n              }\n              dVar9 = type->kind;\n              uVar13 = 1;\n            }" if (parenthesized_expression "(((debug_class_type *)type == local_34) || (local_34 == (debug_class_type *)0x0))" ( (binary_expression "((debug_class_type *)type == local_34) || (local_34 == (debug_class_type *)0x0)" (parenthesized_expression "((debug_class_type *)type == local_34)" ( (binary_expression "(debug_class_type *)type == local_34" (cast_expression "(debug_class_type *)type" ( (type_descriptor "debug_class_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == identifier) )) || (parenthesized_expression "(local_34 == (debug_class_type *)0x0)" ( (binary_expression "local_34 == (debug_class_type *)0x0" identifier == (cast_expression "(debug_class_type *)0x0" ( (type_descriptor "debug_class_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n              uVar13 = (uint)(local_34 != (debug_class_type *)0x0);\n              dVar9 = type->kind;\n            }" { (expression_statement "uVar13 = (uint)(local_34 != (debug_class_type *)0x0);" (assignment_expression "uVar13 = (uint)(local_34 != (debug_class_type *)0x0)" identifier = (call_expression "(uint)(local_34 != (debug_class_type *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_34 != (debug_class_type *)0x0)" ( (binary_expression "local_34 != (debug_class_type *)0x0" identifier != (cast_expression "(debug_class_type *)0x0" ( (type_descriptor "debug_class_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )))) ;) (expression_statement "dVar9 = type->kind;" (assignment_expression "dVar9 = type->kind" identifier = (field_expression "type->kind" identifier -> field_identifier)) ;) }) (else_clause "else {\n              bVar11 = debug_write_type(info,fns,fhandle,(debug_type_s *)local_34,(debug_name *)0x0)\n              ;\n              if (bVar11 == 0) {\n                return 0;\n              }\n              dVar9 = type->kind;\n              uVar13 = 1;\n            }" else (compound_statement "{\n              bVar11 = debug_write_type(info,fns,fhandle,(debug_type_s *)local_34,(debug_name *)0x0)\n              ;\n              if (bVar11 == 0) {\n                return 0;\n              }\n              dVar9 = type->kind;\n              uVar13 = 1;\n            }" { (expression_statement "bVar11 = debug_write_type(info,fns,fhandle,(debug_type_s *)local_34,(debug_name *)0x0)\n              ;" (assignment_expression "bVar11 = debug_write_type(info,fns,fhandle,(debug_type_s *)local_34,(debug_name *)0x0)" identifier = (call_expression "debug_write_type(info,fns,fhandle,(debug_type_s *)local_34,(debug_name *)0x0)" identifier (argument_list "(info,fns,fhandle,(debug_type_s *)local_34,(debug_name *)0x0)" ( identifier , identifier , identifier , (cast_expression "(debug_type_s *)local_34" ( (type_descriptor "debug_type_s *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (bVar11 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "dVar9 = type->kind;" (assignment_expression "dVar9 = type->kind" identifier = (field_expression "type->kind" identifier -> field_identifier)) ;) (expression_statement "uVar13 = 1;" (assignment_expression "uVar13 = 1" identifier = number_literal) ;) }))) }))) (expression_statement "bVar11 = (*fns->start_class_type)\n                             (fhandle,local_30,(uint)local_2c,(uint)(dVar9 == DEBUG_KIND_CLASS),\n                              type->size,uVar13,(uint)((debug_class_type *)type == local_34));" (assignment_expression "bVar11 = (*fns->start_class_type)\n                             (fhandle,local_30,(uint)local_2c,(uint)(dVar9 == DEBUG_KIND_CLASS),\n                              type->size,uVar13,(uint)((debug_class_type *)type == local_34))" identifier = (call_expression "(*fns->start_class_type)\n                             (fhandle,local_30,(uint)local_2c,(uint)(dVar9 == DEBUG_KIND_CLASS),\n                              type->size,uVar13,(uint)((debug_class_type *)type == local_34))" (parenthesized_expression "(*fns->start_class_type)" ( (pointer_expression "*fns->start_class_type" * (field_expression "fns->start_class_type" identifier -> field_identifier)) )) (argument_list "(fhandle,local_30,(uint)local_2c,(uint)(dVar9 == DEBUG_KIND_CLASS),\n                              type->size,uVar13,(uint)((debug_class_type *)type == local_34))" ( identifier , identifier , (cast_expression "(uint)local_2c" ( (type_descriptor "uint" type_identifier) ) identifier) , (call_expression "(uint)(dVar9 == DEBUG_KIND_CLASS)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(dVar9 == DEBUG_KIND_CLASS)" ( (binary_expression "dVar9 == DEBUG_KIND_CLASS" identifier == identifier) ))) , (field_expression "type->size" identifier -> field_identifier) , identifier , (call_expression "(uint)((debug_class_type *)type == local_34)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((debug_class_type *)type == local_34)" ( (binary_expression "(debug_class_type *)type == local_34" (cast_expression "(debug_class_type *)type" ( (type_descriptor "debug_class_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == identifier) ))) )))) ;) (if_statement "if (bVar11 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pdVar12 = (type->u).kclass;" (assignment_expression "pdVar12 = (type->u).kclass" identifier = (field_expression "(type->u).kclass" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (pdVar12 != (debug_class_type *)0x0) {\n            if ((pdVar12->fields != (debug_field *)0x0) &&\n               (pdVar19 = *pdVar12->fields, pdVar19 != (debug_field)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pcVar21 = (char *)(pdVar19->u).f.bitpos;\n                if (pdVar19->static_member == 0) {\n                  iVar8 = (*fns->struct_field)\n                                    (fhandle,pdVar19->name,(bfd_vma)pcVar21,(pdVar19->u).f.bitsize,\n                                     pdVar19->visibility);\n                }\n                else {\n                  iVar8 = (*fns->class_static_member)\n                                    (fhandle,pdVar19->name,pcVar21,pdVar19->visibility);\n                }\n                if (iVar8 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar19 = *(debug_field *)((int)pdVar12->fields + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar19 != (debug_field)0x0);\n            }\n            if ((pdVar12->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar20 = *pdVar12->baseclasses, pdVar20 != (debug_baseclass)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar20->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                bVar11 = (*fns->class_baseclass)\n                                   (fhandle,pdVar20->bitpos,pdVar20->is_virtual,pdVar20->visibility)\n                ;\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar20 = *(debug_baseclass *)((int)pdVar12->baseclasses + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar20 != (debug_baseclass)0x0);\n            }\n            if ((pdVar12->methods != (debug_method *)0x0) &&\n               (local_28 = *pdVar12->methods, local_28 != (debug_method)0x0)) {\n              local_24 = 0;\n              do {\n                bVar11 = (*fns->class_start_method)(fhandle,local_28->name);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                iVar17 = 4;\n                pdVar6 = *local_28->variants;\n                while (pdVar6 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar6->context != (debug_type_s *)0x0) &&\n                     (bVar11 = debug_write_type(info,fns,fhandle,pdVar6->context,(debug_name *)0x0),\n                     bVar11 == 0)) {\n                    return 0;\n                  }\n                  bVar11 = debug_write_type(info,fns,fhandle,pdVar6->type,(debug_name *)0x0);\n                  if (bVar11 == 0) {\n                    return 0;\n                  }\n                  if (pdVar6->voffset == 0xffffffff) {\n                    iVar8 = (*fns->class_static_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep);\n                  }\n                  else {\n                    iVar8 = (*fns->class_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep,pdVar6->voffset,\n                                       (uint)(pdVar6->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar8 == 0) {\n                    return 0;\n                  }\n                  piVar1 = (int *)((int)local_28->variants + iVar17);\n                  iVar17 = iVar17 + 4;\n                  pdVar6 = (debug_method_variant_s *)*piVar1;\n                }\n                bVar11 = (*fns->class_end_method)(fhandle);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                local_24 = local_24 + 1;\n                local_28 = ((type->u).kclass)->methods[local_24];\n              } while (local_28 != (debug_method)0x0);\n            }\n          }" if (parenthesized_expression "(pdVar12 != (debug_class_type *)0x0)" ( (binary_expression "pdVar12 != (debug_class_type *)0x0" identifier != (cast_expression "(debug_class_type *)0x0" ( (type_descriptor "debug_class_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if ((pdVar12->fields != (debug_field *)0x0) &&\n               (pdVar19 = *pdVar12->fields, pdVar19 != (debug_field)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pcVar21 = (char *)(pdVar19->u).f.bitpos;\n                if (pdVar19->static_member == 0) {\n                  iVar8 = (*fns->struct_field)\n                                    (fhandle,pdVar19->name,(bfd_vma)pcVar21,(pdVar19->u).f.bitsize,\n                                     pdVar19->visibility);\n                }\n                else {\n                  iVar8 = (*fns->class_static_member)\n                                    (fhandle,pdVar19->name,pcVar21,pdVar19->visibility);\n                }\n                if (iVar8 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar19 = *(debug_field *)((int)pdVar12->fields + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar19 != (debug_field)0x0);\n            }\n            if ((pdVar12->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar20 = *pdVar12->baseclasses, pdVar20 != (debug_baseclass)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar20->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                bVar11 = (*fns->class_baseclass)\n                                   (fhandle,pdVar20->bitpos,pdVar20->is_virtual,pdVar20->visibility)\n                ;\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar20 = *(debug_baseclass *)((int)pdVar12->baseclasses + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar20 != (debug_baseclass)0x0);\n            }\n            if ((pdVar12->methods != (debug_method *)0x0) &&\n               (local_28 = *pdVar12->methods, local_28 != (debug_method)0x0)) {\n              local_24 = 0;\n              do {\n                bVar11 = (*fns->class_start_method)(fhandle,local_28->name);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                iVar17 = 4;\n                pdVar6 = *local_28->variants;\n                while (pdVar6 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar6->context != (debug_type_s *)0x0) &&\n                     (bVar11 = debug_write_type(info,fns,fhandle,pdVar6->context,(debug_name *)0x0),\n                     bVar11 == 0)) {\n                    return 0;\n                  }\n                  bVar11 = debug_write_type(info,fns,fhandle,pdVar6->type,(debug_name *)0x0);\n                  if (bVar11 == 0) {\n                    return 0;\n                  }\n                  if (pdVar6->voffset == 0xffffffff) {\n                    iVar8 = (*fns->class_static_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep);\n                  }\n                  else {\n                    iVar8 = (*fns->class_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep,pdVar6->voffset,\n                                       (uint)(pdVar6->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar8 == 0) {\n                    return 0;\n                  }\n                  piVar1 = (int *)((int)local_28->variants + iVar17);\n                  iVar17 = iVar17 + 4;\n                  pdVar6 = (debug_method_variant_s *)*piVar1;\n                }\n                bVar11 = (*fns->class_end_method)(fhandle);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                local_24 = local_24 + 1;\n                local_28 = ((type->u).kclass)->methods[local_24];\n              } while (local_28 != (debug_method)0x0);\n            }\n          }" { (if_statement "if ((pdVar12->fields != (debug_field *)0x0) &&\n               (pdVar19 = *pdVar12->fields, pdVar19 != (debug_field)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pcVar21 = (char *)(pdVar19->u).f.bitpos;\n                if (pdVar19->static_member == 0) {\n                  iVar8 = (*fns->struct_field)\n                                    (fhandle,pdVar19->name,(bfd_vma)pcVar21,(pdVar19->u).f.bitsize,\n                                     pdVar19->visibility);\n                }\n                else {\n                  iVar8 = (*fns->class_static_member)\n                                    (fhandle,pdVar19->name,pcVar21,pdVar19->visibility);\n                }\n                if (iVar8 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar19 = *(debug_field *)((int)pdVar12->fields + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar19 != (debug_field)0x0);\n            }" if (parenthesized_expression "((pdVar12->fields != (debug_field *)0x0) &&\n               (pdVar19 = *pdVar12->fields, pdVar19 != (debug_field)0x0))" ( (binary_expression "(pdVar12->fields != (debug_field *)0x0) &&\n               (pdVar19 = *pdVar12->fields, pdVar19 != (debug_field)0x0)" (parenthesized_expression "(pdVar12->fields != (debug_field *)0x0)" ( (binary_expression "pdVar12->fields != (debug_field *)0x0" (field_expression "pdVar12->fields" identifier -> field_identifier) != (cast_expression "(debug_field *)0x0" ( (type_descriptor "debug_field *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pdVar19 = *pdVar12->fields, pdVar19 != (debug_field)0x0)" ( (comma_expression "pdVar19 = *pdVar12->fields, pdVar19 != (debug_field)0x0" (assignment_expression "pdVar19 = *pdVar12->fields" identifier = (pointer_expression "*pdVar12->fields" * (field_expression "pdVar12->fields" identifier -> field_identifier))) , (binary_expression "pdVar19 != (debug_field)0x0" identifier != (cast_expression "(debug_field)0x0" ( (type_descriptor "debug_field" type_identifier) ) number_literal))) ))) )) (compound_statement "{\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pcVar21 = (char *)(pdVar19->u).f.bitpos;\n                if (pdVar19->static_member == 0) {\n                  iVar8 = (*fns->struct_field)\n                                    (fhandle,pdVar19->name,(bfd_vma)pcVar21,(pdVar19->u).f.bitsize,\n                                     pdVar19->visibility);\n                }\n                else {\n                  iVar8 = (*fns->class_static_member)\n                                    (fhandle,pdVar19->name,pcVar21,pdVar19->visibility);\n                }\n                if (iVar8 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar19 = *(debug_field *)((int)pdVar12->fields + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar19 != (debug_field)0x0);\n            }" { (expression_statement "iVar17 = 4;" (assignment_expression "iVar17 = 4" identifier = number_literal) ;) (do_statement "do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pcVar21 = (char *)(pdVar19->u).f.bitpos;\n                if (pdVar19->static_member == 0) {\n                  iVar8 = (*fns->struct_field)\n                                    (fhandle,pdVar19->name,(bfd_vma)pcVar21,(pdVar19->u).f.bitsize,\n                                     pdVar19->visibility);\n                }\n                else {\n                  iVar8 = (*fns->class_static_member)\n                                    (fhandle,pdVar19->name,pcVar21,pdVar19->visibility);\n                }\n                if (iVar8 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar19 = *(debug_field *)((int)pdVar12->fields + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar19 != (debug_field)0x0);" do (compound_statement "{\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pcVar21 = (char *)(pdVar19->u).f.bitpos;\n                if (pdVar19->static_member == 0) {\n                  iVar8 = (*fns->struct_field)\n                                    (fhandle,pdVar19->name,(bfd_vma)pcVar21,(pdVar19->u).f.bitsize,\n                                     pdVar19->visibility);\n                }\n                else {\n                  iVar8 = (*fns->class_static_member)\n                                    (fhandle,pdVar19->name,pcVar21,pdVar19->visibility);\n                }\n                if (iVar8 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar19 = *(debug_field *)((int)pdVar12->fields + iVar17);\n                iVar17 = iVar17 + 4;\n              }" { (expression_statement "bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0);" (assignment_expression "bVar11 = debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0)" identifier = (call_expression "debug_write_type(info,fns,fhandle,pdVar19->type,(debug_name *)0x0)" identifier (argument_list "(info,fns,fhandle,pdVar19->type,(debug_name *)0x0)" ( identifier , identifier , identifier , (field_expression "pdVar19->type" identifier -> field_identifier) , (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (bVar11 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pcVar21 = (char *)(pdVar19->u).f.bitpos;" (assignment_expression "pcVar21 = (char *)(pdVar19->u).f.bitpos" identifier = (cast_expression "(char *)(pdVar19->u).f.bitpos" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "(pdVar19->u).f.bitpos" (field_expression "(pdVar19->u).f" (parenthesized_expression "(pdVar19->u)" ( (field_expression "pdVar19->u" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (if_statement "if (pdVar19->static_member == 0) {\n                  iVar8 = (*fns->struct_field)\n                                    (fhandle,pdVar19->name,(bfd_vma)pcVar21,(pdVar19->u).f.bitsize,\n                                     pdVar19->visibility);\n                }\n                else {\n                  iVar8 = (*fns->class_static_member)\n                                    (fhandle,pdVar19->name,pcVar21,pdVar19->visibility);\n                }" if (parenthesized_expression "(pdVar19->static_member == 0)" ( (binary_expression "pdVar19->static_member == 0" (field_expression "pdVar19->static_member" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n                  iVar8 = (*fns->struct_field)\n                                    (fhandle,pdVar19->name,(bfd_vma)pcVar21,(pdVar19->u).f.bitsize,\n                                     pdVar19->visibility);\n                }" { (expression_statement "iVar8 = (*fns->struct_field)\n                                    (fhandle,pdVar19->name,(bfd_vma)pcVar21,(pdVar19->u).f.bitsize,\n                                     pdVar19->visibility);" (assignment_expression "iVar8 = (*fns->struct_field)\n                                    (fhandle,pdVar19->name,(bfd_vma)pcVar21,(pdVar19->u).f.bitsize,\n                                     pdVar19->visibility)" identifier = (call_expression "(*fns->struct_field)\n                                    (fhandle,pdVar19->name,(bfd_vma)pcVar21,(pdVar19->u).f.bitsize,\n                                     pdVar19->visibility)" (parenthesized_expression "(*fns->struct_field)" ( (pointer_expression "*fns->struct_field" * (field_expression "fns->struct_field" identifier -> field_identifier)) )) (argument_list "(fhandle,pdVar19->name,(bfd_vma)pcVar21,(pdVar19->u).f.bitsize,\n                                     pdVar19->visibility)" ( identifier , (field_expression "pdVar19->name" identifier -> field_identifier) , (cast_expression "(bfd_vma)pcVar21" ( (type_descriptor "bfd_vma" type_identifier) ) identifier) , (field_expression "(pdVar19->u).f.bitsize" (field_expression "(pdVar19->u).f" (parenthesized_expression "(pdVar19->u)" ( (field_expression "pdVar19->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) , (field_expression "pdVar19->visibility" identifier -> field_identifier) )))) ;) }) (else_clause "else {\n                  iVar8 = (*fns->class_static_member)\n                                    (fhandle,pdVar19->name,pcVar21,pdVar19->visibility);\n                }" else (compound_statement "{\n                  iVar8 = (*fns->class_static_member)\n                                    (fhandle,pdVar19->name,pcVar21,pdVar19->visibility);\n                }" { (expression_statement "iVar8 = (*fns->class_static_member)\n                                    (fhandle,pdVar19->name,pcVar21,pdVar19->visibility);" (assignment_expression "iVar8 = (*fns->class_static_member)\n                                    (fhandle,pdVar19->name,pcVar21,pdVar19->visibility)" identifier = (call_expression "(*fns->class_static_member)\n                                    (fhandle,pdVar19->name,pcVar21,pdVar19->visibility)" (parenthesized_expression "(*fns->class_static_member)" ( (pointer_expression "*fns->class_static_member" * (field_expression "fns->class_static_member" identifier -> field_identifier)) )) (argument_list "(fhandle,pdVar19->name,pcVar21,pdVar19->visibility)" ( identifier , (field_expression "pdVar19->name" identifier -> field_identifier) , identifier , (field_expression "pdVar19->visibility" identifier -> field_identifier) )))) ;) }))) (if_statement "if (iVar8 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pdVar12 = (type->u).kclass;" (assignment_expression "pdVar12 = (type->u).kclass" identifier = (field_expression "(type->u).kclass" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pdVar19 = *(debug_field *)((int)pdVar12->fields + iVar17);" (assignment_expression "pdVar19 = *(debug_field *)((int)pdVar12->fields + iVar17)" identifier = (pointer_expression "*(debug_field *)((int)pdVar12->fields + iVar17)" * (cast_expression "(debug_field *)((int)pdVar12->fields + iVar17)" ( (type_descriptor "debug_field *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar12->fields + iVar17)" ( (binary_expression "(int)pdVar12->fields + iVar17" (cast_expression "(int)pdVar12->fields" ( (type_descriptor "int" primitive_type) ) (field_expression "pdVar12->fields" identifier -> field_identifier)) + identifier) ))))) ;) (expression_statement "iVar17 = iVar17 + 4;" (assignment_expression "iVar17 = iVar17 + 4" identifier = (binary_expression "iVar17 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar19 != (debug_field)0x0)" ( (binary_expression "pdVar19 != (debug_field)0x0" identifier != (cast_expression "(debug_field)0x0" ( (type_descriptor "debug_field" type_identifier) ) number_literal)) )) ;) })) (if_statement "if ((pdVar12->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar20 = *pdVar12->baseclasses, pdVar20 != (debug_baseclass)0x0)) {\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar20->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                bVar11 = (*fns->class_baseclass)\n                                   (fhandle,pdVar20->bitpos,pdVar20->is_virtual,pdVar20->visibility)\n                ;\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar20 = *(debug_baseclass *)((int)pdVar12->baseclasses + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar20 != (debug_baseclass)0x0);\n            }" if (parenthesized_expression "((pdVar12->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar20 = *pdVar12->baseclasses, pdVar20 != (debug_baseclass)0x0))" ( (binary_expression "(pdVar12->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar20 = *pdVar12->baseclasses, pdVar20 != (debug_baseclass)0x0)" (parenthesized_expression "(pdVar12->baseclasses != (debug_baseclass *)0x0)" ( (binary_expression "pdVar12->baseclasses != (debug_baseclass *)0x0" (field_expression "pdVar12->baseclasses" identifier -> field_identifier) != (cast_expression "(debug_baseclass *)0x0" ( (type_descriptor "debug_baseclass *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pdVar20 = *pdVar12->baseclasses, pdVar20 != (debug_baseclass)0x0)" ( (comma_expression "pdVar20 = *pdVar12->baseclasses, pdVar20 != (debug_baseclass)0x0" (assignment_expression "pdVar20 = *pdVar12->baseclasses" identifier = (pointer_expression "*pdVar12->baseclasses" * (field_expression "pdVar12->baseclasses" identifier -> field_identifier))) , (binary_expression "pdVar20 != (debug_baseclass)0x0" identifier != (cast_expression "(debug_baseclass)0x0" ( (type_descriptor "debug_baseclass" type_identifier) ) number_literal))) ))) )) (compound_statement "{\n              iVar17 = 4;\n              do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar20->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                bVar11 = (*fns->class_baseclass)\n                                   (fhandle,pdVar20->bitpos,pdVar20->is_virtual,pdVar20->visibility)\n                ;\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar20 = *(debug_baseclass *)((int)pdVar12->baseclasses + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar20 != (debug_baseclass)0x0);\n            }" { (expression_statement "iVar17 = 4;" (assignment_expression "iVar17 = 4" identifier = number_literal) ;) (do_statement "do {\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar20->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                bVar11 = (*fns->class_baseclass)\n                                   (fhandle,pdVar20->bitpos,pdVar20->is_virtual,pdVar20->visibility)\n                ;\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar20 = *(debug_baseclass *)((int)pdVar12->baseclasses + iVar17);\n                iVar17 = iVar17 + 4;\n              } while (pdVar20 != (debug_baseclass)0x0);" do (compound_statement "{\n                bVar11 = debug_write_type(info,fns,fhandle,pdVar20->type,(debug_name *)0x0);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                bVar11 = (*fns->class_baseclass)\n                                   (fhandle,pdVar20->bitpos,pdVar20->is_virtual,pdVar20->visibility)\n                ;\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                pdVar12 = (type->u).kclass;\n                pdVar20 = *(debug_baseclass *)((int)pdVar12->baseclasses + iVar17);\n                iVar17 = iVar17 + 4;\n              }" { (expression_statement "bVar11 = debug_write_type(info,fns,fhandle,pdVar20->type,(debug_name *)0x0);" (assignment_expression "bVar11 = debug_write_type(info,fns,fhandle,pdVar20->type,(debug_name *)0x0)" identifier = (call_expression "debug_write_type(info,fns,fhandle,pdVar20->type,(debug_name *)0x0)" identifier (argument_list "(info,fns,fhandle,pdVar20->type,(debug_name *)0x0)" ( identifier , identifier , identifier , (field_expression "pdVar20->type" identifier -> field_identifier) , (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (bVar11 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar11 = (*fns->class_baseclass)\n                                   (fhandle,pdVar20->bitpos,pdVar20->is_virtual,pdVar20->visibility)\n                ;" (assignment_expression "bVar11 = (*fns->class_baseclass)\n                                   (fhandle,pdVar20->bitpos,pdVar20->is_virtual,pdVar20->visibility)" identifier = (call_expression "(*fns->class_baseclass)\n                                   (fhandle,pdVar20->bitpos,pdVar20->is_virtual,pdVar20->visibility)" (parenthesized_expression "(*fns->class_baseclass)" ( (pointer_expression "*fns->class_baseclass" * (field_expression "fns->class_baseclass" identifier -> field_identifier)) )) (argument_list "(fhandle,pdVar20->bitpos,pdVar20->is_virtual,pdVar20->visibility)" ( identifier , (field_expression "pdVar20->bitpos" identifier -> field_identifier) , (field_expression "pdVar20->is_virtual" identifier -> field_identifier) , (field_expression "pdVar20->visibility" identifier -> field_identifier) )))) ;) (if_statement "if (bVar11 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pdVar12 = (type->u).kclass;" (assignment_expression "pdVar12 = (type->u).kclass" identifier = (field_expression "(type->u).kclass" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pdVar20 = *(debug_baseclass *)((int)pdVar12->baseclasses + iVar17);" (assignment_expression "pdVar20 = *(debug_baseclass *)((int)pdVar12->baseclasses + iVar17)" identifier = (pointer_expression "*(debug_baseclass *)((int)pdVar12->baseclasses + iVar17)" * (cast_expression "(debug_baseclass *)((int)pdVar12->baseclasses + iVar17)" ( (type_descriptor "debug_baseclass *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar12->baseclasses + iVar17)" ( (binary_expression "(int)pdVar12->baseclasses + iVar17" (cast_expression "(int)pdVar12->baseclasses" ( (type_descriptor "int" primitive_type) ) (field_expression "pdVar12->baseclasses" identifier -> field_identifier)) + identifier) ))))) ;) (expression_statement "iVar17 = iVar17 + 4;" (assignment_expression "iVar17 = iVar17 + 4" identifier = (binary_expression "iVar17 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar20 != (debug_baseclass)0x0)" ( (binary_expression "pdVar20 != (debug_baseclass)0x0" identifier != (cast_expression "(debug_baseclass)0x0" ( (type_descriptor "debug_baseclass" type_identifier) ) number_literal)) )) ;) })) (if_statement "if ((pdVar12->methods != (debug_method *)0x0) &&\n               (local_28 = *pdVar12->methods, local_28 != (debug_method)0x0)) {\n              local_24 = 0;\n              do {\n                bVar11 = (*fns->class_start_method)(fhandle,local_28->name);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                iVar17 = 4;\n                pdVar6 = *local_28->variants;\n                while (pdVar6 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar6->context != (debug_type_s *)0x0) &&\n                     (bVar11 = debug_write_type(info,fns,fhandle,pdVar6->context,(debug_name *)0x0),\n                     bVar11 == 0)) {\n                    return 0;\n                  }\n                  bVar11 = debug_write_type(info,fns,fhandle,pdVar6->type,(debug_name *)0x0);\n                  if (bVar11 == 0) {\n                    return 0;\n                  }\n                  if (pdVar6->voffset == 0xffffffff) {\n                    iVar8 = (*fns->class_static_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep);\n                  }\n                  else {\n                    iVar8 = (*fns->class_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep,pdVar6->voffset,\n                                       (uint)(pdVar6->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar8 == 0) {\n                    return 0;\n                  }\n                  piVar1 = (int *)((int)local_28->variants + iVar17);\n                  iVar17 = iVar17 + 4;\n                  pdVar6 = (debug_method_variant_s *)*piVar1;\n                }\n                bVar11 = (*fns->class_end_method)(fhandle);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                local_24 = local_24 + 1;\n                local_28 = ((type->u).kclass)->methods[local_24];\n              } while (local_28 != (debug_method)0x0);\n            }" if (parenthesized_expression "((pdVar12->methods != (debug_method *)0x0) &&\n               (local_28 = *pdVar12->methods, local_28 != (debug_method)0x0))" ( (binary_expression "(pdVar12->methods != (debug_method *)0x0) &&\n               (local_28 = *pdVar12->methods, local_28 != (debug_method)0x0)" (parenthesized_expression "(pdVar12->methods != (debug_method *)0x0)" ( (binary_expression "pdVar12->methods != (debug_method *)0x0" (field_expression "pdVar12->methods" identifier -> field_identifier) != (cast_expression "(debug_method *)0x0" ( (type_descriptor "debug_method *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_28 = *pdVar12->methods, local_28 != (debug_method)0x0)" ( (comma_expression "local_28 = *pdVar12->methods, local_28 != (debug_method)0x0" (assignment_expression "local_28 = *pdVar12->methods" identifier = (pointer_expression "*pdVar12->methods" * (field_expression "pdVar12->methods" identifier -> field_identifier))) , (binary_expression "local_28 != (debug_method)0x0" identifier != (cast_expression "(debug_method)0x0" ( (type_descriptor "debug_method" type_identifier) ) number_literal))) ))) )) (compound_statement "{\n              local_24 = 0;\n              do {\n                bVar11 = (*fns->class_start_method)(fhandle,local_28->name);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                iVar17 = 4;\n                pdVar6 = *local_28->variants;\n                while (pdVar6 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar6->context != (debug_type_s *)0x0) &&\n                     (bVar11 = debug_write_type(info,fns,fhandle,pdVar6->context,(debug_name *)0x0),\n                     bVar11 == 0)) {\n                    return 0;\n                  }\n                  bVar11 = debug_write_type(info,fns,fhandle,pdVar6->type,(debug_name *)0x0);\n                  if (bVar11 == 0) {\n                    return 0;\n                  }\n                  if (pdVar6->voffset == 0xffffffff) {\n                    iVar8 = (*fns->class_static_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep);\n                  }\n                  else {\n                    iVar8 = (*fns->class_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep,pdVar6->voffset,\n                                       (uint)(pdVar6->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar8 == 0) {\n                    return 0;\n                  }\n                  piVar1 = (int *)((int)local_28->variants + iVar17);\n                  iVar17 = iVar17 + 4;\n                  pdVar6 = (debug_method_variant_s *)*piVar1;\n                }\n                bVar11 = (*fns->class_end_method)(fhandle);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                local_24 = local_24 + 1;\n                local_28 = ((type->u).kclass)->methods[local_24];\n              } while (local_28 != (debug_method)0x0);\n            }" { (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (do_statement "do {\n                bVar11 = (*fns->class_start_method)(fhandle,local_28->name);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                iVar17 = 4;\n                pdVar6 = *local_28->variants;\n                while (pdVar6 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar6->context != (debug_type_s *)0x0) &&\n                     (bVar11 = debug_write_type(info,fns,fhandle,pdVar6->context,(debug_name *)0x0),\n                     bVar11 == 0)) {\n                    return 0;\n                  }\n                  bVar11 = debug_write_type(info,fns,fhandle,pdVar6->type,(debug_name *)0x0);\n                  if (bVar11 == 0) {\n                    return 0;\n                  }\n                  if (pdVar6->voffset == 0xffffffff) {\n                    iVar8 = (*fns->class_static_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep);\n                  }\n                  else {\n                    iVar8 = (*fns->class_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep,pdVar6->voffset,\n                                       (uint)(pdVar6->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar8 == 0) {\n                    return 0;\n                  }\n                  piVar1 = (int *)((int)local_28->variants + iVar17);\n                  iVar17 = iVar17 + 4;\n                  pdVar6 = (debug_method_variant_s *)*piVar1;\n                }\n                bVar11 = (*fns->class_end_method)(fhandle);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                local_24 = local_24 + 1;\n                local_28 = ((type->u).kclass)->methods[local_24];\n              } while (local_28 != (debug_method)0x0);" do (compound_statement "{\n                bVar11 = (*fns->class_start_method)(fhandle,local_28->name);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                iVar17 = 4;\n                pdVar6 = *local_28->variants;\n                while (pdVar6 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar6->context != (debug_type_s *)0x0) &&\n                     (bVar11 = debug_write_type(info,fns,fhandle,pdVar6->context,(debug_name *)0x0),\n                     bVar11 == 0)) {\n                    return 0;\n                  }\n                  bVar11 = debug_write_type(info,fns,fhandle,pdVar6->type,(debug_name *)0x0);\n                  if (bVar11 == 0) {\n                    return 0;\n                  }\n                  if (pdVar6->voffset == 0xffffffff) {\n                    iVar8 = (*fns->class_static_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep);\n                  }\n                  else {\n                    iVar8 = (*fns->class_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep,pdVar6->voffset,\n                                       (uint)(pdVar6->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar8 == 0) {\n                    return 0;\n                  }\n                  piVar1 = (int *)((int)local_28->variants + iVar17);\n                  iVar17 = iVar17 + 4;\n                  pdVar6 = (debug_method_variant_s *)*piVar1;\n                }\n                bVar11 = (*fns->class_end_method)(fhandle);\n                if (bVar11 == 0) {\n                  return 0;\n                }\n                local_24 = local_24 + 1;\n                local_28 = ((type->u).kclass)->methods[local_24];\n              }" { (expression_statement "bVar11 = (*fns->class_start_method)(fhandle,local_28->name);" (assignment_expression "bVar11 = (*fns->class_start_method)(fhandle,local_28->name)" identifier = (call_expression "(*fns->class_start_method)(fhandle,local_28->name)" (parenthesized_expression "(*fns->class_start_method)" ( (pointer_expression "*fns->class_start_method" * (field_expression "fns->class_start_method" identifier -> field_identifier)) )) (argument_list "(fhandle,local_28->name)" ( identifier , (field_expression "local_28->name" identifier -> field_identifier) )))) ;) (if_statement "if (bVar11 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar17 = 4;" (assignment_expression "iVar17 = 4" identifier = number_literal) ;) (expression_statement "pdVar6 = *local_28->variants;" (assignment_expression "pdVar6 = *local_28->variants" identifier = (pointer_expression "*local_28->variants" * (field_expression "local_28->variants" identifier -> field_identifier))) ;) (while_statement "while (pdVar6 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar6->context != (debug_type_s *)0x0) &&\n                     (bVar11 = debug_write_type(info,fns,fhandle,pdVar6->context,(debug_name *)0x0),\n                     bVar11 == 0)) {\n                    return 0;\n                  }\n                  bVar11 = debug_write_type(info,fns,fhandle,pdVar6->type,(debug_name *)0x0);\n                  if (bVar11 == 0) {\n                    return 0;\n                  }\n                  if (pdVar6->voffset == 0xffffffff) {\n                    iVar8 = (*fns->class_static_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep);\n                  }\n                  else {\n                    iVar8 = (*fns->class_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep,pdVar6->voffset,\n                                       (uint)(pdVar6->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar8 == 0) {\n                    return 0;\n                  }\n                  piVar1 = (int *)((int)local_28->variants + iVar17);\n                  iVar17 = iVar17 + 4;\n                  pdVar6 = (debug_method_variant_s *)*piVar1;\n                }" while (parenthesized_expression "(pdVar6 != (debug_method_variant_s *)0x0)" ( (binary_expression "pdVar6 != (debug_method_variant_s *)0x0" identifier != (cast_expression "(debug_method_variant_s *)0x0" ( (type_descriptor "debug_method_variant_s *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if ((pdVar6->context != (debug_type_s *)0x0) &&\n                     (bVar11 = debug_write_type(info,fns,fhandle,pdVar6->context,(debug_name *)0x0),\n                     bVar11 == 0)) {\n                    return 0;\n                  }\n                  bVar11 = debug_write_type(info,fns,fhandle,pdVar6->type,(debug_name *)0x0);\n                  if (bVar11 == 0) {\n                    return 0;\n                  }\n                  if (pdVar6->voffset == 0xffffffff) {\n                    iVar8 = (*fns->class_static_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep);\n                  }\n                  else {\n                    iVar8 = (*fns->class_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep,pdVar6->voffset,\n                                       (uint)(pdVar6->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar8 == 0) {\n                    return 0;\n                  }\n                  piVar1 = (int *)((int)local_28->variants + iVar17);\n                  iVar17 = iVar17 + 4;\n                  pdVar6 = (debug_method_variant_s *)*piVar1;\n                }" { (if_statement "if ((pdVar6->context != (debug_type_s *)0x0) &&\n                     (bVar11 = debug_write_type(info,fns,fhandle,pdVar6->context,(debug_name *)0x0),\n                     bVar11 == 0)) {\n                    return 0;\n                  }" if (parenthesized_expression "((pdVar6->context != (debug_type_s *)0x0) &&\n                     (bVar11 = debug_write_type(info,fns,fhandle,pdVar6->context,(debug_name *)0x0),\n                     bVar11 == 0))" ( (binary_expression "(pdVar6->context != (debug_type_s *)0x0) &&\n                     (bVar11 = debug_write_type(info,fns,fhandle,pdVar6->context,(debug_name *)0x0),\n                     bVar11 == 0)" (parenthesized_expression "(pdVar6->context != (debug_type_s *)0x0)" ( (binary_expression "pdVar6->context != (debug_type_s *)0x0" (field_expression "pdVar6->context" identifier -> field_identifier) != (cast_expression "(debug_type_s *)0x0" ( (type_descriptor "debug_type_s *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(bVar11 = debug_write_type(info,fns,fhandle,pdVar6->context,(debug_name *)0x0),\n                     bVar11 == 0)" ( (comma_expression "bVar11 = debug_write_type(info,fns,fhandle,pdVar6->context,(debug_name *)0x0),\n                     bVar11 == 0" (assignment_expression "bVar11 = debug_write_type(info,fns,fhandle,pdVar6->context,(debug_name *)0x0)" identifier = (call_expression "debug_write_type(info,fns,fhandle,pdVar6->context,(debug_name *)0x0)" identifier (argument_list "(info,fns,fhandle,pdVar6->context,(debug_name *)0x0)" ( identifier , identifier , identifier , (field_expression "pdVar6->context" identifier -> field_identifier) , (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) , (binary_expression "bVar11 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                    return 0;\n                  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar11 = debug_write_type(info,fns,fhandle,pdVar6->type,(debug_name *)0x0);" (assignment_expression "bVar11 = debug_write_type(info,fns,fhandle,pdVar6->type,(debug_name *)0x0)" identifier = (call_expression "debug_write_type(info,fns,fhandle,pdVar6->type,(debug_name *)0x0)" identifier (argument_list "(info,fns,fhandle,pdVar6->type,(debug_name *)0x0)" ( identifier , identifier , identifier , (field_expression "pdVar6->type" identifier -> field_identifier) , (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (bVar11 == 0) {\n                    return 0;\n                  }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                    return 0;\n                  }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (pdVar6->voffset == 0xffffffff) {\n                    iVar8 = (*fns->class_static_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep);\n                  }\n                  else {\n                    iVar8 = (*fns->class_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep,pdVar6->voffset,\n                                       (uint)(pdVar6->context != (debug_type_s *)0x0));\n                  }" if (parenthesized_expression "(pdVar6->voffset == 0xffffffff)" ( (binary_expression "pdVar6->voffset == 0xffffffff" (field_expression "pdVar6->voffset" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n                    iVar8 = (*fns->class_static_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep);\n                  }" { (expression_statement "iVar8 = (*fns->class_static_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep);" (assignment_expression "iVar8 = (*fns->class_static_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep)" identifier = (call_expression "(*fns->class_static_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep)" (parenthesized_expression "(*fns->class_static_method_variant)" ( (pointer_expression "*fns->class_static_method_variant" * (field_expression "fns->class_static_method_variant" identifier -> field_identifier)) )) (argument_list "(fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep)" ( identifier , (field_expression "pdVar6->physname" identifier -> field_identifier) , (field_expression "pdVar6->visibility" identifier -> field_identifier) , (field_expression "pdVar6->constp" identifier -> field_identifier) , (field_expression "pdVar6->volatilep" identifier -> field_identifier) )))) ;) }) (else_clause "else {\n                    iVar8 = (*fns->class_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep,pdVar6->voffset,\n                                       (uint)(pdVar6->context != (debug_type_s *)0x0));\n                  }" else (compound_statement "{\n                    iVar8 = (*fns->class_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep,pdVar6->voffset,\n                                       (uint)(pdVar6->context != (debug_type_s *)0x0));\n                  }" { (expression_statement "iVar8 = (*fns->class_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep,pdVar6->voffset,\n                                       (uint)(pdVar6->context != (debug_type_s *)0x0));" (assignment_expression "iVar8 = (*fns->class_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep,pdVar6->voffset,\n                                       (uint)(pdVar6->context != (debug_type_s *)0x0))" identifier = (call_expression "(*fns->class_method_variant)\n                                      (fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep,pdVar6->voffset,\n                                       (uint)(pdVar6->context != (debug_type_s *)0x0))" (parenthesized_expression "(*fns->class_method_variant)" ( (pointer_expression "*fns->class_method_variant" * (field_expression "fns->class_method_variant" identifier -> field_identifier)) )) (argument_list "(fhandle,pdVar6->physname,pdVar6->visibility,pdVar6->constp,\n                                       pdVar6->volatilep,pdVar6->voffset,\n                                       (uint)(pdVar6->context != (debug_type_s *)0x0))" ( identifier , (field_expression "pdVar6->physname" identifier -> field_identifier) , (field_expression "pdVar6->visibility" identifier -> field_identifier) , (field_expression "pdVar6->constp" identifier -> field_identifier) , (field_expression "pdVar6->volatilep" identifier -> field_identifier) , (field_expression "pdVar6->voffset" identifier -> field_identifier) , (call_expression "(uint)(pdVar6->context != (debug_type_s *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pdVar6->context != (debug_type_s *)0x0)" ( (binary_expression "pdVar6->context != (debug_type_s *)0x0" (field_expression "pdVar6->context" identifier -> field_identifier) != (cast_expression "(debug_type_s *)0x0" ( (type_descriptor "debug_type_s *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )))) ;) }))) (if_statement "if (iVar8 == 0) {\n                    return 0;\n                  }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n                    return 0;\n                  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "piVar1 = (int *)((int)local_28->variants + iVar17);" (assignment_expression "piVar1 = (int *)((int)local_28->variants + iVar17)" identifier = (cast_expression "(int *)((int)local_28->variants + iVar17)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_28->variants + iVar17)" ( (binary_expression "(int)local_28->variants + iVar17" (cast_expression "(int)local_28->variants" ( (type_descriptor "int" primitive_type) ) (field_expression "local_28->variants" identifier -> field_identifier)) + identifier) )))) ;) (expression_statement "iVar17 = iVar17 + 4;" (assignment_expression "iVar17 = iVar17 + 4" identifier = (binary_expression "iVar17 + 4" identifier + number_literal)) ;) (expression_statement "pdVar6 = (debug_method_variant_s *)*piVar1;" (assignment_expression "pdVar6 = (debug_method_variant_s *)*piVar1" identifier = (cast_expression "(debug_method_variant_s *)*piVar1" ( (type_descriptor "debug_method_variant_s *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) })) (expression_statement "bVar11 = (*fns->class_end_method)(fhandle);" (assignment_expression "bVar11 = (*fns->class_end_method)(fhandle)" identifier = (call_expression "(*fns->class_end_method)(fhandle)" (parenthesized_expression "(*fns->class_end_method)" ( (pointer_expression "*fns->class_end_method" * (field_expression "fns->class_end_method" identifier -> field_identifier)) )) (argument_list "(fhandle)" ( identifier )))) ;) (if_statement "if (bVar11 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "local_24 = local_24 + 1;" (assignment_expression "local_24 = local_24 + 1" identifier = (binary_expression "local_24 + 1" identifier + number_literal)) ;) (expression_statement "local_28 = ((type->u).kclass)->methods[local_24];" (assignment_expression "local_28 = ((type->u).kclass)->methods[local_24]" identifier = (subscript_expression "((type->u).kclass)->methods[local_24]" (field_expression "((type->u).kclass)->methods" (parenthesized_expression "((type->u).kclass)" ( (field_expression "(type->u).kclass" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) [ identifier ])) ;) }) while (parenthesized_expression "(local_28 != (debug_method)0x0)" ( (binary_expression "local_28 != (debug_method)0x0" identifier != (cast_expression "(debug_method)0x0" ( (type_descriptor "debug_method" type_identifier) ) number_literal)) )) ;) })) })) (expression_statement "UNRECOVERED_JUMPTABLE_00 = fns->end_class_type;" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = fns->end_class_type" identifier = (field_expression "fns->end_class_type" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0001d69f;" goto statement_identifier ;)) (case_statement "case DEBUG_KIND_ENUM:\n          pdVar4 = (type->u).kenum;\n          if (pdVar4 == (debug_enum_type *)0x0) {\n            bVar11 = (*fns->enum_type)(fhandle,local_30,(char **)0x0,(bfd_signed_vma *)0x0);\n            return bVar11;\n          }\n          bVar11 = (*fns->enum_type)(fhandle,local_30,pdVar4->names,pdVar4->values);\n          return bVar11;" case identifier : (expression_statement "pdVar4 = (type->u).kenum;" (assignment_expression "pdVar4 = (type->u).kenum" identifier = (field_expression "(type->u).kenum" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (pdVar4 == (debug_enum_type *)0x0) {\n            bVar11 = (*fns->enum_type)(fhandle,local_30,(char **)0x0,(bfd_signed_vma *)0x0);\n            return bVar11;\n          }" if (parenthesized_expression "(pdVar4 == (debug_enum_type *)0x0)" ( (binary_expression "pdVar4 == (debug_enum_type *)0x0" identifier == (cast_expression "(debug_enum_type *)0x0" ( (type_descriptor "debug_enum_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            bVar11 = (*fns->enum_type)(fhandle,local_30,(char **)0x0,(bfd_signed_vma *)0x0);\n            return bVar11;\n          }" { (expression_statement "bVar11 = (*fns->enum_type)(fhandle,local_30,(char **)0x0,(bfd_signed_vma *)0x0);" (assignment_expression "bVar11 = (*fns->enum_type)(fhandle,local_30,(char **)0x0,(bfd_signed_vma *)0x0)" identifier = (call_expression "(*fns->enum_type)(fhandle,local_30,(char **)0x0,(bfd_signed_vma *)0x0)" (parenthesized_expression "(*fns->enum_type)" ( (pointer_expression "*fns->enum_type" * (field_expression "fns->enum_type" identifier -> field_identifier)) )) (argument_list "(fhandle,local_30,(char **)0x0,(bfd_signed_vma *)0x0)" ( identifier , identifier , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , (cast_expression "(bfd_signed_vma *)0x0" ( (type_descriptor "bfd_signed_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (return_statement "return bVar11;" return identifier ;) })) (expression_statement "bVar11 = (*fns->enum_type)(fhandle,local_30,pdVar4->names,pdVar4->values);" (assignment_expression "bVar11 = (*fns->enum_type)(fhandle,local_30,pdVar4->names,pdVar4->values)" identifier = (call_expression "(*fns->enum_type)(fhandle,local_30,pdVar4->names,pdVar4->values)" (parenthesized_expression "(*fns->enum_type)" ( (pointer_expression "*fns->enum_type" * (field_expression "fns->enum_type" identifier -> field_identifier)) )) (argument_list "(fhandle,local_30,pdVar4->names,pdVar4->values)" ( identifier , identifier , (field_expression "pdVar4->names" identifier -> field_identifier) , (field_expression "pdVar4->values" identifier -> field_identifier) )))) ;) (return_statement "return bVar11;" return identifier ;)) (case_statement "case DEBUG_KIND_POINTER:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->pointer_type;\n          goto LAB_0001d69f;" case identifier : (expression_statement "bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);" (assignment_expression "bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0)" identifier = (call_expression "debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0)" identifier (argument_list "(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0)" ( identifier , identifier , identifier , (field_expression "(type->u).kpointer" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier) , (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (bVar11 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "UNRECOVERED_JUMPTABLE_00 = fns->pointer_type;" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = fns->pointer_type" identifier = (field_expression "fns->pointer_type" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0001d69f;" goto statement_identifier ;)) (case_statement "case DEBUG_KIND_FUNCTION:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar15 = (type->u).kfunction;\n          if (pdVar15->arg_types == (debug_type_conflict *)0x0) {\n            iVar17 = -1;\n          }\n          else {\n            iVar17 = 0;\n            pdVar10 = *pdVar15->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar15 = (type->u).kfunction;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar15->arg_types[iVar17];\n            }\n          }\n          bVar11 = (*fns->function_type)(fhandle,iVar17,pdVar15->varargs);\n          return bVar11;" case identifier : (expression_statement "bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);" (assignment_expression "bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0)" identifier = (call_expression "debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0)" identifier (argument_list "(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0)" ( identifier , identifier , identifier , (field_expression "((type->u).kfunction)->return_type" (parenthesized_expression "((type->u).kfunction)" ( (field_expression "(type->u).kfunction" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) , (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (bVar11 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pdVar15 = (type->u).kfunction;" (assignment_expression "pdVar15 = (type->u).kfunction" identifier = (field_expression "(type->u).kfunction" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (pdVar15->arg_types == (debug_type_conflict *)0x0) {\n            iVar17 = -1;\n          }\n          else {\n            iVar17 = 0;\n            pdVar10 = *pdVar15->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar15 = (type->u).kfunction;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar15->arg_types[iVar17];\n            }\n          }" if (parenthesized_expression "(pdVar15->arg_types == (debug_type_conflict *)0x0)" ( (binary_expression "pdVar15->arg_types == (debug_type_conflict *)0x0" (field_expression "pdVar15->arg_types" identifier -> field_identifier) == (cast_expression "(debug_type_conflict *)0x0" ( (type_descriptor "debug_type_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar17 = -1;\n          }" { (expression_statement "iVar17 = -1;" (assignment_expression "iVar17 = -1" identifier = number_literal) ;) }) (else_clause "else {\n            iVar17 = 0;\n            pdVar10 = *pdVar15->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar15 = (type->u).kfunction;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar15->arg_types[iVar17];\n            }\n          }" else (compound_statement "{\n            iVar17 = 0;\n            pdVar10 = *pdVar15->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar15 = (type->u).kfunction;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar15->arg_types[iVar17];\n            }\n          }" { (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "pdVar10 = *pdVar15->arg_types;" (assignment_expression "pdVar10 = *pdVar15->arg_types" identifier = (pointer_expression "*pdVar15->arg_types" * (field_expression "pdVar15->arg_types" identifier -> field_identifier))) ;) (while_statement "while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar15 = (type->u).kfunction;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar15->arg_types[iVar17];\n            }" while (parenthesized_expression "(pdVar10 != (debug_type_s *)0x0)" ( (binary_expression "pdVar10 != (debug_type_s *)0x0" identifier != (cast_expression "(debug_type_s *)0x0" ( (type_descriptor "debug_type_s *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar15 = (type->u).kfunction;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar15->arg_types[iVar17];\n            }" { (expression_statement "bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);" (assignment_expression "bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0)" identifier = (call_expression "debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0)" identifier (argument_list "(info,fns,fhandle,pdVar10,(debug_name *)0x0)" ( identifier , identifier , identifier , identifier , (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (bVar11 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pdVar15 = (type->u).kfunction;" (assignment_expression "pdVar15 = (type->u).kfunction" identifier = (field_expression "(type->u).kfunction" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) (expression_statement "pdVar10 = pdVar15->arg_types[iVar17];" (assignment_expression "pdVar10 = pdVar15->arg_types[iVar17]" identifier = (subscript_expression "pdVar15->arg_types[iVar17]" (field_expression "pdVar15->arg_types" identifier -> field_identifier) [ identifier ])) ;) })) }))) (expression_statement "bVar11 = (*fns->function_type)(fhandle,iVar17,pdVar15->varargs);" (assignment_expression "bVar11 = (*fns->function_type)(fhandle,iVar17,pdVar15->varargs)" identifier = (call_expression "(*fns->function_type)(fhandle,iVar17,pdVar15->varargs)" (parenthesized_expression "(*fns->function_type)" ( (pointer_expression "*fns->function_type" * (field_expression "fns->function_type" identifier -> field_identifier)) )) (argument_list "(fhandle,iVar17,pdVar15->varargs)" ( identifier , identifier , (field_expression "pdVar15->varargs" identifier -> field_identifier) )))) ;) (return_statement "return bVar11;" return identifier ;)) (case_statement "case DEBUG_KIND_REFERENCE:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->reference_type;\n          goto LAB_0001d69f;" case identifier : (expression_statement "bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);" (assignment_expression "bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0)" identifier = (call_expression "debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0)" identifier (argument_list "(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0)" ( identifier , identifier , identifier , (field_expression "(type->u).kpointer" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier) , (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (bVar11 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "UNRECOVERED_JUMPTABLE_00 = fns->reference_type;" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = fns->reference_type" identifier = (field_expression "fns->reference_type" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0001d69f;" goto statement_identifier ;)) (case_statement "case DEBUG_KIND_RANGE:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);\n          return bVar11;" case identifier : (expression_statement "bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);" (assignment_expression "bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0)" identifier = (call_expression "debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0)" identifier (argument_list "(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0)" ( identifier , identifier , identifier , (field_expression "((type->u).kfunction)->return_type" (parenthesized_expression "((type->u).kfunction)" ( (field_expression "(type->u).kfunction" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) , (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (bVar11 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar11 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);" (assignment_expression "bVar11 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper)" identifier = (call_expression "(*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper)" (parenthesized_expression "(*fns->range_type)" ( (pointer_expression "*fns->range_type" * (field_expression "fns->range_type" identifier -> field_identifier)) )) (argument_list "(fhandle,((type->u).krange)->lower,((type->u).krange)->upper)" ( identifier , (field_expression "((type->u).krange)->lower" (parenthesized_expression "((type->u).krange)" ( (field_expression "(type->u).krange" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) , (field_expression "((type->u).krange)->upper" (parenthesized_expression "((type->u).krange)" ( (field_expression "(type->u).krange" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) )))) ;) (return_statement "return bVar11;" return identifier ;)) (case_statement "case DEBUG_KIND_ARRAY:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar3 = (type->u).karray;\n          bVar11 = (*fns->array_type)(fhandle,pdVar3->lower,pdVar3->upper,pdVar3->stringp);\n          return bVar11;" case identifier : (expression_statement "bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);" (assignment_expression "bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0)" identifier = (call_expression "debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0)" identifier (argument_list "(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0)" ( identifier , identifier , identifier , (field_expression "((type->u).kfunction)->return_type" (parenthesized_expression "((type->u).kfunction)" ( (field_expression "(type->u).kfunction" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) , (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (bVar11 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0);" (assignment_expression "bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0)" identifier = (call_expression "debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0)" identifier (argument_list "(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0)" ( identifier , identifier , identifier , (field_expression "((type->u).karray)->range_type" (parenthesized_expression "((type->u).karray)" ( (field_expression "(type->u).karray" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) , (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (bVar11 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pdVar3 = (type->u).karray;" (assignment_expression "pdVar3 = (type->u).karray" identifier = (field_expression "(type->u).karray" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "bVar11 = (*fns->array_type)(fhandle,pdVar3->lower,pdVar3->upper,pdVar3->stringp);" (assignment_expression "bVar11 = (*fns->array_type)(fhandle,pdVar3->lower,pdVar3->upper,pdVar3->stringp)" identifier = (call_expression "(*fns->array_type)(fhandle,pdVar3->lower,pdVar3->upper,pdVar3->stringp)" (parenthesized_expression "(*fns->array_type)" ( (pointer_expression "*fns->array_type" * (field_expression "fns->array_type" identifier -> field_identifier)) )) (argument_list "(fhandle,pdVar3->lower,pdVar3->upper,pdVar3->stringp)" ( identifier , (field_expression "pdVar3->lower" identifier -> field_identifier) , (field_expression "pdVar3->upper" identifier -> field_identifier) , (field_expression "pdVar3->stringp" identifier -> field_identifier) )))) ;) (return_statement "return bVar11;" return identifier ;)) (case_statement "case DEBUG_KIND_SET:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          name = (debug_name *)((type->u).karray)->range_type;\n          UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->set_type;\n          break;" case identifier : (expression_statement "bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);" (assignment_expression "bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0)" identifier = (call_expression "debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0)" identifier (argument_list "(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0)" ( identifier , identifier , identifier , (field_expression "((type->u).kfunction)->return_type" (parenthesized_expression "((type->u).kfunction)" ( (field_expression "(type->u).kfunction" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) , (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (bVar11 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "name = (debug_name *)((type->u).karray)->range_type;" (assignment_expression "name = (debug_name *)((type->u).karray)->range_type" identifier = (cast_expression "(debug_name *)((type->u).karray)->range_type" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((type->u).karray)->range_type" (parenthesized_expression "((type->u).karray)" ( (field_expression "(type->u).karray" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier))) ;) (expression_statement "UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->set_type;" (assignment_expression "UNRECOVERED_JUMPTABLE = (_func_bfd_boolean_void_ptr_char_ptr *)fns->set_type" identifier = (cast_expression "(_func_bfd_boolean_void_ptr_char_ptr *)fns->set_type" ( (type_descriptor "_func_bfd_boolean_void_ptr_char_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "fns->set_type" identifier -> field_identifier))) ;) (break_statement "break;" break ;)) (case_statement "case DEBUG_KIND_OFFSET:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->offset_type;\n          goto LAB_0001d69f;" case identifier : (expression_statement "bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);" (assignment_expression "bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0)" identifier = (call_expression "debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0)" identifier (argument_list "(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0)" ( identifier , identifier , identifier , (field_expression "((type->u).kfunction)->return_type" (parenthesized_expression "((type->u).kfunction)" ( (field_expression "(type->u).kfunction" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) , (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (bVar11 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0);" (assignment_expression "bVar11 = debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0)" identifier = (call_expression "debug_write_type(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0)" identifier (argument_list "(info,fns,fhandle,((type->u).karray)->range_type,\n                                    (debug_name *)0x0)" ( identifier , identifier , identifier , (field_expression "((type->u).karray)->range_type" (parenthesized_expression "((type->u).karray)" ( (field_expression "(type->u).karray" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) , (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (bVar11 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "UNRECOVERED_JUMPTABLE_00 = fns->offset_type;" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = fns->offset_type" identifier = (field_expression "fns->offset_type" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0001d69f;" goto statement_identifier ;)) (case_statement "case DEBUG_KIND_METHOD:\n          bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          pdVar14 = (type->u).kmethod;\n          if (pdVar14->arg_types == (debug_type_conflict *)0x0) {\n            iVar17 = -1;\n          }\n          else {\n            iVar17 = 0;\n            pdVar10 = *pdVar14->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar14 = (type->u).kmethod;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar14->arg_types[iVar17];\n            }\n          }\n          pdVar10 = pdVar14->domain_type;\n          if (pdVar10 != (debug_type_s *)0x0) {\n            bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar11 == 0) {\n              return 0;\n            }\n            pdVar14 = (type->u).kmethod;\n            pdVar10 = pdVar14->domain_type;\n          }\n          bVar11 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar17,\n                                       pdVar14->varargs);\n          return bVar11;" case identifier : (expression_statement "bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0);" (assignment_expression "bVar11 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0)" identifier = (call_expression "debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0)" identifier (argument_list "(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                    (debug_name *)0x0)" ( identifier , identifier , identifier , (field_expression "((type->u).kfunction)->return_type" (parenthesized_expression "((type->u).kfunction)" ( (field_expression "(type->u).kfunction" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) , (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (bVar11 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pdVar14 = (type->u).kmethod;" (assignment_expression "pdVar14 = (type->u).kmethod" identifier = (field_expression "(type->u).kmethod" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (pdVar14->arg_types == (debug_type_conflict *)0x0) {\n            iVar17 = -1;\n          }\n          else {\n            iVar17 = 0;\n            pdVar10 = *pdVar14->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar14 = (type->u).kmethod;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar14->arg_types[iVar17];\n            }\n          }" if (parenthesized_expression "(pdVar14->arg_types == (debug_type_conflict *)0x0)" ( (binary_expression "pdVar14->arg_types == (debug_type_conflict *)0x0" (field_expression "pdVar14->arg_types" identifier -> field_identifier) == (cast_expression "(debug_type_conflict *)0x0" ( (type_descriptor "debug_type_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar17 = -1;\n          }" { (expression_statement "iVar17 = -1;" (assignment_expression "iVar17 = -1" identifier = number_literal) ;) }) (else_clause "else {\n            iVar17 = 0;\n            pdVar10 = *pdVar14->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar14 = (type->u).kmethod;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar14->arg_types[iVar17];\n            }\n          }" else (compound_statement "{\n            iVar17 = 0;\n            pdVar10 = *pdVar14->arg_types;\n            while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar14 = (type->u).kmethod;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar14->arg_types[iVar17];\n            }\n          }" { (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "pdVar10 = *pdVar14->arg_types;" (assignment_expression "pdVar10 = *pdVar14->arg_types" identifier = (pointer_expression "*pdVar14->arg_types" * (field_expression "pdVar14->arg_types" identifier -> field_identifier))) ;) (while_statement "while (pdVar10 != (debug_type_s *)0x0) {\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar14 = (type->u).kmethod;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar14->arg_types[iVar17];\n            }" while (parenthesized_expression "(pdVar10 != (debug_type_s *)0x0)" ( (binary_expression "pdVar10 != (debug_type_s *)0x0" identifier != (cast_expression "(debug_type_s *)0x0" ( (type_descriptor "debug_type_s *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar11 == 0) {\n                return 0;\n              }\n              pdVar14 = (type->u).kmethod;\n              iVar17 = iVar17 + 1;\n              pdVar10 = pdVar14->arg_types[iVar17];\n            }" { (expression_statement "bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);" (assignment_expression "bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0)" identifier = (call_expression "debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0)" identifier (argument_list "(info,fns,fhandle,pdVar10,(debug_name *)0x0)" ( identifier , identifier , identifier , identifier , (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (bVar11 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pdVar14 = (type->u).kmethod;" (assignment_expression "pdVar14 = (type->u).kmethod" identifier = (field_expression "(type->u).kmethod" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) (expression_statement "pdVar10 = pdVar14->arg_types[iVar17];" (assignment_expression "pdVar10 = pdVar14->arg_types[iVar17]" identifier = (subscript_expression "pdVar14->arg_types[iVar17]" (field_expression "pdVar14->arg_types" identifier -> field_identifier) [ identifier ])) ;) })) }))) (expression_statement "pdVar10 = pdVar14->domain_type;" (assignment_expression "pdVar10 = pdVar14->domain_type" identifier = (field_expression "pdVar14->domain_type" identifier -> field_identifier)) ;) (if_statement "if (pdVar10 != (debug_type_s *)0x0) {\n            bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar11 == 0) {\n              return 0;\n            }\n            pdVar14 = (type->u).kmethod;\n            pdVar10 = pdVar14->domain_type;\n          }" if (parenthesized_expression "(pdVar10 != (debug_type_s *)0x0)" ( (binary_expression "pdVar10 != (debug_type_s *)0x0" identifier != (cast_expression "(debug_type_s *)0x0" ( (type_descriptor "debug_type_s *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar11 == 0) {\n              return 0;\n            }\n            pdVar14 = (type->u).kmethod;\n            pdVar10 = pdVar14->domain_type;\n          }" { (expression_statement "bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);" (assignment_expression "bVar11 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0)" identifier = (call_expression "debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0)" identifier (argument_list "(info,fns,fhandle,pdVar10,(debug_name *)0x0)" ( identifier , identifier , identifier , identifier , (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (bVar11 == 0) {\n              return 0;\n            }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pdVar14 = (type->u).kmethod;" (assignment_expression "pdVar14 = (type->u).kmethod" identifier = (field_expression "(type->u).kmethod" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pdVar10 = pdVar14->domain_type;" (assignment_expression "pdVar10 = pdVar14->domain_type" identifier = (field_expression "pdVar14->domain_type" identifier -> field_identifier)) ;) })) (expression_statement "bVar11 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar17,\n                                       pdVar14->varargs);" (assignment_expression "bVar11 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar17,\n                                       pdVar14->varargs)" identifier = (call_expression "(*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar17,\n                                       pdVar14->varargs)" (parenthesized_expression "(*fns->method_type)" ( (pointer_expression "*fns->method_type" * (field_expression "fns->method_type" identifier -> field_identifier)) )) (argument_list "(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar17,\n                                       pdVar14->varargs)" ( identifier , (call_expression "(uint)(pdVar10 != (debug_type_s *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pdVar10 != (debug_type_s *)0x0)" ( (binary_expression "pdVar10 != (debug_type_s *)0x0" identifier != (cast_expression "(debug_type_s *)0x0" ( (type_descriptor "debug_type_s *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) , identifier , (field_expression "pdVar14->varargs" identifier -> field_identifier) )))) ;) (return_statement "return bVar11;" return identifier ;)) (case_statement "case DEBUG_KIND_CONST:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->const_type;\n          goto LAB_0001d69f;" case identifier : (expression_statement "bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);" (assignment_expression "bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0)" identifier = (call_expression "debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0)" identifier (argument_list "(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0)" ( identifier , identifier , identifier , (field_expression "(type->u).kpointer" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier) , (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (bVar11 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "UNRECOVERED_JUMPTABLE_00 = fns->const_type;" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = fns->const_type" identifier = (field_expression "fns->const_type" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0001d69f;" goto statement_identifier ;)) (case_statement "case DEBUG_KIND_VOLATILE:\n          bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar11 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = fns->volatile_type;\n          goto LAB_0001d69f;" case identifier : (expression_statement "bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);" (assignment_expression "bVar11 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0)" identifier = (call_expression "debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0)" identifier (argument_list "(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0)" ( identifier , identifier , identifier , (field_expression "(type->u).kpointer" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier) , (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (bVar11 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "UNRECOVERED_JUMPTABLE_00 = fns->volatile_type;" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = fns->volatile_type" identifier = (field_expression "fns->volatile_type" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0001d69f;" goto statement_identifier ;)) (case_statement "case DEBUG_KIND_NAMED:\n          goto _L264;" case identifier : (goto_statement "goto _L264;" goto statement_identifier ;)) (case_statement "case DEBUG_KIND_TAGGED:\n_L268:\n          local_2c = (type->u).karray;\n          name = (debug_name *)local_2c->element_type;\n          goto LAB_0001d36b;" case identifier : (labeled_statement "_L268:\n          local_2c = (type->u).karray;" statement_identifier : (expression_statement "local_2c = (type->u).karray;" (assignment_expression "local_2c = (type->u).karray" identifier = (field_expression "(type->u).karray" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier)) ;)) (expression_statement "name = (debug_name *)local_2c->element_type;" (assignment_expression "name = (debug_name *)local_2c->element_type" identifier = (cast_expression "(debug_name *)local_2c->element_type" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_2c->element_type" identifier -> field_identifier))) ;) (goto_statement "goto LAB_0001d36b;" goto statement_identifier ;)) (case_statement "default:\n                    /* WARNING: Subroutine does not return */\n          abort();" default : comment (expression_statement "abort();" (call_expression "abort()" identifier (argument_list "()" ( ))) ;)) }))) (labeled_statement "LAB_0001d9c6:\n                    /* WARNING: Could not recover jumptable at 0x0001d9cd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        bVar11 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)name);" statement_identifier : comment comment (expression_statement "bVar11 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)name);" (assignment_expression "bVar11 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)name)" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE)(fhandle,(char *)name)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(fhandle,(char *)name)" ( identifier , (cast_expression "(char *)name" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) (return_statement "return bVar11;" return identifier ;) }))) (expression_statement "name->mark = info->mark;" (assignment_expression "name->mark = info->mark" (field_expression "name->mark" identifier -> field_identifier) = (field_expression "info->mark" identifier -> field_identifier)) ;) (if_statement "if (dVar9 != DEBUG_KIND_NAMED) {\n        if (dVar9 != DEBUG_KIND_TAGGED) {\n          if (name->kind != DEBUG_OBJECT_TAG) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = name->name;\n          goto LAB_0001d329;\n        }\n        goto _L268;\n      }" if (parenthesized_expression "(dVar9 != DEBUG_KIND_NAMED)" ( (binary_expression "dVar9 != DEBUG_KIND_NAMED" identifier != identifier) )) (compound_statement "{\n        if (dVar9 != DEBUG_KIND_TAGGED) {\n          if (name->kind != DEBUG_OBJECT_TAG) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = name->name;\n          goto LAB_0001d329;\n        }\n        goto _L268;\n      }" { (if_statement "if (dVar9 != DEBUG_KIND_TAGGED) {\n          if (name->kind != DEBUG_OBJECT_TAG) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = name->name;\n          goto LAB_0001d329;\n        }" if (parenthesized_expression "(dVar9 != DEBUG_KIND_TAGGED)" ( (binary_expression "dVar9 != DEBUG_KIND_TAGGED" identifier != identifier) )) (compound_statement "{\n          if (name->kind != DEBUG_OBJECT_TAG) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = name->name;\n          goto LAB_0001d329;\n        }" { (if_statement "if (name->kind != DEBUG_OBJECT_TAG) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }" if (parenthesized_expression "(name->kind != DEBUG_OBJECT_TAG)" ( (binary_expression "name->kind != DEBUG_OBJECT_TAG" (field_expression "name->kind" identifier -> field_identifier) != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }" { comment (expression_statement "__assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");" (call_expression "__assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type")" identifier (argument_list "("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type")" ( (string_literal ""name->kind == DEBUG_OBJECT_TAG"" " string_content ") , (string_literal ""../../binutils/debug.c"" " string_content ") , number_literal , (string_literal ""debug_write_type"" " string_content ") ))) ;) })) (expression_statement "local_30 = name->name;" (assignment_expression "local_30 = name->name" identifier = (field_expression "name->name" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0001d329;" goto statement_identifier ;) })) (goto_statement "goto _L268;" goto statement_identifier ;) })) (labeled_statement "_L264:\n      name = (debug_name *)0x0;" statement_identifier : (expression_statement "name = (debug_name *)0x0;" (assignment_expression "name = (debug_name *)0x0" identifier = (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) })) (expression_statement "local_2c = (debug_array_type *)(type->u).knamed;" (assignment_expression "local_2c = (debug_array_type *)(type->u).knamed" identifier = (cast_expression "(debug_array_type *)(type->u).knamed" ( (type_descriptor "debug_array_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(type->u).knamed" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "pdVar2 = (debug_name *)local_2c->element_type;" (assignment_expression "pdVar2 = (debug_name *)local_2c->element_type" identifier = (cast_expression "(debug_name *)local_2c->element_type" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_2c->element_type" identifier -> field_identifier))) ;) (if_statement "if (pdVar2->mark == info->mark) {\n      if (dVar9 == DEBUG_KIND_NAMED) {\n        name = (debug_name *)pdVar2->name;\n        UNRECOVERED_JUMPTABLE = fns->typedef_type;\n        goto LAB_0001d9c6;\n      }\nLAB_0001db7f:\n      pdVar10 = debug_get_real_type(info,type,(debug_type_real_list *)0x0);\n      if (pdVar10 != (debug_type_s *)0x0) {\n        dVar9 = pdVar10->kind;\n        pcVar21 = ((type->u).knamed)->name->name;\n        if ((dVar9 - DEBUG_KIND_STRUCT < 4) && ((pdVar10->u).kclass != (debug_class_type *)0x0)) {\n          uVar13 = ((pdVar10->u).kclass)->id;\n          if (uVar13 <= info->base_id) {\n            bVar11 = debug_set_class_id(info,pcVar21,pdVar10);\n            if (bVar11 == 0) {\n              return 0;\n            }\n            uVar13 = ((pdVar10->u).kclass)->id;\n            dVar9 = pdVar10->kind;\n            pcVar21 = ((type->u).knamed)->name->name;\n          }\n        }\n        else {\n          uVar13 = 0;\n        }\n        bVar11 = (*fns->tag_type)(fhandle,pcVar21,uVar13,dVar9);\n        return bVar11;\n      }\n      goto LAB_0001d6c3;\n    }" if (parenthesized_expression "(pdVar2->mark == info->mark)" ( (binary_expression "pdVar2->mark == info->mark" (field_expression "pdVar2->mark" identifier -> field_identifier) == (field_expression "info->mark" identifier -> field_identifier)) )) (compound_statement "{\n      if (dVar9 == DEBUG_KIND_NAMED) {\n        name = (debug_name *)pdVar2->name;\n        UNRECOVERED_JUMPTABLE = fns->typedef_type;\n        goto LAB_0001d9c6;\n      }\nLAB_0001db7f:\n      pdVar10 = debug_get_real_type(info,type,(debug_type_real_list *)0x0);\n      if (pdVar10 != (debug_type_s *)0x0) {\n        dVar9 = pdVar10->kind;\n        pcVar21 = ((type->u).knamed)->name->name;\n        if ((dVar9 - DEBUG_KIND_STRUCT < 4) && ((pdVar10->u).kclass != (debug_class_type *)0x0)) {\n          uVar13 = ((pdVar10->u).kclass)->id;\n          if (uVar13 <= info->base_id) {\n            bVar11 = debug_set_class_id(info,pcVar21,pdVar10);\n            if (bVar11 == 0) {\n              return 0;\n            }\n            uVar13 = ((pdVar10->u).kclass)->id;\n            dVar9 = pdVar10->kind;\n            pcVar21 = ((type->u).knamed)->name->name;\n          }\n        }\n        else {\n          uVar13 = 0;\n        }\n        bVar11 = (*fns->tag_type)(fhandle,pcVar21,uVar13,dVar9);\n        return bVar11;\n      }\n      goto LAB_0001d6c3;\n    }" { (if_statement "if (dVar9 == DEBUG_KIND_NAMED) {\n        name = (debug_name *)pdVar2->name;\n        UNRECOVERED_JUMPTABLE = fns->typedef_type;\n        goto LAB_0001d9c6;\n      }" if (parenthesized_expression "(dVar9 == DEBUG_KIND_NAMED)" ( (binary_expression "dVar9 == DEBUG_KIND_NAMED" identifier == identifier) )) (compound_statement "{\n        name = (debug_name *)pdVar2->name;\n        UNRECOVERED_JUMPTABLE = fns->typedef_type;\n        goto LAB_0001d9c6;\n      }" { (expression_statement "name = (debug_name *)pdVar2->name;" (assignment_expression "name = (debug_name *)pdVar2->name" identifier = (cast_expression "(debug_name *)pdVar2->name" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pdVar2->name" identifier -> field_identifier))) ;) (expression_statement "UNRECOVERED_JUMPTABLE = fns->typedef_type;" (assignment_expression "UNRECOVERED_JUMPTABLE = fns->typedef_type" identifier = (field_expression "fns->typedef_type" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0001d9c6;" goto statement_identifier ;) })) (labeled_statement "LAB_0001db7f:\n      pdVar10 = debug_get_real_type(info,type,(debug_type_real_list *)0x0);" statement_identifier : (expression_statement "pdVar10 = debug_get_real_type(info,type,(debug_type_real_list *)0x0);" (assignment_expression "pdVar10 = debug_get_real_type(info,type,(debug_type_real_list *)0x0)" identifier = (call_expression "debug_get_real_type(info,type,(debug_type_real_list *)0x0)" identifier (argument_list "(info,type,(debug_type_real_list *)0x0)" ( identifier , identifier , (cast_expression "(debug_type_real_list *)0x0" ( (type_descriptor "debug_type_real_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;)) (if_statement "if (pdVar10 != (debug_type_s *)0x0) {\n        dVar9 = pdVar10->kind;\n        pcVar21 = ((type->u).knamed)->name->name;\n        if ((dVar9 - DEBUG_KIND_STRUCT < 4) && ((pdVar10->u).kclass != (debug_class_type *)0x0)) {\n          uVar13 = ((pdVar10->u).kclass)->id;\n          if (uVar13 <= info->base_id) {\n            bVar11 = debug_set_class_id(info,pcVar21,pdVar10);\n            if (bVar11 == 0) {\n              return 0;\n            }\n            uVar13 = ((pdVar10->u).kclass)->id;\n            dVar9 = pdVar10->kind;\n            pcVar21 = ((type->u).knamed)->name->name;\n          }\n        }\n        else {\n          uVar13 = 0;\n        }\n        bVar11 = (*fns->tag_type)(fhandle,pcVar21,uVar13,dVar9);\n        return bVar11;\n      }" if (parenthesized_expression "(pdVar10 != (debug_type_s *)0x0)" ( (binary_expression "pdVar10 != (debug_type_s *)0x0" identifier != (cast_expression "(debug_type_s *)0x0" ( (type_descriptor "debug_type_s *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        dVar9 = pdVar10->kind;\n        pcVar21 = ((type->u).knamed)->name->name;\n        if ((dVar9 - DEBUG_KIND_STRUCT < 4) && ((pdVar10->u).kclass != (debug_class_type *)0x0)) {\n          uVar13 = ((pdVar10->u).kclass)->id;\n          if (uVar13 <= info->base_id) {\n            bVar11 = debug_set_class_id(info,pcVar21,pdVar10);\n            if (bVar11 == 0) {\n              return 0;\n            }\n            uVar13 = ((pdVar10->u).kclass)->id;\n            dVar9 = pdVar10->kind;\n            pcVar21 = ((type->u).knamed)->name->name;\n          }\n        }\n        else {\n          uVar13 = 0;\n        }\n        bVar11 = (*fns->tag_type)(fhandle,pcVar21,uVar13,dVar9);\n        return bVar11;\n      }" { (expression_statement "dVar9 = pdVar10->kind;" (assignment_expression "dVar9 = pdVar10->kind" identifier = (field_expression "pdVar10->kind" identifier -> field_identifier)) ;) (expression_statement "pcVar21 = ((type->u).knamed)->name->name;" (assignment_expression "pcVar21 = ((type->u).knamed)->name->name" identifier = (field_expression "((type->u).knamed)->name->name" (field_expression "((type->u).knamed)->name" (parenthesized_expression "((type->u).knamed)" ( (field_expression "(type->u).knamed" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) -> field_identifier)) ;) (if_statement "if ((dVar9 - DEBUG_KIND_STRUCT < 4) && ((pdVar10->u).kclass != (debug_class_type *)0x0)) {\n          uVar13 = ((pdVar10->u).kclass)->id;\n          if (uVar13 <= info->base_id) {\n            bVar11 = debug_set_class_id(info,pcVar21,pdVar10);\n            if (bVar11 == 0) {\n              return 0;\n            }\n            uVar13 = ((pdVar10->u).kclass)->id;\n            dVar9 = pdVar10->kind;\n            pcVar21 = ((type->u).knamed)->name->name;\n          }\n        }\n        else {\n          uVar13 = 0;\n        }" if (parenthesized_expression "((dVar9 - DEBUG_KIND_STRUCT < 4) && ((pdVar10->u).kclass != (debug_class_type *)0x0))" ( (binary_expression "(dVar9 - DEBUG_KIND_STRUCT < 4) && ((pdVar10->u).kclass != (debug_class_type *)0x0)" (parenthesized_expression "(dVar9 - DEBUG_KIND_STRUCT < 4)" ( (binary_expression "dVar9 - DEBUG_KIND_STRUCT < 4" (binary_expression "dVar9 - DEBUG_KIND_STRUCT" identifier - identifier) < number_literal) )) && (parenthesized_expression "((pdVar10->u).kclass != (debug_class_type *)0x0)" ( (binary_expression "(pdVar10->u).kclass != (debug_class_type *)0x0" (field_expression "(pdVar10->u).kclass" (parenthesized_expression "(pdVar10->u)" ( (field_expression "pdVar10->u" identifier -> field_identifier) )) . field_identifier) != (cast_expression "(debug_class_type *)0x0" ( (type_descriptor "debug_class_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n          uVar13 = ((pdVar10->u).kclass)->id;\n          if (uVar13 <= info->base_id) {\n            bVar11 = debug_set_class_id(info,pcVar21,pdVar10);\n            if (bVar11 == 0) {\n              return 0;\n            }\n            uVar13 = ((pdVar10->u).kclass)->id;\n            dVar9 = pdVar10->kind;\n            pcVar21 = ((type->u).knamed)->name->name;\n          }\n        }" { (expression_statement "uVar13 = ((pdVar10->u).kclass)->id;" (assignment_expression "uVar13 = ((pdVar10->u).kclass)->id" identifier = (field_expression "((pdVar10->u).kclass)->id" (parenthesized_expression "((pdVar10->u).kclass)" ( (field_expression "(pdVar10->u).kclass" (parenthesized_expression "(pdVar10->u)" ( (field_expression "pdVar10->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ;) (if_statement "if (uVar13 <= info->base_id) {\n            bVar11 = debug_set_class_id(info,pcVar21,pdVar10);\n            if (bVar11 == 0) {\n              return 0;\n            }\n            uVar13 = ((pdVar10->u).kclass)->id;\n            dVar9 = pdVar10->kind;\n            pcVar21 = ((type->u).knamed)->name->name;\n          }" if (parenthesized_expression "(uVar13 <= info->base_id)" ( (binary_expression "uVar13 <= info->base_id" identifier <= (field_expression "info->base_id" identifier -> field_identifier)) )) (compound_statement "{\n            bVar11 = debug_set_class_id(info,pcVar21,pdVar10);\n            if (bVar11 == 0) {\n              return 0;\n            }\n            uVar13 = ((pdVar10->u).kclass)->id;\n            dVar9 = pdVar10->kind;\n            pcVar21 = ((type->u).knamed)->name->name;\n          }" { (expression_statement "bVar11 = debug_set_class_id(info,pcVar21,pdVar10);" (assignment_expression "bVar11 = debug_set_class_id(info,pcVar21,pdVar10)" identifier = (call_expression "debug_set_class_id(info,pcVar21,pdVar10)" identifier (argument_list "(info,pcVar21,pdVar10)" ( identifier , identifier , identifier )))) ;) (if_statement "if (bVar11 == 0) {\n              return 0;\n            }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar13 = ((pdVar10->u).kclass)->id;" (assignment_expression "uVar13 = ((pdVar10->u).kclass)->id" identifier = (field_expression "((pdVar10->u).kclass)->id" (parenthesized_expression "((pdVar10->u).kclass)" ( (field_expression "(pdVar10->u).kclass" (parenthesized_expression "(pdVar10->u)" ( (field_expression "pdVar10->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ;) (expression_statement "dVar9 = pdVar10->kind;" (assignment_expression "dVar9 = pdVar10->kind" identifier = (field_expression "pdVar10->kind" identifier -> field_identifier)) ;) (expression_statement "pcVar21 = ((type->u).knamed)->name->name;" (assignment_expression "pcVar21 = ((type->u).knamed)->name->name" identifier = (field_expression "((type->u).knamed)->name->name" (field_expression "((type->u).knamed)->name" (parenthesized_expression "((type->u).knamed)" ( (field_expression "(type->u).knamed" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) -> field_identifier)) ;) })) }) (else_clause "else {\n          uVar13 = 0;\n        }" else (compound_statement "{\n          uVar13 = 0;\n        }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) }))) (expression_statement "bVar11 = (*fns->tag_type)(fhandle,pcVar21,uVar13,dVar9);" (assignment_expression "bVar11 = (*fns->tag_type)(fhandle,pcVar21,uVar13,dVar9)" identifier = (call_expression "(*fns->tag_type)(fhandle,pcVar21,uVar13,dVar9)" (parenthesized_expression "(*fns->tag_type)" ( (pointer_expression "*fns->tag_type" * (field_expression "fns->tag_type" identifier -> field_identifier)) )) (argument_list "(fhandle,pcVar21,uVar13,dVar9)" ( identifier , identifier , identifier , identifier )))) ;) (return_statement "return bVar11;" return identifier ;) })) (goto_statement "goto LAB_0001d6c3;" goto statement_identifier ;) })) (if_statement "if (dVar9 != DEBUG_KIND_TAGGED) goto LAB_0001d300;" if (parenthesized_expression "(dVar9 != DEBUG_KIND_TAGGED)" ( (binary_expression "dVar9 != DEBUG_KIND_TAGGED" identifier != identifier) )) (goto_statement "goto LAB_0001d300;" goto statement_identifier ;)) (if_statement "if (pdVar2 != name) goto LAB_0001db7f;" if (parenthesized_expression "(pdVar2 != name)" ( (binary_expression "pdVar2 != name" identifier != identifier) )) (goto_statement "goto LAB_0001db7f;" goto statement_identifier ;)) (expression_statement "name->mark = info->mark;" (assignment_expression "name->mark = info->mark" (field_expression "name->mark" identifier -> field_identifier) = (field_expression "info->mark" identifier -> field_identifier)) ;) (labeled_statement "LAB_0001d36b:\n    type = local_2c->range_type;" statement_identifier : (expression_statement "type = local_2c->range_type;" (assignment_expression "type = local_2c->range_type" identifier = (field_expression "local_2c->range_type" identifier -> field_identifier)) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) (labeled_statement "_L288:\n  type = *((type->u).kindirect)->slot;" statement_identifier : (expression_statement "type = *((type->u).kindirect)->slot;" (assignment_expression "type = *((type->u).kindirect)->slot" identifier = (pointer_expression "*((type->u).kindirect)->slot" * (field_expression "((type->u).kindirect)->slot" (parenthesized_expression "((type->u).kindirect)" ( (field_expression "(type->u).kindirect" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier))) ;)) (if_statement "if (type == (debug_type_conflict)0x0) {\nLAB_0001d6c3:\n    UNRECOVERED_JUMPTABLE_00 = fns->empty_type;\nLAB_0001d69f:\n                    /* WARNING: Could not recover jumptable at 0x0001d6a6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    bVar11 = (*UNRECOVERED_JUMPTABLE_00)(fhandle);\n    return bVar11;\n  }" if (parenthesized_expression "(type == (debug_type_conflict)0x0)" ( (binary_expression "type == (debug_type_conflict)0x0" identifier == (cast_expression "(debug_type_conflict)0x0" ( (type_descriptor "debug_type_conflict" type_identifier) ) number_literal)) )) (compound_statement "{\nLAB_0001d6c3:\n    UNRECOVERED_JUMPTABLE_00 = fns->empty_type;\nLAB_0001d69f:\n                    /* WARNING: Could not recover jumptable at 0x0001d6a6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    bVar11 = (*UNRECOVERED_JUMPTABLE_00)(fhandle);\n    return bVar11;\n  }" { (labeled_statement "LAB_0001d6c3:\n    UNRECOVERED_JUMPTABLE_00 = fns->empty_type;" statement_identifier : (expression_statement "UNRECOVERED_JUMPTABLE_00 = fns->empty_type;" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = fns->empty_type" identifier = (field_expression "fns->empty_type" identifier -> field_identifier)) ;)) (labeled_statement "LAB_0001d69f:\n                    /* WARNING: Could not recover jumptable at 0x0001d6a6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    bVar11 = (*UNRECOVERED_JUMPTABLE_00)(fhandle);" statement_identifier : comment comment (expression_statement "bVar11 = (*UNRECOVERED_JUMPTABLE_00)(fhandle);" (assignment_expression "bVar11 = (*UNRECOVERED_JUMPTABLE_00)(fhandle)" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE_00)(fhandle)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE_00)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE_00" * identifier) )) (argument_list "(fhandle)" ( identifier )))) ;)) (return_statement "return bVar11;" return identifier ;) })) (goto_statement "goto LAB_0001d2f6;" goto statement_identifier ;) })))
(translation_unit "undefined4 __regparm3\nFUN_0001d2d0(int param_1,int param_2,undefined4 param_3,int *param_4,int param_5)\n\n{\n  int iVar1;\n  code *UNRECOVERED_JUMPTABLE_00;\n  int *piVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  bool bVar8;\n  char *__function;\n  int *local_34;\n  undefined4 local_30;\n  int *local_2c;\n  undefined4 *puStack_28;\n  int iStack_24;\n  \nLAB_0001d2f6:\n  do {\n    for (; iVar3 = *param_4, 1 < iVar3 - 0x16U; param_4 = *(int **)(param_4[3] + 4)) {\nLAB_0001d300:\n      if (param_5 == 0) {\n        local_30 = 0;\nLAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    \n          abort();\n        }\nLAB_0001d9c6:\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 8) = *(undefined4 *)(param_1 + 0x18);\n      if (iVar3 != 0x16) {\n        if (iVar3 != 0x17) {\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }\n        goto LAB_0001daa0;\n      }\nLAB_0001d388:\n      param_5 = 0;\n    }\n    local_2c = (int *)param_4[3];\n    if (*(int *)(*local_2c + 8) == *(int *)(param_1 + 0x18)) {\n      if (iVar3 == 0x16) {\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n        goto LAB_0001d9c6;\n      }\nLAB_0001db7f:\n      piVar2 = (int *)FUN_0001c820();\n      if (piVar2 != (int *)0x0) {\n        iVar3 = *piVar2;\n        uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n        if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }\n        else {\n          uVar5 = 0;\n        }\n        uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);\n        return uVar4;\n      }\n      goto LAB_0001d6c3;\n    }\n    if (iVar3 != 0x17) goto LAB_0001d300;\n    if (*local_2c != param_5) goto LAB_0001db7f;\n    *(int *)(param_5 + 8) = *(int *)(param_1 + 0x18);\nLAB_0001d36b:\n    param_4 = (int *)local_2c[1];\n  } while( true );\ncode_r0x0001d6b0:\n  param_4 = (int *)**(undefined4 **)param_4[3];\n  if (param_4 == (int *)0x0) {\nLAB_0001d6c3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 8);\nLAB_0001d69f:\n                    \n                    \n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n    return uVar4;\n  }\n  goto LAB_0001d2f6;\n}\n\n" (function_definition "undefined4 __regparm3\nFUN_0001d2d0(int param_1,int param_2,undefined4 param_3,int *param_4,int param_5)\n\n{\n  int iVar1;\n  code *UNRECOVERED_JUMPTABLE_00;\n  int *piVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  bool bVar8;\n  char *__function;\n  int *local_34;\n  undefined4 local_30;\n  int *local_2c;\n  undefined4 *puStack_28;\n  int iStack_24;\n  \nLAB_0001d2f6:\n  do {\n    for (; iVar3 = *param_4, 1 < iVar3 - 0x16U; param_4 = *(int **)(param_4[3] + 4)) {\nLAB_0001d300:\n      if (param_5 == 0) {\n        local_30 = 0;\nLAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    \n          abort();\n        }\nLAB_0001d9c6:\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 8) = *(undefined4 *)(param_1 + 0x18);\n      if (iVar3 != 0x16) {\n        if (iVar3 != 0x17) {\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }\n        goto LAB_0001daa0;\n      }\nLAB_0001d388:\n      param_5 = 0;\n    }\n    local_2c = (int *)param_4[3];\n    if (*(int *)(*local_2c + 8) == *(int *)(param_1 + 0x18)) {\n      if (iVar3 == 0x16) {\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n        goto LAB_0001d9c6;\n      }\nLAB_0001db7f:\n      piVar2 = (int *)FUN_0001c820();\n      if (piVar2 != (int *)0x0) {\n        iVar3 = *piVar2;\n        uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n        if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }\n        else {\n          uVar5 = 0;\n        }\n        uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);\n        return uVar4;\n      }\n      goto LAB_0001d6c3;\n    }\n    if (iVar3 != 0x17) goto LAB_0001d300;\n    if (*local_2c != param_5) goto LAB_0001db7f;\n    *(int *)(param_5 + 8) = *(int *)(param_1 + 0x18);\nLAB_0001d36b:\n    param_4 = (int *)local_2c[1];\n  } while( true );\ncode_r0x0001d6b0:\n  param_4 = (int *)**(undefined4 **)param_4[3];\n  if (param_4 == (int *)0x0) {\nLAB_0001d6c3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 8);\nLAB_0001d69f:\n                    \n                    \n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n    return uVar4;\n  }\n  goto LAB_0001d2f6;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_0001d2d0(int param_1,int param_2,undefined4 param_3,int *param_4,int param_5)" identifier (parameter_list "(int param_1,int param_2,undefined4 param_3,int *param_4,int param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int param_5" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  code *UNRECOVERED_JUMPTABLE_00;\n  int *piVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  bool bVar8;\n  char *__function;\n  int *local_34;\n  undefined4 local_30;\n  int *local_2c;\n  undefined4 *puStack_28;\n  int iStack_24;\n  \nLAB_0001d2f6:\n  do {\n    for (; iVar3 = *param_4, 1 < iVar3 - 0x16U; param_4 = *(int **)(param_4[3] + 4)) {\nLAB_0001d300:\n      if (param_5 == 0) {\n        local_30 = 0;\nLAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    \n          abort();\n        }\nLAB_0001d9c6:\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 8) = *(undefined4 *)(param_1 + 0x18);\n      if (iVar3 != 0x16) {\n        if (iVar3 != 0x17) {\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }\n        goto LAB_0001daa0;\n      }\nLAB_0001d388:\n      param_5 = 0;\n    }\n    local_2c = (int *)param_4[3];\n    if (*(int *)(*local_2c + 8) == *(int *)(param_1 + 0x18)) {\n      if (iVar3 == 0x16) {\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n        goto LAB_0001d9c6;\n      }\nLAB_0001db7f:\n      piVar2 = (int *)FUN_0001c820();\n      if (piVar2 != (int *)0x0) {\n        iVar3 = *piVar2;\n        uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n        if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }\n        else {\n          uVar5 = 0;\n        }\n        uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);\n        return uVar4;\n      }\n      goto LAB_0001d6c3;\n    }\n    if (iVar3 != 0x17) goto LAB_0001d300;\n    if (*local_2c != param_5) goto LAB_0001db7f;\n    *(int *)(param_5 + 8) = *(int *)(param_1 + 0x18);\nLAB_0001d36b:\n    param_4 = (int *)local_2c[1];\n  } while( true );\ncode_r0x0001d6b0:\n  param_4 = (int *)**(undefined4 **)param_4[3];\n  if (param_4 == (int *)0x0) {\nLAB_0001d6c3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 8);\nLAB_0001d69f:\n                    \n                    \n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n    return uVar4;\n  }\n  goto LAB_0001d2f6;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "code *UNRECOVERED_JUMPTABLE_00;" type_identifier (pointer_declarator "*UNRECOVERED_JUMPTABLE_00" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "bool bVar8;" primitive_type identifier ;) (declaration "char *__function;" primitive_type (pointer_declarator "*__function" * identifier) ;) (declaration "int *local_34;" primitive_type (pointer_declarator "*local_34" * identifier) ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "int *local_2c;" primitive_type (pointer_declarator "*local_2c" * identifier) ;) (declaration "undefined4 *puStack_28;" type_identifier (pointer_declarator "*puStack_28" * identifier) ;) (declaration "int iStack_24;" primitive_type identifier ;) (labeled_statement "LAB_0001d2f6:\n  do {\n    for (; iVar3 = *param_4, 1 < iVar3 - 0x16U; param_4 = *(int **)(param_4[3] + 4)) {\nLAB_0001d300:\n      if (param_5 == 0) {\n        local_30 = 0;\nLAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    \n          abort();\n        }\nLAB_0001d9c6:\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 8) = *(undefined4 *)(param_1 + 0x18);\n      if (iVar3 != 0x16) {\n        if (iVar3 != 0x17) {\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }\n        goto LAB_0001daa0;\n      }\nLAB_0001d388:\n      param_5 = 0;\n    }\n    local_2c = (int *)param_4[3];\n    if (*(int *)(*local_2c + 8) == *(int *)(param_1 + 0x18)) {\n      if (iVar3 == 0x16) {\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n        goto LAB_0001d9c6;\n      }\nLAB_0001db7f:\n      piVar2 = (int *)FUN_0001c820();\n      if (piVar2 != (int *)0x0) {\n        iVar3 = *piVar2;\n        uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n        if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }\n        else {\n          uVar5 = 0;\n        }\n        uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);\n        return uVar4;\n      }\n      goto LAB_0001d6c3;\n    }\n    if (iVar3 != 0x17) goto LAB_0001d300;\n    if (*local_2c != param_5) goto LAB_0001db7f;\n    *(int *)(param_5 + 8) = *(int *)(param_1 + 0x18);\nLAB_0001d36b:\n    param_4 = (int *)local_2c[1];\n  } while( true );" statement_identifier : (do_statement "do {\n    for (; iVar3 = *param_4, 1 < iVar3 - 0x16U; param_4 = *(int **)(param_4[3] + 4)) {\nLAB_0001d300:\n      if (param_5 == 0) {\n        local_30 = 0;\nLAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    \n          abort();\n        }\nLAB_0001d9c6:\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 8) = *(undefined4 *)(param_1 + 0x18);\n      if (iVar3 != 0x16) {\n        if (iVar3 != 0x17) {\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }\n        goto LAB_0001daa0;\n      }\nLAB_0001d388:\n      param_5 = 0;\n    }\n    local_2c = (int *)param_4[3];\n    if (*(int *)(*local_2c + 8) == *(int *)(param_1 + 0x18)) {\n      if (iVar3 == 0x16) {\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n        goto LAB_0001d9c6;\n      }\nLAB_0001db7f:\n      piVar2 = (int *)FUN_0001c820();\n      if (piVar2 != (int *)0x0) {\n        iVar3 = *piVar2;\n        uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n        if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }\n        else {\n          uVar5 = 0;\n        }\n        uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);\n        return uVar4;\n      }\n      goto LAB_0001d6c3;\n    }\n    if (iVar3 != 0x17) goto LAB_0001d300;\n    if (*local_2c != param_5) goto LAB_0001db7f;\n    *(int *)(param_5 + 8) = *(int *)(param_1 + 0x18);\nLAB_0001d36b:\n    param_4 = (int *)local_2c[1];\n  } while( true );" do (compound_statement "{\n    for (; iVar3 = *param_4, 1 < iVar3 - 0x16U; param_4 = *(int **)(param_4[3] + 4)) {\nLAB_0001d300:\n      if (param_5 == 0) {\n        local_30 = 0;\nLAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    \n          abort();\n        }\nLAB_0001d9c6:\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 8) = *(undefined4 *)(param_1 + 0x18);\n      if (iVar3 != 0x16) {\n        if (iVar3 != 0x17) {\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }\n        goto LAB_0001daa0;\n      }\nLAB_0001d388:\n      param_5 = 0;\n    }\n    local_2c = (int *)param_4[3];\n    if (*(int *)(*local_2c + 8) == *(int *)(param_1 + 0x18)) {\n      if (iVar3 == 0x16) {\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n        goto LAB_0001d9c6;\n      }\nLAB_0001db7f:\n      piVar2 = (int *)FUN_0001c820();\n      if (piVar2 != (int *)0x0) {\n        iVar3 = *piVar2;\n        uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n        if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }\n        else {\n          uVar5 = 0;\n        }\n        uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);\n        return uVar4;\n      }\n      goto LAB_0001d6c3;\n    }\n    if (iVar3 != 0x17) goto LAB_0001d300;\n    if (*local_2c != param_5) goto LAB_0001db7f;\n    *(int *)(param_5 + 8) = *(int *)(param_1 + 0x18);\nLAB_0001d36b:\n    param_4 = (int *)local_2c[1];\n  }" { (for_statement "for (; iVar3 = *param_4, 1 < iVar3 - 0x16U; param_4 = *(int **)(param_4[3] + 4)) {\nLAB_0001d300:\n      if (param_5 == 0) {\n        local_30 = 0;\nLAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    \n          abort();\n        }\nLAB_0001d9c6:\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 8) = *(undefined4 *)(param_1 + 0x18);\n      if (iVar3 != 0x16) {\n        if (iVar3 != 0x17) {\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }\n        goto LAB_0001daa0;\n      }\nLAB_0001d388:\n      param_5 = 0;\n    }" for ( ; (comma_expression "iVar3 = *param_4, 1 < iVar3 - 0x16U" (assignment_expression "iVar3 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) , (binary_expression "1 < iVar3 - 0x16U" number_literal < (binary_expression "iVar3 - 0x16U" identifier - number_literal))) ; (assignment_expression "param_4 = *(int **)(param_4[3] + 4)" identifier = (pointer_expression "*(int **)(param_4[3] + 4)" * (cast_expression "(int **)(param_4[3] + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4[3] + 4)" ( (binary_expression "param_4[3] + 4" (subscript_expression "param_4[3]" identifier [ number_literal ]) + number_literal) ))))) ) (compound_statement "{\nLAB_0001d300:\n      if (param_5 == 0) {\n        local_30 = 0;\nLAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    \n          abort();\n        }\nLAB_0001d9c6:\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 8) = *(undefined4 *)(param_1 + 0x18);\n      if (iVar3 != 0x16) {\n        if (iVar3 != 0x17) {\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }\n        goto LAB_0001daa0;\n      }\nLAB_0001d388:\n      param_5 = 0;\n    }" { (labeled_statement "LAB_0001d300:\n      if (param_5 == 0) {\n        local_30 = 0;\nLAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    \n          abort();\n        }\nLAB_0001d9c6:\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n        return uVar4;\n      }" statement_identifier : (if_statement "if (param_5 == 0) {\n        local_30 = 0;\nLAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    \n          abort();\n        }\nLAB_0001d9c6:\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n        return uVar4;\n      }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n        local_30 = 0;\nLAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    \n          abort();\n        }\nLAB_0001d9c6:\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n        return uVar4;\n      }" { (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    \n          abort();\n        }" statement_identifier : (switch_statement "switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    \n          abort();\n        }" switch (parenthesized_expression "(iVar3)" ( identifier )) (compound_statement "{\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    \n          abort();\n        }" { (case_statement "case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;" case number_literal : (expression_statement "uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);" (assignment_expression "uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5)" identifier = (call_expression "dcgettext(0,"debug_write_type: illegal type encountered",5)" identifier (argument_list "(0,"debug_write_type: illegal type encountered",5)" ( number_literal , (string_literal ""debug_write_type: illegal type encountered"" " string_content ") , number_literal )))) ;) (expression_statement "fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);" (call_expression "fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4)" identifier (argument_list "(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4)" ( (pointer_expression "*(FILE **)PTR_stderr_0003efa8" * (cast_expression "(FILE **)PTR_stderr_0003efa8" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , (string_literal ""%s\n"" " string_content escape_sequence ") , identifier ))) ;) (return_statement "return 0;" return number_literal ;)) (case_statement "case 1:\n          goto code_r0x0001d6b0;" case number_literal : (goto_statement "goto code_r0x0001d6b0;" goto statement_identifier ;)) (case_statement "case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;" case number_literal : (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc)" identifier = (pointer_expression "*(code **)(param_2 + 0xc)" * (cast_expression "(code **)(param_2 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001d69f;" goto statement_identifier ;)) (case_statement "case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;" case number_literal : (expression_statement "uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3])" identifier = (call_expression "(**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3])" (parenthesized_expression "(**(code **)(param_2 + 0x10))" ( (pointer_expression "**(code **)(param_2 + 0x10)" * (pointer_expression "*(code **)(param_2 + 0x10)" * (cast_expression "(code **)(param_2 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) ))))) )) (argument_list "(param_3,param_4[1],param_4[3])" ( identifier , (subscript_expression "param_4[1]" identifier [ number_literal ]) , (subscript_expression "param_4[3]" identifier [ number_literal ]) )))) ;) (return_statement "return uVar4;" return identifier ;)) (case_statement "case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;" case number_literal : (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14)" identifier = (pointer_expression "*(code **)(param_2 + 0x14)" * (cast_expression "(code **)(param_2 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x14)" ( (binary_expression "param_2 + 0x14" identifier + number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;" case number_literal : (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18)" identifier = (pointer_expression "*(code **)(param_2 + 0x18)" * (cast_expression "(code **)(param_2 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;" case number_literal : (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c)" identifier = (pointer_expression "*(code **)(param_2 + 0x1c)" * (cast_expression "(code **)(param_2 + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 7:" case number_literal :) (case_statement "case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;" case number_literal : (expression_statement "iVar6 = param_4[3];" (assignment_expression "iVar6 = param_4[3]" identifier = (subscript_expression "param_4[3]" identifier [ number_literal ])) ;) (if_statement "if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }" { (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c)" identifier = (pointer_expression "*(code **)(param_2 + 0x4c)" * (cast_expression "(code **)(param_2 + 0x4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x4c)" ( (binary_expression "param_2 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = param_4[1];" (assignment_expression "iVar1 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }" else (compound_statement "{\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }" { (expression_statement "uVar5 = *(uint *)(iVar6 + 8);" (assignment_expression "uVar5 = *(uint *)(iVar6 + 8)" identifier = (pointer_expression "*(uint *)(iVar6 + 8)" * (cast_expression "(uint *)(iVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }" if (parenthesized_expression "(*(uint *)(param_1 + 0x20) < uVar5)" ( (binary_expression "*(uint *)(param_1 + 0x20) < uVar5" (pointer_expression "*(uint *)(param_1 + 0x20)" * (cast_expression "(uint *)(param_1 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }" { (expression_statement "iVar3 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar3 = *(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) ))))) ;) (if_statement "if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }" if (parenthesized_expression "(*(int *)(iVar6 + 4) == iVar3)" ( (binary_expression "*(int *)(iVar6 + 4) == iVar3" (pointer_expression "*(int *)(iVar6 + 4)" * (cast_expression "(int *)(iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) == identifier) )) (compound_statement "{\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }" { (labeled_statement "code_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);" statement_identifier : (expression_statement "uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4)" identifier = (call_expression "(**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4)" (parenthesized_expression "(**(code **)(param_2 + 0x7c))" ( (pointer_expression "**(code **)(param_2 + 0x7c)" * (pointer_expression "*(code **)(param_2 + 0x7c)" * (cast_expression "(code **)(param_2 + 0x7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x7c)" ( (binary_expression "param_2 + 0x7c" identifier + number_literal) ))))) )) (argument_list "(param_3,local_30,uVar5,*param_4)" ( identifier , identifier , identifier , (pointer_expression "*param_4" * identifier) )))) ;)) (return_statement "return uVar4;" return identifier ;) })) }) (else_clause "else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }" else (compound_statement "{\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }" { (expression_statement "iVar3 = FUN_0001d1a0();" (assignment_expression "iVar3 = FUN_0001d1a0()" identifier = (call_expression "FUN_0001d1a0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar6 = param_4[3];" (assignment_expression "iVar6 = param_4[3]" identifier = (subscript_expression "param_4[3]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar3 = *(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) ))))) ;) (if_statement "if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }" if (parenthesized_expression "(iVar3 == *(int *)(iVar6 + 4))" ( (binary_expression "iVar3 == *(int *)(iVar6 + 4)" identifier == (pointer_expression "*(int *)(iVar6 + 4)" * (cast_expression "(int *)(iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) ))))) )) (compound_statement "{\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }" { (expression_statement "uVar5 = *(uint *)(iVar6 + 8);" (assignment_expression "uVar5 = *(uint *)(iVar6 + 8)" identifier = (pointer_expression "*(uint *)(iVar6 + 8)" * (cast_expression "(uint *)(iVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) ))))) ;) (if_statement "if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }" if (parenthesized_expression "(uVar5 <= *(uint *)(param_1 + 0x20))" ( (binary_expression "uVar5 <= *(uint *)(param_1 + 0x20)" identifier <= (pointer_expression "*(uint *)(param_1 + 0x20)" * (cast_expression "(uint *)(param_1 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) )) (compound_statement "{\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }" { (expression_statement "__function = "debug_write_type";" (assignment_expression "__function = "debug_write_type"" identifier = (string_literal ""debug_write_type"" " string_content ")) ;) (expression_statement "uVar5 = 0x9d1;" (assignment_expression "uVar5 = 0x9d1" identifier = number_literal) ;) (labeled_statement "code_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);" statement_identifier : (expression_statement "__assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);" (call_expression "__assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function)" identifier (argument_list "("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function)" ( (string_literal ""type->u.kclass->id > info->base_id"" " string_content ") , (string_literal ""../../binutils/debug.c"" " string_content ") , identifier , identifier ))) ;)) })) (goto_statement "goto code_r0x0001db48;" goto statement_identifier ;) })) }))) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c)" identifier = (pointer_expression "*(code **)(param_2 + 0x4c)" * (cast_expression "(code **)(param_2 + 0x4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x4c)" ( (binary_expression "param_2 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = param_4[1];" (assignment_expression "iVar1 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(iVar6 + 4) = iVar3;" (assignment_expression "*(int *)(iVar6 + 4) = iVar3" (pointer_expression "*(int *)(iVar6 + 4)" * (cast_expression "(int *)(iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = *(undefined4 *)(iVar6 + 8);" (assignment_expression "uVar4 = *(undefined4 *)(iVar6 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar6 + 8)" * (cast_expression "(undefined4 *)(iVar6 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *param_4;" (assignment_expression "iVar3 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) }))) (expression_statement "iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);" (assignment_expression "iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1)" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE_00)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE_00" * identifier) )) (argument_list "(param_3,local_30,uVar4,iVar3 == 7,iVar1)" ( identifier , identifier , identifier , (binary_expression "iVar3 == 7" identifier == number_literal) , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }" if (parenthesized_expression "((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0))" ( (binary_expression "(((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)" (parenthesized_expression "(((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0))" ( (binary_expression "((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)" (parenthesized_expression "((int *)param_4[3] != (int *)0x0)" ( (binary_expression "(int *)param_4[3] != (int *)0x0" (cast_expression "(int *)param_4[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ])) != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)" ( (comma_expression "piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0" (assignment_expression "piVar2 = *(int **)param_4[3]" identifier = (pointer_expression "*(int **)param_4[3]" * (cast_expression "(int **)param_4[3]" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "param_4[3]" identifier [ number_literal ])))) , (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)" ( (comma_expression "puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0" (assignment_expression "puVar7 = (undefined4 *)*piVar2" identifier = (cast_expression "(undefined4 *)*piVar2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar2" * identifier))) , (binary_expression "puVar7 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }" { (expression_statement "iVar3 = 4;" (assignment_expression "iVar3 = 4" identifier = number_literal) ;) (do_statement "do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);" do (compound_statement "{\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            }" { (expression_statement "iVar6 = FUN_0001d2d0(puVar7[1],0);" (assignment_expression "iVar6 = FUN_0001d2d0(puVar7[1],0)" identifier = (call_expression "FUN_0001d2d0(puVar7[1],0)" identifier (argument_list "(puVar7[1],0)" ( (subscript_expression "puVar7[1]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar6 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);" (assignment_expression "iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2])" identifier = (call_expression "(**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2])" (parenthesized_expression "(**(code **)(param_2 + 0x50))" ( (pointer_expression "**(code **)(param_2 + 0x50)" * (pointer_expression "*(code **)(param_2 + 0x50)" * (cast_expression "(code **)(param_2 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x50)" ( (binary_expression "param_2 + 0x50" identifier + number_literal) ))))) )) (argument_list "(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2])" ( identifier , (pointer_expression "*puVar7" * identifier) , (subscript_expression "puVar7[4]" identifier [ number_literal ]) , (subscript_expression "puVar7[5]" identifier [ number_literal ]) , (subscript_expression "puVar7[2]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar6 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);" (assignment_expression "puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3)" identifier = (pointer_expression "*(undefined4 **)(*(int *)param_4[3] + iVar3)" * (cast_expression "(undefined4 **)(*(int *)param_4[3] + iVar3)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)param_4[3] + iVar3)" ( (binary_expression "*(int *)param_4[3] + iVar3" (pointer_expression "*(int *)param_4[3]" * (cast_expression "(int *)param_4[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) + identifier) ))))) ;) (expression_statement "iVar3 = iVar3 + 4;" (assignment_expression "iVar3 = iVar3 + 4" identifier = (binary_expression "iVar3 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar7 != (undefined4 *)0x0)" ( (binary_expression "puVar7 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54)" identifier = (pointer_expression "*(code **)(param_2 + 0x54)" * (cast_expression "(code **)(param_2 + 0x54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001d69f;" goto statement_identifier ;)) (case_statement "case 9:" case number_literal :) (case_statement "case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;" case number_literal : (expression_statement "local_34 = (int *)param_4[3];" (assignment_expression "local_34 = (int *)param_4[3]" identifier = (cast_expression "(int *)param_4[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) ;) (if_statement "if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }" if (parenthesized_expression "(local_34 == (int *)0x0)" ( (binary_expression "local_34 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }" { (expression_statement "bVar8 = false;" (assignment_expression "bVar8 = false" identifier = false) ;) (expression_statement "local_2c = (int *)0x0;" (assignment_expression "local_2c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_34 = (int *)0x0;" (assignment_expression "local_34 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }" else (compound_statement "{\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }" { (expression_statement "local_2c = *(int **)((int)local_34 + 8);" (assignment_expression "local_2c = *(int **)((int)local_34 + 8)" identifier = (pointer_expression "*(int **)((int)local_34 + 8)" * (cast_expression "(int **)((int)local_34 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_34 + 8)" ( (binary_expression "(int)local_34 + 8" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }" if (parenthesized_expression "(*(uint *)(param_1 + 0x20) < local_2c)" ( (binary_expression "*(uint *)(param_1 + 0x20) < local_2c" (pointer_expression "*(uint *)(param_1 + 0x20)" * (cast_expression "(uint *)(param_1 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }" { (expression_statement "iVar6 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar6 = *(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) ))))) ;) (if_statement "if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }" if (parenthesized_expression "(*(int *)((int)local_34 + 4) == iVar6)" ( (binary_expression "*(int *)((int)local_34 + 4) == iVar6" (pointer_expression "*(int *)((int)local_34 + 4)" * (cast_expression "(int *)((int)local_34 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_34 + 4)" ( (binary_expression "(int)local_34 + 4" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == identifier) )) (compound_statement "{\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }" { (labeled_statement "code_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);" statement_identifier : (expression_statement "uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3)" identifier = (call_expression "(**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3)" (parenthesized_expression "(**(code **)(param_2 + 0x7c))" ( (pointer_expression "**(code **)(param_2 + 0x7c)" * (pointer_expression "*(code **)(param_2 + 0x7c)" * (cast_expression "(code **)(param_2 + 0x7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x7c)" ( (binary_expression "param_2 + 0x7c" identifier + number_literal) ))))) )) (argument_list "(param_3,local_30,local_2c,iVar3)" ( identifier , identifier , identifier , identifier )))) ;)) (return_statement "return uVar4;" return identifier ;) })) }) (else_clause "else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }" else (compound_statement "{\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }" { (expression_statement "iVar3 = FUN_0001d1a0();" (assignment_expression "iVar3 = FUN_0001d1a0()" identifier = (call_expression "FUN_0001d1a0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "local_34 = (int *)param_4[3];" (assignment_expression "local_34 = (int *)param_4[3]" identifier = (cast_expression "(int *)param_4[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) ;) (expression_statement "iVar6 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar6 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "local_2c = *(int **)((int)local_34 + 8);" (assignment_expression "local_2c = *(int **)((int)local_34 + 8)" identifier = (pointer_expression "*(int **)((int)local_34 + 8)" * (cast_expression "(int **)((int)local_34 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_34 + 8)" ( (binary_expression "(int)local_34 + 8" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }" if (parenthesized_expression "(iVar6 == *(int *)((int)local_34 + 4))" ( (binary_expression "iVar6 == *(int *)((int)local_34 + 4)" identifier == (pointer_expression "*(int *)((int)local_34 + 4)" * (cast_expression "(int *)((int)local_34 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_34 + 4)" ( (binary_expression "(int)local_34 + 4" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }" { (if_statement "if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }" if (parenthesized_expression "(local_2c <= *(uint *)(param_1 + 0x20))" ( (binary_expression "local_2c <= *(uint *)(param_1 + 0x20)" identifier <= (pointer_expression "*(uint *)(param_1 + 0x20)" * (cast_expression "(uint *)(param_1 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) )) (compound_statement "{\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }" { (expression_statement "__function = "debug_write_class_type";" (assignment_expression "__function = "debug_write_class_type"" identifier = (string_literal ""debug_write_class_type"" " string_content ")) ;) (expression_statement "uVar5 = 0xa7d;" (assignment_expression "uVar5 = 0xa7d" identifier = number_literal) ;) (goto_statement "goto code_r0x0001de3e;" goto statement_identifier ;) })) (expression_statement "iVar3 = *param_4;" (assignment_expression "iVar3 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (goto_statement "goto code_r0x0001dafa;" goto statement_identifier ;) })) }))) (expression_statement "*(int *)((int)local_34 + 4) = iVar6;" (assignment_expression "*(int *)((int)local_34 + 4) = iVar6" (pointer_expression "*(int *)((int)local_34 + 4)" * (cast_expression "(int *)((int)local_34 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_34 + 4)" ( (binary_expression "(int)local_34 + 4" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_34 = *(int **)((int)local_34 + 0x14);" (assignment_expression "local_34 = *(int **)((int)local_34 + 0x14)" identifier = (pointer_expression "*(int **)((int)local_34 + 0x14)" * (cast_expression "(int **)((int)local_34 + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_34 + 0x14)" ( (binary_expression "(int)local_34 + 0x14" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar8 = local_34 != (int *)0x0;" (assignment_expression "bVar8 = local_34 != (int *)0x0" identifier = (binary_expression "local_34 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }" if (parenthesized_expression "((param_4 == local_34) || (!bVar8))" ( (binary_expression "(param_4 == local_34) || (!bVar8)" (parenthesized_expression "(param_4 == local_34)" ( (binary_expression "param_4 == local_34" identifier == identifier) )) || (parenthesized_expression "(!bVar8)" ( (unary_expression "!bVar8" ! identifier) ))) )) (compound_statement "{\n              iVar3 = *param_4;\n            }" { (expression_statement "iVar3 = *param_4;" (assignment_expression "iVar3 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) }) (else_clause "else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }" else (compound_statement "{\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }" { (expression_statement "iVar3 = FUN_0001d2d0(local_34,0);" (assignment_expression "iVar3 = FUN_0001d2d0(local_34,0)" identifier = (call_expression "FUN_0001d2d0(local_34,0)" identifier (argument_list "(local_34,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar3 = *param_4;" (assignment_expression "iVar3 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "bVar8 = true;" (assignment_expression "bVar8 = true" identifier = true) ;) }))) }))) (expression_statement "iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);" (assignment_expression "iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34)" identifier = (call_expression "(**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34)" (parenthesized_expression "(**(code **)(param_2 + 0x58))" ( (pointer_expression "**(code **)(param_2 + 0x58)" * (pointer_expression "*(code **)(param_2 + 0x58)" * (cast_expression "(code **)(param_2 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x58)" ( (binary_expression "param_2 + 0x58" identifier + number_literal) ))))) )) (argument_list "(param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34)" ( identifier , identifier , identifier , (binary_expression "iVar3 == 9" identifier == number_literal) , (subscript_expression "param_4[1]" identifier [ number_literal ]) , identifier , (binary_expression "param_4 == local_34" identifier == identifier) )))) ;) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "piVar2 = (int *)param_4[3];" (assignment_expression "piVar2 = (int *)param_4[3]" identifier = (cast_expression "(int *)param_4[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) ;) (if_statement "if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }" if (parenthesized_expression "(piVar2 != (int *)0x0)" ( (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }" { (if_statement "if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }" if (parenthesized_expression "(((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0))" ( (binary_expression "((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)" (parenthesized_expression "((int *)*piVar2 != (int *)0x0)" ( (binary_expression "(int *)*piVar2 != (int *)0x0" (cast_expression "(int *)*piVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar2" * identifier)) != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)" ( (comma_expression "puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0" (assignment_expression "puVar7 = *(undefined4 **)*piVar2" identifier = (pointer_expression "*(undefined4 **)*piVar2" * (cast_expression "(undefined4 **)*piVar2" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*piVar2" * identifier)))) , (binary_expression "puVar7 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }" { (expression_statement "iVar3 = 4;" (assignment_expression "iVar3 = 4" identifier = number_literal) ;) (do_statement "do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);" do (compound_statement "{\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              }" { (expression_statement "iVar6 = FUN_0001d2d0(puVar7[1],0);" (assignment_expression "iVar6 = FUN_0001d2d0(puVar7[1],0)" identifier = (call_expression "FUN_0001d2d0(puVar7[1],0)" identifier (argument_list "(puVar7[1],0)" ( (subscript_expression "puVar7[1]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar6 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }" if (parenthesized_expression "(puVar7[3] == 0)" ( (binary_expression "puVar7[3] == 0" (subscript_expression "puVar7[3]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }" { (expression_statement "iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);" (assignment_expression "iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2])" identifier = (call_expression "(**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2])" (parenthesized_expression "(**(code **)(param_2 + 0x50))" ( (pointer_expression "**(code **)(param_2 + 0x50)" * (pointer_expression "*(code **)(param_2 + 0x50)" * (cast_expression "(code **)(param_2 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x50)" ( (binary_expression "param_2 + 0x50" identifier + number_literal) ))))) )) (argument_list "(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2])" ( identifier , (pointer_expression "*puVar7" * identifier) , (subscript_expression "puVar7[4]" identifier [ number_literal ]) , (subscript_expression "puVar7[5]" identifier [ number_literal ]) , (subscript_expression "puVar7[2]" identifier [ number_literal ]) )))) ;) }) (else_clause "else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }" else (compound_statement "{\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }" { (expression_statement "iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);" (assignment_expression "iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2])" identifier = (call_expression "(**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2])" (parenthesized_expression "(**(code **)(param_2 + 0x5c))" ( (pointer_expression "**(code **)(param_2 + 0x5c)" * (pointer_expression "*(code **)(param_2 + 0x5c)" * (cast_expression "(code **)(param_2 + 0x5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x5c)" ( (binary_expression "param_2 + 0x5c" identifier + number_literal) ))))) )) (argument_list "(param_3,*puVar7,puVar7[4],puVar7[2])" ( identifier , (pointer_expression "*puVar7" * identifier) , (subscript_expression "puVar7[4]" identifier [ number_literal ]) , (subscript_expression "puVar7[2]" identifier [ number_literal ]) )))) ;) }))) (if_statement "if (iVar6 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "piVar2 = (int *)param_4[3];" (assignment_expression "piVar2 = (int *)param_4[3]" identifier = (cast_expression "(int *)param_4[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar7 = *(undefined4 **)(*piVar2 + iVar3);" (assignment_expression "puVar7 = *(undefined4 **)(*piVar2 + iVar3)" identifier = (pointer_expression "*(undefined4 **)(*piVar2 + iVar3)" * (cast_expression "(undefined4 **)(*piVar2 + iVar3)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar2 + iVar3)" ( (binary_expression "*piVar2 + iVar3" (pointer_expression "*piVar2" * identifier) + identifier) ))))) ;) (expression_statement "iVar3 = iVar3 + 4;" (assignment_expression "iVar3 = iVar3 + 4" identifier = (binary_expression "iVar3 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar7 != (undefined4 *)0x0)" ( (binary_expression "puVar7 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (if_statement "if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }" if (parenthesized_expression "(((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0))" ( (binary_expression "((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)" (parenthesized_expression "((int *)piVar2[3] != (int *)0x0)" ( (binary_expression "(int *)piVar2[3] != (int *)0x0" (cast_expression "(int *)piVar2[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar2[3]" identifier [ number_literal ])) != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)" ( (comma_expression "puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0" (assignment_expression "puVar7 = *(undefined4 **)piVar2[3]" identifier = (pointer_expression "*(undefined4 **)piVar2[3]" * (cast_expression "(undefined4 **)piVar2[3]" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "piVar2[3]" identifier [ number_literal ])))) , (binary_expression "puVar7 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }" { (expression_statement "iVar3 = 4;" (assignment_expression "iVar3 = 4" identifier = number_literal) ;) (do_statement "do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);" do (compound_statement "{\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              }" { (expression_statement "iVar6 = FUN_0001d2d0(*puVar7,0);" (assignment_expression "iVar6 = FUN_0001d2d0(*puVar7,0)" identifier = (call_expression "FUN_0001d2d0(*puVar7,0)" identifier (argument_list "(*puVar7,0)" ( (pointer_expression "*puVar7" * identifier) , number_literal )))) ;) (if_statement "if (iVar6 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);" (assignment_expression "iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3])" identifier = (call_expression "(**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3])" (parenthesized_expression "(**(code **)(param_2 + 0x60))" ( (pointer_expression "**(code **)(param_2 + 0x60)" * (pointer_expression "*(code **)(param_2 + 0x60)" * (cast_expression "(code **)(param_2 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x60)" ( (binary_expression "param_2 + 0x60" identifier + number_literal) ))))) )) (argument_list "(param_3,puVar7[1],puVar7[2],puVar7[3])" ( identifier , (subscript_expression "puVar7[1]" identifier [ number_literal ]) , (subscript_expression "puVar7[2]" identifier [ number_literal ]) , (subscript_expression "puVar7[3]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar6 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "piVar2 = (int *)param_4[3];" (assignment_expression "piVar2 = (int *)param_4[3]" identifier = (cast_expression "(int *)param_4[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar7 = *(undefined4 **)(piVar2[3] + iVar3);" (assignment_expression "puVar7 = *(undefined4 **)(piVar2[3] + iVar3)" identifier = (pointer_expression "*(undefined4 **)(piVar2[3] + iVar3)" * (cast_expression "(undefined4 **)(piVar2[3] + iVar3)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar2[3] + iVar3)" ( (binary_expression "piVar2[3] + iVar3" (subscript_expression "piVar2[3]" identifier [ number_literal ]) + identifier) ))))) ;) (expression_statement "iVar3 = iVar3 + 4;" (assignment_expression "iVar3 = iVar3 + 4" identifier = (binary_expression "iVar3 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar7 != (undefined4 *)0x0)" ( (binary_expression "puVar7 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (if_statement "if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }" if (parenthesized_expression "(((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0))" ( (binary_expression "((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)" (parenthesized_expression "((int *)piVar2[4] != (int *)0x0)" ( (binary_expression "(int *)piVar2[4] != (int *)0x0" (cast_expression "(int *)piVar2[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar2[4]" identifier [ number_literal ])) != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)" ( (comma_expression "puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0" (assignment_expression "puStack_28 = *(undefined4 **)piVar2[4]" identifier = (pointer_expression "*(undefined4 **)piVar2[4]" * (cast_expression "(undefined4 **)piVar2[4]" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "piVar2[4]" identifier [ number_literal ])))) , (binary_expression "puStack_28 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }" { (expression_statement "iStack_24 = 0;" (assignment_expression "iStack_24 = 0" identifier = number_literal) ;) (do_statement "do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);" do (compound_statement "{\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              }" { (expression_statement "iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);" (assignment_expression "iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28)" identifier = (call_expression "(**(code **)(param_2 + 100))(param_3,*puStack_28)" (parenthesized_expression "(**(code **)(param_2 + 100))" ( (pointer_expression "**(code **)(param_2 + 100)" * (pointer_expression "*(code **)(param_2 + 100)" * (cast_expression "(code **)(param_2 + 100)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 100)" ( (binary_expression "param_2 + 100" identifier + number_literal) ))))) )) (argument_list "(param_3,*puStack_28)" ( identifier , (pointer_expression "*puStack_28" * identifier) )))) ;) (if_statement "if (iVar3 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar3 = 4;" (assignment_expression "iVar3 = 4" identifier = number_literal) ;) (for_statement "for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }" for ( (assignment_expression "puVar7 = *(undefined4 **)puStack_28[1]" identifier = (pointer_expression "*(undefined4 **)puStack_28[1]" * (cast_expression "(undefined4 **)puStack_28[1]" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puStack_28[1]" identifier [ number_literal ])))) ; (binary_expression "puVar7 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar7 = (undefined4 *)*puVar7" identifier = (cast_expression "(undefined4 *)*puVar7" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ) (compound_statement "{\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }" { (if_statement "if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }" if (parenthesized_expression "((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0))" ( (binary_expression "(puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)" (parenthesized_expression "(puVar7[6] != 0)" ( (binary_expression "puVar7[6] != 0" (subscript_expression "puVar7[6]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)" ( (comma_expression "iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0" (assignment_expression "iVar6 = FUN_0001d2d0(puVar7[6],0)" identifier = (call_expression "FUN_0001d2d0(puVar7[6],0)" identifier (argument_list "(puVar7[6],0)" ( (subscript_expression "puVar7[6]" identifier [ number_literal ]) , number_literal )))) , (binary_expression "iVar6 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                    return 0;\n                  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar6 = FUN_0001d2d0(puVar7[1],0);" (assignment_expression "iVar6 = FUN_0001d2d0(puVar7[1],0)" identifier = (call_expression "FUN_0001d2d0(puVar7[1],0)" identifier (argument_list "(puVar7[1],0)" ( (subscript_expression "puVar7[1]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar6 == 0) {\n                    return 0;\n                  }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                    return 0;\n                  }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }" if (parenthesized_expression "(puVar7[5] == -1)" ( (binary_expression "puVar7[5] == -1" (subscript_expression "puVar7[5]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }" { (expression_statement "iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);" (assignment_expression "iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4])" identifier = (call_expression "(**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4])" (parenthesized_expression "(**(code **)(param_2 + 0x6c))" ( (pointer_expression "**(code **)(param_2 + 0x6c)" * (pointer_expression "*(code **)(param_2 + 0x6c)" * (cast_expression "(code **)(param_2 + 0x6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x6c)" ( (binary_expression "param_2 + 0x6c" identifier + number_literal) ))))) )) (argument_list "(param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4])" ( identifier , (pointer_expression "*puVar7" * identifier) , (subscript_expression "puVar7[2]" identifier [ number_literal ]) , (subscript_expression "puVar7[3]" identifier [ number_literal ]) , (subscript_expression "puVar7[4]" identifier [ number_literal ]) )))) ;) }) (else_clause "else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }" else (compound_statement "{\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }" { (expression_statement "iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);" (assignment_expression "iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0)" identifier = (call_expression "(**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0)" (parenthesized_expression "(**(code **)(param_2 + 0x68))" ( (pointer_expression "**(code **)(param_2 + 0x68)" * (pointer_expression "*(code **)(param_2 + 0x68)" * (cast_expression "(code **)(param_2 + 0x68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x68)" ( (binary_expression "param_2 + 0x68" identifier + number_literal) ))))) )) (argument_list "(param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0)" ( identifier , (pointer_expression "*puVar7" * identifier) , (subscript_expression "puVar7[2]" identifier [ number_literal ]) , (subscript_expression "puVar7[3]" identifier [ number_literal ]) , (subscript_expression "puVar7[4]" identifier [ number_literal ]) , (subscript_expression "puVar7[5]" identifier [ number_literal ]) , (binary_expression "puVar7[6] != 0" (subscript_expression "puVar7[6]" identifier [ number_literal ]) != number_literal) )))) ;) }))) (if_statement "if (iVar6 == 0) {\n                    return 0;\n                  }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                    return 0;\n                  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "puVar7 = (undefined4 *)(puStack_28[1] + iVar3);" (assignment_expression "puVar7 = (undefined4 *)(puStack_28[1] + iVar3)" identifier = (cast_expression "(undefined4 *)(puStack_28[1] + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_28[1] + iVar3)" ( (binary_expression "puStack_28[1] + iVar3" (subscript_expression "puStack_28[1]" identifier [ number_literal ]) + identifier) )))) ;) (expression_statement "iVar3 = iVar3 + 4;" (assignment_expression "iVar3 = iVar3 + 4" identifier = (binary_expression "iVar3 + 4" identifier + number_literal)) ;) })) (expression_statement "iVar3 = (**(code **)(param_2 + 0x70))(param_3);" (assignment_expression "iVar3 = (**(code **)(param_2 + 0x70))(param_3)" identifier = (call_expression "(**(code **)(param_2 + 0x70))(param_3)" (parenthesized_expression "(**(code **)(param_2 + 0x70))" ( (pointer_expression "**(code **)(param_2 + 0x70)" * (pointer_expression "*(code **)(param_2 + 0x70)" * (cast_expression "(code **)(param_2 + 0x70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x70)" ( (binary_expression "param_2 + 0x70" identifier + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iStack_24 = iStack_24 + 1;" (assignment_expression "iStack_24 = iStack_24 + 1" identifier = (binary_expression "iStack_24 + 1" identifier + number_literal)) ;) (expression_statement "puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);" (assignment_expression "puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4)" * (cast_expression "(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_4[3] + 0x10) + iStack_24 * 4)" ( (binary_expression "*(int *)(param_4[3] + 0x10) + iStack_24 * 4" (pointer_expression "*(int *)(param_4[3] + 0x10)" * (cast_expression "(int *)(param_4[3] + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[3] + 0x10)" ( (binary_expression "param_4[3] + 0x10" (subscript_expression "param_4[3]" identifier [ number_literal ]) + number_literal) )))) + (binary_expression "iStack_24 * 4" identifier * number_literal)) ))))) ;) }) while (parenthesized_expression "(puStack_28 != (undefined4 *)0x0)" ( (binary_expression "puStack_28 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) })) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74)" identifier = (pointer_expression "*(code **)(param_2 + 0x74)" * (cast_expression "(code **)(param_2 + 0x74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x74)" ( (binary_expression "param_2 + 0x74" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001d69f;" goto statement_identifier ;)) (case_statement "case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;" case number_literal : (expression_statement "puVar7 = (undefined4 *)param_4[3];" (assignment_expression "puVar7 = (undefined4 *)param_4[3]" identifier = (cast_expression "(undefined4 *)param_4[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) ;) (if_statement "if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }" if (parenthesized_expression "(puVar7 == (undefined4 *)0x0)" ( (binary_expression "puVar7 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }" { (expression_statement "uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0)" identifier = (call_expression "(**(code **)(param_2 + 0x20))(param_3,local_30,0,0)" (parenthesized_expression "(**(code **)(param_2 + 0x20))" ( (pointer_expression "**(code **)(param_2 + 0x20)" * (pointer_expression "*(code **)(param_2 + 0x20)" * (cast_expression "(code **)(param_2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) ))))) )) (argument_list "(param_3,local_30,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (return_statement "return uVar4;" return identifier ;) })) (expression_statement "uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1])" identifier = (call_expression "(**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1])" (parenthesized_expression "(**(code **)(param_2 + 0x20))" ( (pointer_expression "**(code **)(param_2 + 0x20)" * (pointer_expression "*(code **)(param_2 + 0x20)" * (cast_expression "(code **)(param_2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) ))))) )) (argument_list "(param_3,local_30,*puVar7,puVar7[1])" ( identifier , identifier , (pointer_expression "*puVar7" * identifier) , (subscript_expression "puVar7[1]" identifier [ number_literal ]) )))) ;) (return_statement "return uVar4;" return identifier ;)) (case_statement "case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;" case number_literal : (expression_statement "iVar3 = FUN_0001d2d0(param_4[3],0);" (assignment_expression "iVar3 = FUN_0001d2d0(param_4[3],0)" identifier = (call_expression "FUN_0001d2d0(param_4[3],0)" identifier (argument_list "(param_4[3],0)" ( (subscript_expression "param_4[3]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24)" identifier = (pointer_expression "*(code **)(param_2 + 0x24)" * (cast_expression "(code **)(param_2 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x24)" ( (binary_expression "param_2 + 0x24" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001d69f;" goto statement_identifier ;)) (case_statement "case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;" case number_literal : (expression_statement "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);" (assignment_expression "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0)" identifier = (call_expression "FUN_0001d2d0(*(undefined4 *)param_4[3],0)" identifier (argument_list "(*(undefined4 *)param_4[3],0)" ( (pointer_expression "*(undefined4 *)param_4[3]" * (cast_expression "(undefined4 *)param_4[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar3 = param_4[3];" (assignment_expression "iVar3 = param_4[3]" identifier = (subscript_expression "param_4[3]" identifier [ number_literal ])) ;) (if_statement "if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }" if (parenthesized_expression "(*(int **)(iVar3 + 4) == (int *)0x0)" ( (binary_expression "*(int **)(iVar3 + 4) == (int *)0x0" (pointer_expression "*(int **)(iVar3 + 4)" * (cast_expression "(int **)(iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar6 = -1;\n          }" { (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;) }) (else_clause "else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }" else (compound_statement "{\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "iVar1 = **(int **)(iVar3 + 4);" (assignment_expression "iVar1 = **(int **)(iVar3 + 4)" identifier = (pointer_expression "**(int **)(iVar3 + 4)" * (pointer_expression "*(int **)(iVar3 + 4)" * (cast_expression "(int **)(iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))))) ;) (while_statement "while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }" while (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }" { (expression_statement "iVar3 = FUN_0001d2d0(iVar1,0);" (assignment_expression "iVar3 = FUN_0001d2d0(iVar1,0)" identifier = (call_expression "FUN_0001d2d0(iVar1,0)" identifier (argument_list "(iVar1,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar3 = param_4[3];" (assignment_expression "iVar3 = param_4[3]" identifier = (subscript_expression "param_4[3]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);" (assignment_expression "iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4)" identifier = (pointer_expression "*(int *)(*(int *)(iVar3 + 4) + iVar6 * 4)" * (cast_expression "(int *)(*(int *)(iVar3 + 4) + iVar6 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 4) + iVar6 * 4)" ( (binary_expression "*(int *)(iVar3 + 4) + iVar6 * 4" (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) + (binary_expression "iVar6 * 4" identifier * number_literal)) ))))) ;) })) }))) (expression_statement "uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8))" identifier = (call_expression "(**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8))" (parenthesized_expression "(**(code **)(param_2 + 0x28))" ( (pointer_expression "**(code **)(param_2 + 0x28)" * (pointer_expression "*(code **)(param_2 + 0x28)" * (cast_expression "(code **)(param_2 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x28)" ( (binary_expression "param_2 + 0x28" identifier + number_literal) ))))) )) (argument_list "(param_3,iVar6,*(undefined4 *)(iVar3 + 8))" ( identifier , identifier , (pointer_expression "*(undefined4 *)(iVar3 + 8)" * (cast_expression "(undefined4 *)(iVar3 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) )))) ;) (return_statement "return uVar4;" return identifier ;)) (case_statement "case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;" case number_literal : (expression_statement "iVar3 = FUN_0001d2d0(param_4[3],0);" (assignment_expression "iVar3 = FUN_0001d2d0(param_4[3],0)" identifier = (call_expression "FUN_0001d2d0(param_4[3],0)" identifier (argument_list "(param_4[3],0)" ( (subscript_expression "param_4[3]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c)" identifier = (pointer_expression "*(code **)(param_2 + 0x2c)" * (cast_expression "(code **)(param_2 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001d69f;" goto statement_identifier ;)) (case_statement "case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;" case number_literal : (expression_statement "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);" (assignment_expression "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0)" identifier = (call_expression "FUN_0001d2d0(*(undefined4 *)param_4[3],0)" identifier (argument_list "(*(undefined4 *)param_4[3],0)" ( (pointer_expression "*(undefined4 *)param_4[3]" * (cast_expression "(undefined4 *)param_4[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            )" identifier = (call_expression "(**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            )" (parenthesized_expression "(**(code **)(param_2 + 0x30))" ( (pointer_expression "**(code **)(param_2 + 0x30)" * (pointer_expression "*(code **)(param_2 + 0x30)" * (cast_expression "(code **)(param_2 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))) )) (argument_list "(param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            )" ( identifier , (pointer_expression "*(undefined4 *)(param_4[3] + 4)" * (cast_expression "(undefined4 *)(param_4[3] + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[3] + 4)" ( (binary_expression "param_4[3] + 4" (subscript_expression "param_4[3]" identifier [ number_literal ]) + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_4[3] + 8)" * (cast_expression "(undefined4 *)(param_4[3] + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[3] + 8)" ( (binary_expression "param_4[3] + 8" (subscript_expression "param_4[3]" identifier [ number_literal ]) + number_literal) )))) )))) ;) (return_statement "return uVar4;" return identifier ;)) (case_statement "case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;" case number_literal : (expression_statement "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);" (assignment_expression "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0)" identifier = (call_expression "FUN_0001d2d0(*(undefined4 *)param_4[3],0)" identifier (argument_list "(*(undefined4 *)param_4[3],0)" ( (pointer_expression "*(undefined4 *)param_4[3]" * (cast_expression "(undefined4 *)param_4[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);" (assignment_expression "iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0)" identifier = (call_expression "FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0)" identifier (argument_list "(*(undefined4 *)(param_4[3] + 4),0)" ( (pointer_expression "*(undefined4 *)(param_4[3] + 4)" * (cast_expression "(undefined4 *)(param_4[3] + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[3] + 4)" ( (binary_expression "param_4[3] + 4" (subscript_expression "param_4[3]" identifier [ number_literal ]) + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar3 = param_4[3];" (assignment_expression "iVar3 = param_4[3]" identifier = (subscript_expression "param_4[3]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10))" identifier = (call_expression "(**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10))" (parenthesized_expression "(**(code **)(param_2 + 0x34))" ( (pointer_expression "**(code **)(param_2 + 0x34)" * (pointer_expression "*(code **)(param_2 + 0x34)" * (cast_expression "(code **)(param_2 + 0x34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x34)" ( (binary_expression "param_2 + 0x34" identifier + number_literal) ))))) )) (argument_list "(param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10))" ( identifier , (pointer_expression "*(undefined4 *)(iVar3 + 8)" * (cast_expression "(undefined4 *)(iVar3 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar3 + 0xc)" * (cast_expression "(undefined4 *)(iVar3 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar3 + 0x10)" * (cast_expression "(undefined4 *)(iVar3 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) )))) ;) (return_statement "return uVar4;" return identifier ;)) (case_statement "case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;" case number_literal : (expression_statement "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);" (assignment_expression "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0)" identifier = (call_expression "FUN_0001d2d0(*(undefined4 *)param_4[3],0)" identifier (argument_list "(*(undefined4 *)param_4[3],0)" ( (pointer_expression "*(undefined4 *)param_4[3]" * (cast_expression "(undefined4 *)param_4[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38)" identifier = (pointer_expression "*(code **)(param_2 + 0x38)" * (cast_expression "(code **)(param_2 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x38)" ( (binary_expression "param_2 + 0x38" identifier + number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;" case number_literal : (expression_statement "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);" (assignment_expression "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0)" identifier = (call_expression "FUN_0001d2d0(*(undefined4 *)param_4[3],0)" identifier (argument_list "(*(undefined4 *)param_4[3],0)" ( (pointer_expression "*(undefined4 *)param_4[3]" * (cast_expression "(undefined4 *)param_4[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);" (assignment_expression "iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0)" identifier = (call_expression "FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0)" identifier (argument_list "(*(undefined4 *)(param_4[3] + 4),0)" ( (pointer_expression "*(undefined4 *)(param_4[3] + 4)" * (cast_expression "(undefined4 *)(param_4[3] + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[3] + 4)" ( (binary_expression "param_4[3] + 4" (subscript_expression "param_4[3]" identifier [ number_literal ]) + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c)" identifier = (pointer_expression "*(code **)(param_2 + 0x3c)" * (cast_expression "(code **)(param_2 + 0x3c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x3c)" ( (binary_expression "param_2 + 0x3c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001d69f;" goto statement_identifier ;)) (case_statement "case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;" case number_literal : (expression_statement "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);" (assignment_expression "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0)" identifier = (call_expression "FUN_0001d2d0(*(undefined4 *)param_4[3],0)" identifier (argument_list "(*(undefined4 *)param_4[3],0)" ( (pointer_expression "*(undefined4 *)param_4[3]" * (cast_expression "(undefined4 *)param_4[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar3 = param_4[3];" (assignment_expression "iVar3 = param_4[3]" identifier = (subscript_expression "param_4[3]" identifier [ number_literal ])) ;) (if_statement "if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }" if (parenthesized_expression "(*(int **)(iVar3 + 8) == (int *)0x0)" ( (binary_expression "*(int **)(iVar3 + 8) == (int *)0x0" (pointer_expression "*(int **)(iVar3 + 8)" * (cast_expression "(int **)(iVar3 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar6 = -1;\n          }" { (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;) }) (else_clause "else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }" else (compound_statement "{\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "iVar1 = **(int **)(iVar3 + 8);" (assignment_expression "iVar1 = **(int **)(iVar3 + 8)" identifier = (pointer_expression "**(int **)(iVar3 + 8)" * (pointer_expression "*(int **)(iVar3 + 8)" * (cast_expression "(int **)(iVar3 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))))) ;) (while_statement "while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }" while (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }" { (expression_statement "iVar3 = FUN_0001d2d0(iVar1,0);" (assignment_expression "iVar3 = FUN_0001d2d0(iVar1,0)" identifier = (call_expression "FUN_0001d2d0(iVar1,0)" identifier (argument_list "(iVar1,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar3 = param_4[3];" (assignment_expression "iVar3 = param_4[3]" identifier = (subscript_expression "param_4[3]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);" (assignment_expression "iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4)" identifier = (pointer_expression "*(int *)(*(int *)(iVar3 + 8) + iVar6 * 4)" * (cast_expression "(int *)(*(int *)(iVar3 + 8) + iVar6 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 8) + iVar6 * 4)" ( (binary_expression "*(int *)(iVar3 + 8) + iVar6 * 4" (pointer_expression "*(int *)(iVar3 + 8)" * (cast_expression "(int *)(iVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) + (binary_expression "iVar6 * 4" identifier * number_literal)) ))))) ;) })) }))) (expression_statement "iVar1 = *(int *)(iVar3 + 4);" (assignment_expression "iVar1 = *(int *)(iVar3 + 4)" identifier = (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) (if_statement "if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }" { (expression_statement "iVar3 = FUN_0001d2d0(iVar1,0);" (assignment_expression "iVar3 = FUN_0001d2d0(iVar1,0)" identifier = (call_expression "FUN_0001d2d0(iVar1,0)" identifier (argument_list "(iVar1,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n              return 0;\n            }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar3 = param_4[3];" (assignment_expression "iVar3 = param_4[3]" identifier = (subscript_expression "param_4[3]" identifier [ number_literal ])) ;) (expression_statement "iVar1 = *(int *)(iVar3 + 4);" (assignment_expression "iVar1 = *(int *)(iVar3 + 4)" identifier = (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) })) (expression_statement "uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc))" identifier = (call_expression "(**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc))" (parenthesized_expression "(**(code **)(param_2 + 0x40))" ( (pointer_expression "**(code **)(param_2 + 0x40)" * (pointer_expression "*(code **)(param_2 + 0x40)" * (cast_expression "(code **)(param_2 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x40)" ( (binary_expression "param_2 + 0x40" identifier + number_literal) ))))) )) (argument_list "(param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc))" ( identifier , (binary_expression "iVar1 != 0" identifier != number_literal) , identifier , (pointer_expression "*(undefined4 *)(iVar3 + 0xc)" * (cast_expression "(undefined4 *)(iVar3 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) )))) ;) (return_statement "return uVar4;" return identifier ;)) (case_statement "case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;" case number_literal : (expression_statement "iVar3 = FUN_0001d2d0(param_4[3],0);" (assignment_expression "iVar3 = FUN_0001d2d0(param_4[3],0)" identifier = (call_expression "FUN_0001d2d0(param_4[3],0)" identifier (argument_list "(param_4[3],0)" ( (subscript_expression "param_4[3]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44)" identifier = (pointer_expression "*(code **)(param_2 + 0x44)" * (cast_expression "(code **)(param_2 + 0x44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x44)" ( (binary_expression "param_2 + 0x44" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001d69f;" goto statement_identifier ;)) (case_statement "case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;" case number_literal : (expression_statement "iVar3 = FUN_0001d2d0(param_4[3],0);" (assignment_expression "iVar3 = FUN_0001d2d0(param_4[3],0)" identifier = (call_expression "FUN_0001d2d0(param_4[3],0)" identifier (argument_list "(param_4[3],0)" ( (subscript_expression "param_4[3]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48)" identifier = (pointer_expression "*(code **)(param_2 + 0x48)" * (cast_expression "(code **)(param_2 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x48)" ( (binary_expression "param_2 + 0x48" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001d69f;" goto statement_identifier ;)) (case_statement "case 0x16:\n          goto LAB_0001d388;" case number_literal : (goto_statement "goto LAB_0001d388;" goto statement_identifier ;)) (case_statement "case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;" case number_literal : (labeled_statement "LAB_0001daa0:\n          local_2c = (int *)param_4[3];" statement_identifier : (expression_statement "local_2c = (int *)param_4[3];" (assignment_expression "local_2c = (int *)param_4[3]" identifier = (cast_expression "(int *)param_4[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) ;)) (expression_statement "param_5 = *local_2c;" (assignment_expression "param_5 = *local_2c" identifier = (pointer_expression "*local_2c" * identifier)) ;) (goto_statement "goto LAB_0001d36b;" goto statement_identifier ;)) (case_statement "default:\n                    \n          abort();" default : (expression_statement "abort();" (call_expression "abort()" identifier (argument_list "()" ( ))) ;)) }))) (labeled_statement "LAB_0001d9c6:\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();" statement_identifier : (expression_statement "uVar4 = (*UNRECOVERED_JUMPTABLE_00)();" (assignment_expression "uVar4 = (*UNRECOVERED_JUMPTABLE_00)()" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE_00)()" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE_00)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE_00" * identifier) )) (argument_list "()" ( )))) ;)) (return_statement "return uVar4;" return identifier ;) }))) (expression_statement "*(undefined4 *)(param_5 + 8) = *(undefined4 *)(param_1 + 0x18);" (assignment_expression "*(undefined4 *)(param_5 + 8) = *(undefined4 *)(param_1 + 0x18)" (pointer_expression "*(undefined4 *)(param_5 + 8)" * (cast_expression "(undefined4 *)(param_5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 8)" ( (binary_expression "param_5 + 8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x18)" * (cast_expression "(undefined4 *)(param_1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 != 0x16) {\n        if (iVar3 != 0x17) {\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }\n        goto LAB_0001daa0;\n      }" if (parenthesized_expression "(iVar3 != 0x16)" ( (binary_expression "iVar3 != 0x16" identifier != number_literal) )) (compound_statement "{\n        if (iVar3 != 0x17) {\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }\n        goto LAB_0001daa0;\n      }" { (if_statement "if (iVar3 != 0x17) {\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }" if (parenthesized_expression "(iVar3 != 0x17)" ( (binary_expression "iVar3 != 0x17" identifier != number_literal) )) (compound_statement "{\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }" { (if_statement "if (*(int *)(param_5 + 0xc) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }" if (parenthesized_expression "(*(int *)(param_5 + 0xc) != 1)" ( (binary_expression "*(int *)(param_5 + 0xc) != 1" (pointer_expression "*(int *)(param_5 + 0xc)" * (cast_expression "(int *)(param_5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }" { (expression_statement "__assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");" (call_expression "__assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type")" identifier (argument_list "("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type")" ( (string_literal ""name->kind == DEBUG_OBJECT_TAG"" " string_content ") , (string_literal ""../../binutils/debug.c"" " string_content ") , number_literal , (string_literal ""debug_write_type"" " string_content ") ))) ;) })) (expression_statement "local_30 = *(undefined4 *)(param_5 + 4);" (assignment_expression "local_30 = *(undefined4 *)(param_5 + 4)" identifier = (pointer_expression "*(undefined4 *)(param_5 + 4)" * (cast_expression "(undefined4 *)(param_5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 4)" ( (binary_expression "param_5 + 4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001d329;" goto statement_identifier ;) })) (goto_statement "goto LAB_0001daa0;" goto statement_identifier ;) })) (labeled_statement "LAB_0001d388:\n      param_5 = 0;" statement_identifier : (expression_statement "param_5 = 0;" (assignment_expression "param_5 = 0" identifier = number_literal) ;)) })) (expression_statement "local_2c = (int *)param_4[3];" (assignment_expression "local_2c = (int *)param_4[3]" identifier = (cast_expression "(int *)param_4[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) ;) (if_statement "if (*(int *)(*local_2c + 8) == *(int *)(param_1 + 0x18)) {\n      if (iVar3 == 0x16) {\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n        goto LAB_0001d9c6;\n      }\nLAB_0001db7f:\n      piVar2 = (int *)FUN_0001c820();\n      if (piVar2 != (int *)0x0) {\n        iVar3 = *piVar2;\n        uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n        if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }\n        else {\n          uVar5 = 0;\n        }\n        uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);\n        return uVar4;\n      }\n      goto LAB_0001d6c3;\n    }" if (parenthesized_expression "(*(int *)(*local_2c + 8) == *(int *)(param_1 + 0x18))" ( (binary_expression "*(int *)(*local_2c + 8) == *(int *)(param_1 + 0x18)" (pointer_expression "*(int *)(*local_2c + 8)" * (cast_expression "(int *)(*local_2c + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_2c + 8)" ( (binary_expression "*local_2c + 8" (pointer_expression "*local_2c" * identifier) + number_literal) )))) == (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      if (iVar3 == 0x16) {\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n        goto LAB_0001d9c6;\n      }\nLAB_0001db7f:\n      piVar2 = (int *)FUN_0001c820();\n      if (piVar2 != (int *)0x0) {\n        iVar3 = *piVar2;\n        uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n        if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }\n        else {\n          uVar5 = 0;\n        }\n        uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);\n        return uVar4;\n      }\n      goto LAB_0001d6c3;\n    }" { (if_statement "if (iVar3 == 0x16) {\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n        goto LAB_0001d9c6;\n      }" if (parenthesized_expression "(iVar3 == 0x16)" ( (binary_expression "iVar3 == 0x16" identifier == number_literal) )) (compound_statement "{\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n        goto LAB_0001d9c6;\n      }" { (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78)" identifier = (pointer_expression "*(code **)(param_2 + 0x78)" * (cast_expression "(code **)(param_2 + 0x78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x78)" ( (binary_expression "param_2 + 0x78" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001d9c6;" goto statement_identifier ;) })) (labeled_statement "LAB_0001db7f:\n      piVar2 = (int *)FUN_0001c820();" statement_identifier : (expression_statement "piVar2 = (int *)FUN_0001c820();" (assignment_expression "piVar2 = (int *)FUN_0001c820()" identifier = (cast_expression "(int *)FUN_0001c820()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001c820()" identifier (argument_list "()" ( ))))) ;)) (if_statement "if (piVar2 != (int *)0x0) {\n        iVar3 = *piVar2;\n        uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n        if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }\n        else {\n          uVar5 = 0;\n        }\n        uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);\n        return uVar4;\n      }" if (parenthesized_expression "(piVar2 != (int *)0x0)" ( (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar3 = *piVar2;\n        uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n        if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }\n        else {\n          uVar5 = 0;\n        }\n        uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);\n        return uVar4;\n      }" { (expression_statement "iVar3 = *piVar2;" (assignment_expression "iVar3 = *piVar2" identifier = (pointer_expression "*piVar2" * identifier)) ;) (expression_statement "uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);" (assignment_expression "uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4)" identifier = (pointer_expression "*(undefined4 *)(*(int *)param_4[3] + 4)" * (cast_expression "(undefined4 *)(*(int *)param_4[3] + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_4[3] + 4)" ( (binary_expression "*(int *)param_4[3] + 4" (pointer_expression "*(int *)param_4[3]" * (cast_expression "(int *)param_4[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) + number_literal) ))))) ;) (if_statement "if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }\n        else {\n          uVar5 = 0;\n        }" if (parenthesized_expression "((iVar3 - 7U < 4) && (piVar2[3] != 0))" ( (binary_expression "(iVar3 - 7U < 4) && (piVar2[3] != 0)" (parenthesized_expression "(iVar3 - 7U < 4)" ( (binary_expression "iVar3 - 7U < 4" (binary_expression "iVar3 - 7U" identifier - number_literal) < number_literal) )) && (parenthesized_expression "(piVar2[3] != 0)" ( (binary_expression "piVar2[3] != 0" (subscript_expression "piVar2[3]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }" { (expression_statement "uVar5 = *(uint *)(piVar2[3] + 8);" (assignment_expression "uVar5 = *(uint *)(piVar2[3] + 8)" identifier = (pointer_expression "*(uint *)(piVar2[3] + 8)" * (cast_expression "(uint *)(piVar2[3] + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar2[3] + 8)" ( (binary_expression "piVar2[3] + 8" (subscript_expression "piVar2[3]" identifier [ number_literal ]) + number_literal) ))))) ;) (if_statement "if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }" if (parenthesized_expression "(uVar5 <= *(uint *)(param_1 + 0x20))" ( (binary_expression "uVar5 <= *(uint *)(param_1 + 0x20)" identifier <= (pointer_expression "*(uint *)(param_1 + 0x20)" * (cast_expression "(uint *)(param_1 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) )) (compound_statement "{\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }" { (expression_statement "iVar3 = FUN_0001d1a0();" (assignment_expression "iVar3 = FUN_0001d1a0()" identifier = (call_expression "FUN_0001d1a0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0) {\n              return 0;\n            }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar5 = *(uint *)(piVar2[3] + 8);" (assignment_expression "uVar5 = *(uint *)(piVar2[3] + 8)" identifier = (pointer_expression "*(uint *)(piVar2[3] + 8)" * (cast_expression "(uint *)(piVar2[3] + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar2[3] + 8)" ( (binary_expression "piVar2[3] + 8" (subscript_expression "piVar2[3]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "iVar3 = *piVar2;" (assignment_expression "iVar3 = *piVar2" identifier = (pointer_expression "*piVar2" * identifier)) ;) (expression_statement "uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);" (assignment_expression "uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4)" identifier = (pointer_expression "*(undefined4 *)(*(int *)param_4[3] + 4)" * (cast_expression "(undefined4 *)(*(int *)param_4[3] + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_4[3] + 4)" ( (binary_expression "*(int *)param_4[3] + 4" (pointer_expression "*(int *)param_4[3]" * (cast_expression "(int *)param_4[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) + number_literal) ))))) ;) })) }) (else_clause "else {\n          uVar5 = 0;\n        }" else (compound_statement "{\n          uVar5 = 0;\n        }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }))) (expression_statement "uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3)" identifier = (call_expression "(**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3)" (parenthesized_expression "(**(code **)(param_2 + 0x7c))" ( (pointer_expression "**(code **)(param_2 + 0x7c)" * (pointer_expression "*(code **)(param_2 + 0x7c)" * (cast_expression "(code **)(param_2 + 0x7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x7c)" ( (binary_expression "param_2 + 0x7c" identifier + number_literal) ))))) )) (argument_list "(param_3,uVar4,uVar5,iVar3)" ( identifier , identifier , identifier , identifier )))) ;) (return_statement "return uVar4;" return identifier ;) })) (goto_statement "goto LAB_0001d6c3;" goto statement_identifier ;) })) (if_statement "if (iVar3 != 0x17) goto LAB_0001d300;" if (parenthesized_expression "(iVar3 != 0x17)" ( (binary_expression "iVar3 != 0x17" identifier != number_literal) )) (goto_statement "goto LAB_0001d300;" goto statement_identifier ;)) (if_statement "if (*local_2c != param_5) goto LAB_0001db7f;" if (parenthesized_expression "(*local_2c != param_5)" ( (binary_expression "*local_2c != param_5" (pointer_expression "*local_2c" * identifier) != identifier) )) (goto_statement "goto LAB_0001db7f;" goto statement_identifier ;)) (expression_statement "*(int *)(param_5 + 8) = *(int *)(param_1 + 0x18);" (assignment_expression "*(int *)(param_5 + 8) = *(int *)(param_1 + 0x18)" (pointer_expression "*(int *)(param_5 + 8)" * (cast_expression "(int *)(param_5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 8)" ( (binary_expression "param_5 + 8" identifier + number_literal) )))) = (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) ))))) ;) (labeled_statement "LAB_0001d36b:\n    param_4 = (int *)local_2c[1];" statement_identifier : (expression_statement "param_4 = (int *)local_2c[1];" (assignment_expression "param_4 = (int *)local_2c[1]" identifier = (cast_expression "(int *)local_2c[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_2c[1]" identifier [ number_literal ]))) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) (labeled_statement "code_r0x0001d6b0:\n  param_4 = (int *)**(undefined4 **)param_4[3];" statement_identifier : (expression_statement "param_4 = (int *)**(undefined4 **)param_4[3];" (assignment_expression "param_4 = (int *)**(undefined4 **)param_4[3]" identifier = (cast_expression "(int *)**(undefined4 **)param_4[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)param_4[3]" * (pointer_expression "*(undefined4 **)param_4[3]" * (cast_expression "(undefined4 **)param_4[3]" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "param_4[3]" identifier [ number_literal ])))))) ;)) (if_statement "if (param_4 == (int *)0x0) {\nLAB_0001d6c3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 8);\nLAB_0001d69f:\n                    \n                    \n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n    return uVar4;\n  }" if (parenthesized_expression "(param_4 == (int *)0x0)" ( (binary_expression "param_4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0001d6c3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 8);\nLAB_0001d69f:\n                    \n                    \n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n    return uVar4;\n  }" { (labeled_statement "LAB_0001d6c3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 8);" statement_identifier : (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 8);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 8)" identifier = (pointer_expression "*(code **)(param_2 + 8)" * (cast_expression "(code **)(param_2 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0001d69f:\n                    \n                    \n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)();" statement_identifier : (expression_statement "uVar4 = (*UNRECOVERED_JUMPTABLE_00)();" (assignment_expression "uVar4 = (*UNRECOVERED_JUMPTABLE_00)()" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE_00)()" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE_00)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE_00" * identifier) )) (argument_list "()" ( )))) ;)) (return_statement "return uVar4;" return identifier ;) })) (goto_statement "goto LAB_0001d2f6;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (for_statement for ( ; (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (binary_expression LIT < (binary_expression IDENT - LIT))) ; (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) , (string_literal " string_content escape_sequence ") , IDENT ))) ;) (return_statement return LIT ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case 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) ))))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) )))) ;) (return_statement return IDENT ;)) (case_statement case 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) ))))) ;) (break_statement break ;)) (case_statement case 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) ))))) ;) (break_statement break ;)) (case_statement case 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) ))))) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case 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 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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , (pointer_expression * IDENT) )))) ;)) (return_statement return IDENT ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression 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) ))))) ;) (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 = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , IDENT , IDENT ))) ;)) })) (goto_statement goto statement_identifier ;) })) }))) (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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , (binary_expression IDENT == LIT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ])))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (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 *)) ) (subscript_expression IDENT [ LIT ]))) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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) ))))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;)) (return_statement return IDENT ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) )) (compound_statement { (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 = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) || (parenthesized_expression ( (unary_expression ! IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }))) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , (binary_expression IDENT == LIT) , (subscript_expression IDENT [ LIT ]) , IDENT , (binary_expression IDENT == IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT)))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 (pointer_expression * IDENT) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ])))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 (subscript_expression IDENT [ LIT ]) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ])))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (for_statement for ( (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ])))) ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , LIT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) + (binary_expression IDENT * LIT)) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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) ))))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , LIT , LIT )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) )))) ;) (return_statement return IDENT ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return 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) ))))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = 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) )))))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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 = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (return_statement return IDENT ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return 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) ))))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) )))) ;) (return_statement return IDENT ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (return_statement return IDENT ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return 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) ))))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return 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) ))))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = 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) )))))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (subscript_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 = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression IDENT != LIT) , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (return_statement return IDENT ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return 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) ))))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return 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) ))))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;)) (case_statement default : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;)) (return_statement return IDENT ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (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 { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + 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 = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) + LIT) ))))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (return_statement return IDENT ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;)) }) while (parenthesized_expression ( BOOL )) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ])))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;)) (return_statement return IDENT ;) })) (goto_statement goto statement_identifier ;) })))
(function_definition "undefined4 __regparm3\nFUN_0001d2d0(int param_1,int param_2,undefined4 param_3,int *param_4,int param_5)\n\n{\n  int iVar1;\n  code *UNRECOVERED_JUMPTABLE_00;\n  int *piVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  bool bVar8;\n  char *__function;\n  int *local_34;\n  undefined4 local_30;\n  int *local_2c;\n  undefined4 *puStack_28;\n  int iStack_24;\n  \nLAB_0001d2f6:\n  do {\n    for (; iVar3 = *param_4, 1 < iVar3 - 0x16U; param_4 = *(int **)(param_4[3] + 4)) {\nLAB_0001d300:\n      if (param_5 == 0) {\n        local_30 = 0;\nLAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    \n          abort();\n        }\nLAB_0001d9c6:\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 8) = *(undefined4 *)(param_1 + 0x18);\n      if (iVar3 != 0x16) {\n        if (iVar3 != 0x17) {\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }\n        goto LAB_0001daa0;\n      }\nLAB_0001d388:\n      param_5 = 0;\n    }\n    local_2c = (int *)param_4[3];\n    if (*(int *)(*local_2c + 8) == *(int *)(param_1 + 0x18)) {\n      if (iVar3 == 0x16) {\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n        goto LAB_0001d9c6;\n      }\nLAB_0001db7f:\n      piVar2 = (int *)FUN_0001c820();\n      if (piVar2 != (int *)0x0) {\n        iVar3 = *piVar2;\n        uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n        if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }\n        else {\n          uVar5 = 0;\n        }\n        uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);\n        return uVar4;\n      }\n      goto LAB_0001d6c3;\n    }\n    if (iVar3 != 0x17) goto LAB_0001d300;\n    if (*local_2c != param_5) goto LAB_0001db7f;\n    *(int *)(param_5 + 8) = *(int *)(param_1 + 0x18);\nLAB_0001d36b:\n    param_4 = (int *)local_2c[1];\n  } while( true );\ncode_r0x0001d6b0:\n  param_4 = (int *)**(undefined4 **)param_4[3];\n  if (param_4 == (int *)0x0) {\nLAB_0001d6c3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 8);\nLAB_0001d69f:\n                    \n                    \n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n    return uVar4;\n  }\n  goto LAB_0001d2f6;\n}" (type_identifier "undefined4") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0001d2d0(int param_1,int param_2,undefined4 param_3,int *param_4,int param_5)" (identifier "FUN_0001d2d0") (parameter_list "(int param_1,int param_2,undefined4 param_3,int *param_4,int param_5)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "int *param_4" (primitive_type "int") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) () ")"))) (compound_statement "{\n  int iVar1;\n  code *UNRECOVERED_JUMPTABLE_00;\n  int *piVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  bool bVar8;\n  char *__function;\n  int *local_34;\n  undefined4 local_30;\n  int *local_2c;\n  undefined4 *puStack_28;\n  int iStack_24;\n  \nLAB_0001d2f6:\n  do {\n    for (; iVar3 = *param_4, 1 < iVar3 - 0x16U; param_4 = *(int **)(param_4[3] + 4)) {\nLAB_0001d300:\n      if (param_5 == 0) {\n        local_30 = 0;\nLAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    \n          abort();\n        }\nLAB_0001d9c6:\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 8) = *(undefined4 *)(param_1 + 0x18);\n      if (iVar3 != 0x16) {\n        if (iVar3 != 0x17) {\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }\n        goto LAB_0001daa0;\n      }\nLAB_0001d388:\n      param_5 = 0;\n    }\n    local_2c = (int *)param_4[3];\n    if (*(int *)(*local_2c + 8) == *(int *)(param_1 + 0x18)) {\n      if (iVar3 == 0x16) {\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n        goto LAB_0001d9c6;\n      }\nLAB_0001db7f:\n      piVar2 = (int *)FUN_0001c820();\n      if (piVar2 != (int *)0x0) {\n        iVar3 = *piVar2;\n        uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n        if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }\n        else {\n          uVar5 = 0;\n        }\n        uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);\n        return uVar4;\n      }\n      goto LAB_0001d6c3;\n    }\n    if (iVar3 != 0x17) goto LAB_0001d300;\n    if (*local_2c != param_5) goto LAB_0001db7f;\n    *(int *)(param_5 + 8) = *(int *)(param_1 + 0x18);\nLAB_0001d36b:\n    param_4 = (int *)local_2c[1];\n  } while( true );\ncode_r0x0001d6b0:\n  param_4 = (int *)**(undefined4 **)param_4[3];\n  if (param_4 == (int *)0x0) {\nLAB_0001d6c3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 8);\nLAB_0001d69f:\n                    \n                    \n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n    return uVar4;\n  }\n  goto LAB_0001d2f6;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "code *UNRECOVERED_JUMPTABLE_00;" (type_identifier "code") (pointer_declarator "*UNRECOVERED_JUMPTABLE_00" (* "*") (identifier "UNRECOVERED_JUMPTABLE_00")) (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "bool bVar8;" (primitive_type "bool") (identifier "bVar8") (; ";")) (declaration "char *__function;" (primitive_type "char") (pointer_declarator "*__function" (* "*") (identifier "__function")) (; ";")) (declaration "int *local_34;" (primitive_type "int") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "int *local_2c;" (primitive_type "int") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (declaration "undefined4 *puStack_28;" (type_identifier "undefined4") (pointer_declarator "*puStack_28" (* "*") (identifier "puStack_28")) (; ";")) (declaration "int iStack_24;" (primitive_type "int") (identifier "iStack_24") (; ";")) (labeled_statement "LAB_0001d2f6:\n  do {\n    for (; iVar3 = *param_4, 1 < iVar3 - 0x16U; param_4 = *(int **)(param_4[3] + 4)) {\nLAB_0001d300:\n      if (param_5 == 0) {\n        local_30 = 0;\nLAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    \n          abort();\n        }\nLAB_0001d9c6:\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 8) = *(undefined4 *)(param_1 + 0x18);\n      if (iVar3 != 0x16) {\n        if (iVar3 != 0x17) {\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }\n        goto LAB_0001daa0;\n      }\nLAB_0001d388:\n      param_5 = 0;\n    }\n    local_2c = (int *)param_4[3];\n    if (*(int *)(*local_2c + 8) == *(int *)(param_1 + 0x18)) {\n      if (iVar3 == 0x16) {\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n        goto LAB_0001d9c6;\n      }\nLAB_0001db7f:\n      piVar2 = (int *)FUN_0001c820();\n      if (piVar2 != (int *)0x0) {\n        iVar3 = *piVar2;\n        uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n        if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }\n        else {\n          uVar5 = 0;\n        }\n        uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);\n        return uVar4;\n      }\n      goto LAB_0001d6c3;\n    }\n    if (iVar3 != 0x17) goto LAB_0001d300;\n    if (*local_2c != param_5) goto LAB_0001db7f;\n    *(int *)(param_5 + 8) = *(int *)(param_1 + 0x18);\nLAB_0001d36b:\n    param_4 = (int *)local_2c[1];\n  } while( true );" (statement_identifier "LAB_0001d2f6") (: ":") (do_statement "do {\n    for (; iVar3 = *param_4, 1 < iVar3 - 0x16U; param_4 = *(int **)(param_4[3] + 4)) {\nLAB_0001d300:\n      if (param_5 == 0) {\n        local_30 = 0;\nLAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    \n          abort();\n        }\nLAB_0001d9c6:\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 8) = *(undefined4 *)(param_1 + 0x18);\n      if (iVar3 != 0x16) {\n        if (iVar3 != 0x17) {\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }\n        goto LAB_0001daa0;\n      }\nLAB_0001d388:\n      param_5 = 0;\n    }\n    local_2c = (int *)param_4[3];\n    if (*(int *)(*local_2c + 8) == *(int *)(param_1 + 0x18)) {\n      if (iVar3 == 0x16) {\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n        goto LAB_0001d9c6;\n      }\nLAB_0001db7f:\n      piVar2 = (int *)FUN_0001c820();\n      if (piVar2 != (int *)0x0) {\n        iVar3 = *piVar2;\n        uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n        if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }\n        else {\n          uVar5 = 0;\n        }\n        uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);\n        return uVar4;\n      }\n      goto LAB_0001d6c3;\n    }\n    if (iVar3 != 0x17) goto LAB_0001d300;\n    if (*local_2c != param_5) goto LAB_0001db7f;\n    *(int *)(param_5 + 8) = *(int *)(param_1 + 0x18);\nLAB_0001d36b:\n    param_4 = (int *)local_2c[1];\n  } while( true );" (do "do") (compound_statement "{\n    for (; iVar3 = *param_4, 1 < iVar3 - 0x16U; param_4 = *(int **)(param_4[3] + 4)) {\nLAB_0001d300:\n      if (param_5 == 0) {\n        local_30 = 0;\nLAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    \n          abort();\n        }\nLAB_0001d9c6:\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 8) = *(undefined4 *)(param_1 + 0x18);\n      if (iVar3 != 0x16) {\n        if (iVar3 != 0x17) {\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }\n        goto LAB_0001daa0;\n      }\nLAB_0001d388:\n      param_5 = 0;\n    }\n    local_2c = (int *)param_4[3];\n    if (*(int *)(*local_2c + 8) == *(int *)(param_1 + 0x18)) {\n      if (iVar3 == 0x16) {\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n        goto LAB_0001d9c6;\n      }\nLAB_0001db7f:\n      piVar2 = (int *)FUN_0001c820();\n      if (piVar2 != (int *)0x0) {\n        iVar3 = *piVar2;\n        uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n        if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }\n        else {\n          uVar5 = 0;\n        }\n        uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);\n        return uVar4;\n      }\n      goto LAB_0001d6c3;\n    }\n    if (iVar3 != 0x17) goto LAB_0001d300;\n    if (*local_2c != param_5) goto LAB_0001db7f;\n    *(int *)(param_5 + 8) = *(int *)(param_1 + 0x18);\nLAB_0001d36b:\n    param_4 = (int *)local_2c[1];\n  }" ({ "{") (for_statement "for (; iVar3 = *param_4, 1 < iVar3 - 0x16U; param_4 = *(int **)(param_4[3] + 4)) {\nLAB_0001d300:\n      if (param_5 == 0) {\n        local_30 = 0;\nLAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    \n          abort();\n        }\nLAB_0001d9c6:\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 8) = *(undefined4 *)(param_1 + 0x18);\n      if (iVar3 != 0x16) {\n        if (iVar3 != 0x17) {\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }\n        goto LAB_0001daa0;\n      }\nLAB_0001d388:\n      param_5 = 0;\n    }" (for "for") (( "(") (; ";") (comma_expression "iVar3 = *param_4, 1 < iVar3 - 0x16U" (assignment_expression "iVar3 = *param_4" (identifier "iVar3") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (, ",") (binary_expression "1 < iVar3 - 0x16U" (number_literal "1") (< "<") (binary_expression "iVar3 - 0x16U" (identifier "iVar3") (- "-") (number_literal "0x16U")))) (; ";") (assignment_expression "param_4 = *(int **)(param_4[3] + 4)" (identifier "param_4") (= "=") (pointer_expression "*(int **)(param_4[3] + 4)" (* "*") (cast_expression "(int **)(param_4[3] + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_4[3] + 4)" (( "(") (binary_expression "param_4[3] + 4" (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")) (+ "+") (number_literal "4")) () ")"))))) () ")") (compound_statement "{\nLAB_0001d300:\n      if (param_5 == 0) {\n        local_30 = 0;\nLAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    \n          abort();\n        }\nLAB_0001d9c6:\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 8) = *(undefined4 *)(param_1 + 0x18);\n      if (iVar3 != 0x16) {\n        if (iVar3 != 0x17) {\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }\n        goto LAB_0001daa0;\n      }\nLAB_0001d388:\n      param_5 = 0;\n    }" ({ "{") (labeled_statement "LAB_0001d300:\n      if (param_5 == 0) {\n        local_30 = 0;\nLAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    \n          abort();\n        }\nLAB_0001d9c6:\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n        return uVar4;\n      }" (statement_identifier "LAB_0001d300") (: ":") (if_statement "if (param_5 == 0) {\n        local_30 = 0;\nLAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    \n          abort();\n        }\nLAB_0001d9c6:\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n        return uVar4;\n      }" (if "if") (parenthesized_expression "(param_5 == 0)" (( "(") (binary_expression "param_5 == 0" (identifier "param_5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        local_30 = 0;\nLAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    \n          abort();\n        }\nLAB_0001d9c6:\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n        return uVar4;\n      }" ({ "{") (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0001d329:\n        switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    \n          abort();\n        }" (statement_identifier "LAB_0001d329") (: ":") (switch_statement "switch(iVar3) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    \n          abort();\n        }" (switch "switch") (parenthesized_expression "(iVar3)" (( "(") (identifier "iVar3") () ")")) (compound_statement "{\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto code_r0x0001d6b0;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;\n        case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;\n        case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;\n        case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;\n        case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;\n        case 7:\n        case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;\n        case 9:\n        case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;\n        case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;\n        case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;\n        case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;\n        case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;\n        case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;\n        case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;\n        case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;\n        case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;\n        case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;\n        case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;\n        case 0x16:\n          goto LAB_0001d388;\n        case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;\n        default:\n                    \n          abort();\n        }" ({ "{") (case_statement "case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);\n          return 0;" (case "case") (number_literal "0") (: ":") (expression_statement "uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);" (assignment_expression "uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"debug_write_type: illegal type encountered",5)" (identifier "dcgettext") (argument_list "(0,"debug_write_type: illegal type encountered",5)" (( "(") (number_literal "0") (, ",") (string_literal ""debug_write_type: illegal type encountered"" (" """) (string_content "debug_write_type: illegal type encountered") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);" (call_expression "fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4)" (identifier "fprintf") (argument_list "(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4)" (( "(") (pointer_expression "*(FILE **)PTR_stderr_0003efa8" (* "*") (cast_expression "(FILE **)PTR_stderr_0003efa8" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_stderr_0003efa8"))) (, ",") (string_literal ""%s\n"" (" """) (string_content "%s") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar4") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";"))) (case_statement "case 1:\n          goto code_r0x0001d6b0;" (case "case") (number_literal "1") (: ":") (goto_statement "goto code_r0x0001d6b0;" (goto "goto") (statement_identifier "code_r0x0001d6b0") (; ";"))) (case_statement "case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);\n          goto LAB_0001d69f;" (case "case") (number_literal "2") (: ":") (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc)" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (pointer_expression "*(code **)(param_2 + 0xc)" (* "*") (cast_expression "(code **)(param_2 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (goto_statement "goto LAB_0001d69f;" (goto "goto") (statement_identifier "LAB_0001d69f") (; ";"))) (case_statement "case 3:\n          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);\n          return uVar4;" (case "case") (number_literal "3") (: ":") (expression_statement "uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3])" (identifier "uVar4") (= "=") (call_expression "(**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3])" (parenthesized_expression "(**(code **)(param_2 + 0x10))" (( "(") (pointer_expression "**(code **)(param_2 + 0x10)" (* "*") (pointer_expression "*(code **)(param_2 + 0x10)" (* "*") (cast_expression "(code **)(param_2 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (argument_list "(param_3,param_4[1],param_4[3])" (( "(") (identifier "param_3") (, ",") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]")) (, ",") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")) () ")")))) (; ";")) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";"))) (case_statement "case 4:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);\n          break;" (case "case") (number_literal "4") (: ":") (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14)" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (pointer_expression "*(code **)(param_2 + 0x14)" (* "*") (cast_expression "(code **)(param_2 + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x14)" (( "(") (binary_expression "param_2 + 0x14" (identifier "param_2") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 5:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          break;" (case "case") (number_literal "5") (: ":") (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18)" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (pointer_expression "*(code **)(param_2 + 0x18)" (* "*") (cast_expression "(code **)(param_2 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 6:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);\n          break;" (case "case") (number_literal "6") (: ":") (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c)" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (pointer_expression "*(code **)(param_2 + 0x1c)" (* "*") (cast_expression "(code **)(param_2 + 0x1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x1c)" (( "(") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 7:" (case "case") (number_literal "7") (: ":")) (case_statement "case 8:\n          iVar6 = param_4[3];\n          if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }\n          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);\n          goto LAB_0001d69f;" (case "case") (number_literal "8") (: ":") (expression_statement "iVar6 = param_4[3];" (assignment_expression "iVar6 = param_4[3]" (identifier "iVar6") (= "=") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]"))) (; ";")) (if_statement "if (iVar6 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }\n          else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            uVar4 = 0;\n          }" ({ "{") (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c)" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (pointer_expression "*(code **)(param_2 + 0x4c)" (* "*") (cast_expression "(code **)(param_2 + 0x4c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x4c)" (( "(") (binary_expression "param_2 + 0x4c" (identifier "param_2") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (expression_statement "iVar1 = param_4[1];" (assignment_expression "iVar1 = param_4[1]" (identifier "iVar1") (= "=") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }" (else "else") (compound_statement "{\n            uVar5 = *(uint *)(iVar6 + 8);\n            if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);\n            iVar1 = param_4[1];\n            *(int *)(iVar6 + 4) = iVar3;\n            uVar4 = *(undefined4 *)(iVar6 + 8);\n            iVar3 = *param_4;\n          }" ({ "{") (expression_statement "uVar5 = *(uint *)(iVar6 + 8);" (assignment_expression "uVar5 = *(uint *)(iVar6 + 8)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)(iVar6 + 8)" (* "*") (cast_expression "(uint *)(iVar6 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 8)" (( "(") (binary_expression "iVar6 + 8" (identifier "iVar6") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (*(uint *)(param_1 + 0x20) < uVar5) {\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }" (if "if") (parenthesized_expression "(*(uint *)(param_1 + 0x20) < uVar5)" (( "(") (binary_expression "*(uint *)(param_1 + 0x20) < uVar5" (pointer_expression "*(uint *)(param_1 + 0x20)" (* "*") (cast_expression "(uint *)(param_1 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (< "<") (identifier "uVar5")) () ")")) (compound_statement "{\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }\n            }" ({ "{") (expression_statement "iVar3 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x18)" (identifier "iVar3") (= "=") (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")) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar6 + 4) == iVar3) {\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }" (if "if") (parenthesized_expression "(*(int *)(iVar6 + 4) == iVar3)" (( "(") (binary_expression "*(int *)(iVar6 + 4) == iVar3" (pointer_expression "*(int *)(iVar6 + 4)" (* "*") (cast_expression "(int *)(iVar6 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 4)" (( "(") (binary_expression "iVar6 + 4" (identifier "iVar6") (+ "+") (number_literal "4")) () ")")))) (== "==") (identifier "iVar3")) () ")")) (compound_statement "{\ncode_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);\n                return uVar4;\n              }" ({ "{") (labeled_statement "code_r0x0001db48:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);" (statement_identifier "code_r0x0001db48") (: ":") (expression_statement "uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4)" (identifier "uVar4") (= "=") (call_expression "(**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4)" (parenthesized_expression "(**(code **)(param_2 + 0x7c))" (( "(") (pointer_expression "**(code **)(param_2 + 0x7c)" (* "*") (pointer_expression "*(code **)(param_2 + 0x7c)" (* "*") (cast_expression "(code **)(param_2 + 0x7c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x7c)" (( "(") (binary_expression "param_2 + 0x7c" (identifier "param_2") (+ "+") (number_literal "0x7c")) () ")"))))) () ")")) (argument_list "(param_3,local_30,uVar5,*param_4)" (( "(") (identifier "param_3") (, ",") (identifier "local_30") (, ",") (identifier "uVar5") (, ",") (pointer_expression "*param_4" (* "*") (identifier "param_4")) () ")")))) (; ";"))) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }" (else "else") (compound_statement "{\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar6 = param_4[3];\n              iVar3 = *(int *)(param_1 + 0x18);\n              if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }\n            }" ({ "{") (expression_statement "iVar3 = FUN_0001d1a0();" (assignment_expression "iVar3 = FUN_0001d1a0()" (identifier "iVar3") (= "=") (call_expression "FUN_0001d1a0()" (identifier "FUN_0001d1a0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n                return 0;\n              }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                return 0;\n              }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar6 = param_4[3];" (assignment_expression "iVar6 = param_4[3]" (identifier "iVar6") (= "=") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "iVar3 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x18)" (identifier "iVar3") (= "=") (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")) () ")"))))) (; ";")) (if_statement "if (iVar3 == *(int *)(iVar6 + 4)) {\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }" (if "if") (parenthesized_expression "(iVar3 == *(int *)(iVar6 + 4))" (( "(") (binary_expression "iVar3 == *(int *)(iVar6 + 4)" (identifier "iVar3") (== "==") (pointer_expression "*(int *)(iVar6 + 4)" (* "*") (cast_expression "(int *)(iVar6 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 4)" (( "(") (binary_expression "iVar6 + 4" (identifier "iVar6") (+ "+") (number_literal "4")) () ")"))))) () ")")) (compound_statement "{\n                uVar5 = *(uint *)(iVar6 + 8);\n                if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }\n                goto code_r0x0001db48;\n              }" ({ "{") (expression_statement "uVar5 = *(uint *)(iVar6 + 8);" (assignment_expression "uVar5 = *(uint *)(iVar6 + 8)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)(iVar6 + 8)" (* "*") (cast_expression "(uint *)(iVar6 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 8)" (( "(") (binary_expression "iVar6 + 8" (identifier "iVar6") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }" (if "if") (parenthesized_expression "(uVar5 <= *(uint *)(param_1 + 0x20))" (( "(") (binary_expression "uVar5 <= *(uint *)(param_1 + 0x20)" (identifier "uVar5") (<= "<=") (pointer_expression "*(uint *)(param_1 + 0x20)" (* "*") (cast_expression "(uint *)(param_1 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) () ")")) (compound_statement "{\n                  __function = "debug_write_type";\n                  uVar5 = 0x9d1;\ncode_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);\n                }" ({ "{") (expression_statement "__function = "debug_write_type";" (assignment_expression "__function = "debug_write_type"" (identifier "__function") (= "=") (string_literal ""debug_write_type"" (" """) (string_content "debug_write_type") (" """))) (; ";")) (expression_statement "uVar5 = 0x9d1;" (assignment_expression "uVar5 = 0x9d1" (identifier "uVar5") (= "=") (number_literal "0x9d1")) (; ";")) (labeled_statement "code_r0x0001de3e:\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);" (statement_identifier "code_r0x0001de3e") (: ":") (expression_statement "__assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function);" (call_expression "__assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function)" (identifier "__assert_fail") (argument_list "("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,\n                                __function)" (( "(") (string_literal ""type->u.kclass->id > info->base_id"" (" """) (string_content "type->u.kclass->id > info->base_id") (" """)) (, ",") (string_literal ""../../binutils/debug.c"" (" """) (string_content "../../binutils/debug.c") (" """)) (, ",") (identifier "uVar5") (, ",") (identifier "__function") () ")"))) (; ";"))) (} "}"))) (goto_statement "goto code_r0x0001db48;" (goto "goto") (statement_identifier "code_r0x0001db48") (; ";")) (} "}"))) (} "}")))) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c)" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (pointer_expression "*(code **)(param_2 + 0x4c)" (* "*") (cast_expression "(code **)(param_2 + 0x4c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x4c)" (( "(") (binary_expression "param_2 + 0x4c" (identifier "param_2") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (expression_statement "iVar1 = param_4[1];" (assignment_expression "iVar1 = param_4[1]" (identifier "iVar1") (= "=") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(int *)(iVar6 + 4) = iVar3;" (assignment_expression "*(int *)(iVar6 + 4) = iVar3" (pointer_expression "*(int *)(iVar6 + 4)" (* "*") (cast_expression "(int *)(iVar6 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 4)" (( "(") (binary_expression "iVar6 + 4" (identifier "iVar6") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "uVar4 = *(undefined4 *)(iVar6 + 8);" (assignment_expression "uVar4 = *(undefined4 *)(iVar6 + 8)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)(iVar6 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 8)" (( "(") (binary_expression "iVar6 + 8" (identifier "iVar6") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iVar3 = *param_4;" (assignment_expression "iVar3 = *param_4" (identifier "iVar3") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (} "}")))) (expression_statement "iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);" (assignment_expression "iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1)" (identifier "iVar3") (= "=") (call_expression "(*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE_00)" (( "(") (pointer_expression "*UNRECOVERED_JUMPTABLE_00" (* "*") (identifier "UNRECOVERED_JUMPTABLE_00")) () ")")) (argument_list "(param_3,local_30,uVar4,iVar3 == 7,iVar1)" (( "(") (identifier "param_3") (, ",") (identifier "local_30") (, ",") (identifier "uVar4") (, ",") (binary_expression "iVar3 == 7" (identifier "iVar3") (== "==") (number_literal "7")) (, ",") (identifier "iVar1") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if ((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }" (if "if") (parenthesized_expression "((((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0))" (( "(") (binary_expression "(((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&\n             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)" (parenthesized_expression "(((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0))" (( "(") (binary_expression "((int *)param_4[3] != (int *)0x0) &&\n              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)" (parenthesized_expression "((int *)param_4[3] != (int *)0x0)" (( "(") (binary_expression "(int *)param_4[3] != (int *)0x0" (cast_expression "(int *)param_4[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]"))) (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)" (( "(") (comma_expression "piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0" (assignment_expression "piVar2 = *(int **)param_4[3]" (identifier "piVar2") (= "=") (pointer_expression "*(int **)param_4[3]" (* "*") (cast_expression "(int **)param_4[3]" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]"))))) (, ",") (binary_expression "piVar2 != (int *)0x0" (identifier "piVar2") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)" (( "(") (comma_expression "puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0" (assignment_expression "puVar7 = (undefined4 *)*piVar2" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)*piVar2" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar2" (* "*") (identifier "piVar2")))) (, ",") (binary_expression "puVar7 != (undefined4 *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n            iVar3 = 4;\n            do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);\n          }" ({ "{") (expression_statement "iVar3 = 4;" (assignment_expression "iVar3 = 4" (identifier "iVar3") (= "=") (number_literal "4")) (; ";")) (do_statement "do {\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            } while (puVar7 != (undefined4 *)0x0);" (do "do") (compound_statement "{\n              iVar6 = FUN_0001d2d0(puVar7[1],0);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n              if (iVar6 == 0) {\n                return 0;\n              }\n              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);\n              iVar3 = iVar3 + 4;\n            }" ({ "{") (expression_statement "iVar6 = FUN_0001d2d0(puVar7[1],0);" (assignment_expression "iVar6 = FUN_0001d2d0(puVar7[1],0)" (identifier "iVar6") (= "=") (call_expression "FUN_0001d2d0(puVar7[1],0)" (identifier "FUN_0001d2d0") (argument_list "(puVar7[1],0)" (( "(") (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n                return 0;\n              }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                return 0;\n              }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);" (assignment_expression "iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2])" (identifier "iVar6") (= "=") (call_expression "(**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2])" (parenthesized_expression "(**(code **)(param_2 + 0x50))" (( "(") (pointer_expression "**(code **)(param_2 + 0x50)" (* "*") (pointer_expression "*(code **)(param_2 + 0x50)" (* "*") (cast_expression "(code **)(param_2 + 0x50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x50)" (( "(") (binary_expression "param_2 + 0x50" (identifier "param_2") (+ "+") (number_literal "0x50")) () ")"))))) () ")")) (argument_list "(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2])" (( "(") (identifier "param_3") (, ",") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (, ",") (subscript_expression "puVar7[4]" (identifier "puVar7") ([ "[") (number_literal "4") (] "]")) (, ",") (subscript_expression "puVar7[5]" (identifier "puVar7") ([ "[") (number_literal "5") (] "]")) (, ",") (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n                return 0;\n              }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                return 0;\n              }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);" (assignment_expression "puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3)" (identifier "puVar7") (= "=") (pointer_expression "*(undefined4 **)(*(int *)param_4[3] + iVar3)" (* "*") (cast_expression "(undefined4 **)(*(int *)param_4[3] + iVar3)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)param_4[3] + iVar3)" (( "(") (binary_expression "*(int *)param_4[3] + iVar3" (pointer_expression "*(int *)param_4[3]" (* "*") (cast_expression "(int *)param_4[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")))) (+ "+") (identifier "iVar3")) () ")"))))) (; ";")) (expression_statement "iVar3 = iVar3 + 4;" (assignment_expression "iVar3 = iVar3 + 4" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar7 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar7 != (undefined4 *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54)" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (pointer_expression "*(code **)(param_2 + 0x54)" (* "*") (cast_expression "(code **)(param_2 + 0x54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x54)" (( "(") (binary_expression "param_2 + 0x54" (identifier "param_2") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (goto_statement "goto LAB_0001d69f;" (goto "goto") (statement_identifier "LAB_0001d69f") (; ";"))) (case_statement "case 9:" (case "case") (number_literal "9") (: ":")) (case_statement "case 10:\n          local_34 = (int *)param_4[3];\n          if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }\n          iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          piVar2 = (int *)param_4[3];\n          if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);\n          goto LAB_0001d69f;" (case "case") (number_literal "10") (: ":") (expression_statement "local_34 = (int *)param_4[3];" (assignment_expression "local_34 = (int *)param_4[3]" (identifier "local_34") (= "=") (cast_expression "(int *)param_4[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")))) (; ";")) (if_statement "if (local_34 == (int *)0x0) {\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }\n          else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }" (if "if") (parenthesized_expression "(local_34 == (int *)0x0)" (( "(") (binary_expression "local_34 == (int *)0x0" (identifier "local_34") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            bVar8 = false;\n            local_2c = (int *)0x0;\n            local_34 = (int *)0x0;\n          }" ({ "{") (expression_statement "bVar8 = false;" (assignment_expression "bVar8 = false" (identifier "bVar8") (= "=") (false "false")) (; ";")) (expression_statement "local_2c = (int *)0x0;" (assignment_expression "local_2c = (int *)0x0" (identifier "local_2c") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_34 = (int *)0x0;" (assignment_expression "local_34 = (int *)0x0" (identifier "local_34") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }" (else "else") (compound_statement "{\n            local_2c = *(int **)((int)local_34 + 8);\n            if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }\n            *(int *)((int)local_34 + 4) = iVar6;\n            local_34 = *(int **)((int)local_34 + 0x14);\n            bVar8 = local_34 != (int *)0x0;\n            if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }\n          }" ({ "{") (expression_statement "local_2c = *(int **)((int)local_34 + 8);" (assignment_expression "local_2c = *(int **)((int)local_34 + 8)" (identifier "local_2c") (= "=") (pointer_expression "*(int **)((int)local_34 + 8)" (* "*") (cast_expression "(int **)((int)local_34 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)local_34 + 8)" (( "(") (binary_expression "(int)local_34 + 8" (cast_expression "(int)local_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_34")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (*(uint *)(param_1 + 0x20) < local_2c) {\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }\n            else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }" (if "if") (parenthesized_expression "(*(uint *)(param_1 + 0x20) < local_2c)" (( "(") (binary_expression "*(uint *)(param_1 + 0x20) < local_2c" (pointer_expression "*(uint *)(param_1 + 0x20)" (* "*") (cast_expression "(uint *)(param_1 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (< "<") (identifier "local_2c")) () ")")) (compound_statement "{\n              iVar6 = *(int *)(param_1 + 0x18);\n              if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }\n            }" ({ "{") (expression_statement "iVar6 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar6 = *(int *)(param_1 + 0x18)" (identifier "iVar6") (= "=") (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")) () ")"))))) (; ";")) (if_statement "if (*(int *)((int)local_34 + 4) == iVar6) {\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }" (if "if") (parenthesized_expression "(*(int *)((int)local_34 + 4) == iVar6)" (( "(") (binary_expression "*(int *)((int)local_34 + 4) == iVar6" (pointer_expression "*(int *)((int)local_34 + 4)" (* "*") (cast_expression "(int *)((int)local_34 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_34 + 4)" (( "(") (binary_expression "(int)local_34 + 4" (cast_expression "(int)local_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_34")) (+ "+") (number_literal "4")) () ")")))) (== "==") (identifier "iVar6")) () ")")) (compound_statement "{\ncode_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);\n                return uVar4;\n              }" ({ "{") (labeled_statement "code_r0x0001dafa:\n                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);" (statement_identifier "code_r0x0001dafa") (: ":") (expression_statement "uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3)" (identifier "uVar4") (= "=") (call_expression "(**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3)" (parenthesized_expression "(**(code **)(param_2 + 0x7c))" (( "(") (pointer_expression "**(code **)(param_2 + 0x7c)" (* "*") (pointer_expression "*(code **)(param_2 + 0x7c)" (* "*") (cast_expression "(code **)(param_2 + 0x7c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x7c)" (( "(") (binary_expression "param_2 + 0x7c" (identifier "param_2") (+ "+") (number_literal "0x7c")) () ")"))))) () ")")) (argument_list "(param_3,local_30,local_2c,iVar3)" (( "(") (identifier "param_3") (, ",") (identifier "local_30") (, ",") (identifier "local_2c") (, ",") (identifier "iVar3") () ")")))) (; ";"))) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }" (else "else") (compound_statement "{\n              iVar3 = FUN_0001d1a0();\n              if (iVar3 == 0) {\n                return 0;\n              }\n              local_34 = (int *)param_4[3];\n              iVar6 = *(int *)(param_1 + 0x18);\n              local_2c = *(int **)((int)local_34 + 8);\n              if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }\n            }" ({ "{") (expression_statement "iVar3 = FUN_0001d1a0();" (assignment_expression "iVar3 = FUN_0001d1a0()" (identifier "iVar3") (= "=") (call_expression "FUN_0001d1a0()" (identifier "FUN_0001d1a0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n                return 0;\n              }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                return 0;\n              }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "local_34 = (int *)param_4[3];" (assignment_expression "local_34 = (int *)param_4[3]" (identifier "local_34") (= "=") (cast_expression "(int *)param_4[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "iVar6 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar6 = *(int *)(param_1 + 0x18)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "local_2c = *(int **)((int)local_34 + 8);" (assignment_expression "local_2c = *(int **)((int)local_34 + 8)" (identifier "local_2c") (= "=") (pointer_expression "*(int **)((int)local_34 + 8)" (* "*") (cast_expression "(int **)((int)local_34 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)local_34 + 8)" (( "(") (binary_expression "(int)local_34 + 8" (cast_expression "(int)local_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_34")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar6 == *(int *)((int)local_34 + 4)) {\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }" (if "if") (parenthesized_expression "(iVar6 == *(int *)((int)local_34 + 4))" (( "(") (binary_expression "iVar6 == *(int *)((int)local_34 + 4)" (identifier "iVar6") (== "==") (pointer_expression "*(int *)((int)local_34 + 4)" (* "*") (cast_expression "(int *)((int)local_34 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_34 + 4)" (( "(") (binary_expression "(int)local_34 + 4" (cast_expression "(int)local_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_34")) (+ "+") (number_literal "4")) () ")"))))) () ")")) (compound_statement "{\n                if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }\n                iVar3 = *param_4;\n                goto code_r0x0001dafa;\n              }" ({ "{") (if_statement "if (local_2c <= *(uint *)(param_1 + 0x20)) {\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }" (if "if") (parenthesized_expression "(local_2c <= *(uint *)(param_1 + 0x20))" (( "(") (binary_expression "local_2c <= *(uint *)(param_1 + 0x20)" (identifier "local_2c") (<= "<=") (pointer_expression "*(uint *)(param_1 + 0x20)" (* "*") (cast_expression "(uint *)(param_1 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) () ")")) (compound_statement "{\n                  __function = "debug_write_class_type";\n                  uVar5 = 0xa7d;\n                  goto code_r0x0001de3e;\n                }" ({ "{") (expression_statement "__function = "debug_write_class_type";" (assignment_expression "__function = "debug_write_class_type"" (identifier "__function") (= "=") (string_literal ""debug_write_class_type"" (" """) (string_content "debug_write_class_type") (" """))) (; ";")) (expression_statement "uVar5 = 0xa7d;" (assignment_expression "uVar5 = 0xa7d" (identifier "uVar5") (= "=") (number_literal "0xa7d")) (; ";")) (goto_statement "goto code_r0x0001de3e;" (goto "goto") (statement_identifier "code_r0x0001de3e") (; ";")) (} "}"))) (expression_statement "iVar3 = *param_4;" (assignment_expression "iVar3 = *param_4" (identifier "iVar3") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (goto_statement "goto code_r0x0001dafa;" (goto "goto") (statement_identifier "code_r0x0001dafa") (; ";")) (} "}"))) (} "}")))) (expression_statement "*(int *)((int)local_34 + 4) = iVar6;" (assignment_expression "*(int *)((int)local_34 + 4) = iVar6" (pointer_expression "*(int *)((int)local_34 + 4)" (* "*") (cast_expression "(int *)((int)local_34 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_34 + 4)" (( "(") (binary_expression "(int)local_34 + 4" (cast_expression "(int)local_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_34")) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "local_34 = *(int **)((int)local_34 + 0x14);" (assignment_expression "local_34 = *(int **)((int)local_34 + 0x14)" (identifier "local_34") (= "=") (pointer_expression "*(int **)((int)local_34 + 0x14)" (* "*") (cast_expression "(int **)((int)local_34 + 0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)local_34 + 0x14)" (( "(") (binary_expression "(int)local_34 + 0x14" (cast_expression "(int)local_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_34")) (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "bVar8 = local_34 != (int *)0x0;" (assignment_expression "bVar8 = local_34 != (int *)0x0" (identifier "bVar8") (= "=") (binary_expression "local_34 != (int *)0x0" (identifier "local_34") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (if_statement "if ((param_4 == local_34) || (!bVar8)) {\n              iVar3 = *param_4;\n            }\n            else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }" (if "if") (parenthesized_expression "((param_4 == local_34) || (!bVar8))" (( "(") (binary_expression "(param_4 == local_34) || (!bVar8)" (parenthesized_expression "(param_4 == local_34)" (( "(") (binary_expression "param_4 == local_34" (identifier "param_4") (== "==") (identifier "local_34")) () ")")) (|| "||") (parenthesized_expression "(!bVar8)" (( "(") (unary_expression "!bVar8" (! "!") (identifier "bVar8")) () ")"))) () ")")) (compound_statement "{\n              iVar3 = *param_4;\n            }" ({ "{") (expression_statement "iVar3 = *param_4;" (assignment_expression "iVar3 = *param_4" (identifier "iVar3") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (} "}")) (else_clause "else {\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }" (else "else") (compound_statement "{\n              iVar3 = FUN_0001d2d0(local_34,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = *param_4;\n              bVar8 = true;\n            }" ({ "{") (expression_statement "iVar3 = FUN_0001d2d0(local_34,0);" (assignment_expression "iVar3 = FUN_0001d2d0(local_34,0)" (identifier "iVar3") (= "=") (call_expression "FUN_0001d2d0(local_34,0)" (identifier "FUN_0001d2d0") (argument_list "(local_34,0)" (( "(") (identifier "local_34") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n                return 0;\n              }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                return 0;\n              }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar3 = *param_4;" (assignment_expression "iVar3 = *param_4" (identifier "iVar3") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (expression_statement "bVar8 = true;" (assignment_expression "bVar8 = true" (identifier "bVar8") (= "=") (true "true")) (; ";")) (} "}")))) (} "}")))) (expression_statement "iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34);" (assignment_expression "iVar3 = (**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(param_2 + 0x58))\n                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34)" (parenthesized_expression "(**(code **)(param_2 + 0x58))" (( "(") (pointer_expression "**(code **)(param_2 + 0x58)" (* "*") (pointer_expression "*(code **)(param_2 + 0x58)" (* "*") (cast_expression "(code **)(param_2 + 0x58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x58)" (( "(") (binary_expression "param_2 + 0x58" (identifier "param_2") (+ "+") (number_literal "0x58")) () ")"))))) () ")")) (argument_list "(param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,\n                             param_4 == local_34)" (( "(") (identifier "param_3") (, ",") (identifier "local_30") (, ",") (identifier "local_2c") (, ",") (binary_expression "iVar3 == 9" (identifier "iVar3") (== "==") (number_literal "9")) (, ",") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]")) (, ",") (identifier "bVar8") (, ",") (binary_expression "param_4 == local_34" (identifier "param_4") (== "==") (identifier "local_34")) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "piVar2 = (int *)param_4[3];" (assignment_expression "piVar2 = (int *)param_4[3]" (identifier "piVar2") (= "=") (cast_expression "(int *)param_4[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")))) (; ";")) (if_statement "if (piVar2 != (int *)0x0) {\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }" (if "if") (parenthesized_expression "(piVar2 != (int *)0x0)" (( "(") (binary_expression "piVar2 != (int *)0x0" (identifier "piVar2") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }\n            if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }\n          }" ({ "{") (if_statement "if (((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }" (if "if") (parenthesized_expression "(((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0))" (( "(") (binary_expression "((int *)*piVar2 != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)" (parenthesized_expression "((int *)*piVar2 != (int *)0x0)" (( "(") (binary_expression "(int *)*piVar2 != (int *)0x0" (cast_expression "(int *)*piVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar2" (* "*") (identifier "piVar2"))) (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)" (( "(") (comma_expression "puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0" (assignment_expression "puVar7 = *(undefined4 **)*piVar2" (identifier "puVar7") (= "=") (pointer_expression "*(undefined4 **)*piVar2" (* "*") (cast_expression "(undefined4 **)*piVar2" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*piVar2" (* "*") (identifier "piVar2"))))) (, ",") (binary_expression "puVar7 != (undefined4 *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }" ({ "{") (expression_statement "iVar3 = 4;" (assignment_expression "iVar3 = 4" (identifier "iVar3") (= "=") (number_literal "4")) (; ";")) (do_statement "do {\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);" (do "do") (compound_statement "{\n                iVar6 = FUN_0001d2d0(puVar7[1],0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(*piVar2 + iVar3);\n                iVar3 = iVar3 + 4;\n              }" ({ "{") (expression_statement "iVar6 = FUN_0001d2d0(puVar7[1],0);" (assignment_expression "iVar6 = FUN_0001d2d0(puVar7[1],0)" (identifier "iVar6") (= "=") (call_expression "FUN_0001d2d0(puVar7[1],0)" (identifier "FUN_0001d2d0") (argument_list "(puVar7[1],0)" (( "(") (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n                  return 0;\n                }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  return 0;\n                }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (puVar7[3] == 0) {\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }\n                else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }" (if "if") (parenthesized_expression "(puVar7[3] == 0)" (( "(") (binary_expression "puVar7[3] == 0" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);\n                }" ({ "{") (expression_statement "iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);" (assignment_expression "iVar6 = (**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2])" (identifier "iVar6") (= "=") (call_expression "(**(code **)(param_2 + 0x50))\n                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2])" (parenthesized_expression "(**(code **)(param_2 + 0x50))" (( "(") (pointer_expression "**(code **)(param_2 + 0x50)" (* "*") (pointer_expression "*(code **)(param_2 + 0x50)" (* "*") (cast_expression "(code **)(param_2 + 0x50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x50)" (( "(") (binary_expression "param_2 + 0x50" (identifier "param_2") (+ "+") (number_literal "0x50")) () ")"))))) () ")")) (argument_list "(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2])" (( "(") (identifier "param_3") (, ",") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (, ",") (subscript_expression "puVar7[4]" (identifier "puVar7") ([ "[") (number_literal "4") (] "]")) (, ",") (subscript_expression "puVar7[5]" (identifier "puVar7") ([ "[") (number_literal "5") (] "]")) (, ",") (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }" (else "else") (compound_statement "{\n                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);\n                }" ({ "{") (expression_statement "iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);" (assignment_expression "iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2])" (identifier "iVar6") (= "=") (call_expression "(**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2])" (parenthesized_expression "(**(code **)(param_2 + 0x5c))" (( "(") (pointer_expression "**(code **)(param_2 + 0x5c)" (* "*") (pointer_expression "*(code **)(param_2 + 0x5c)" (* "*") (cast_expression "(code **)(param_2 + 0x5c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x5c)" (( "(") (binary_expression "param_2 + 0x5c" (identifier "param_2") (+ "+") (number_literal "0x5c")) () ")"))))) () ")")) (argument_list "(param_3,*puVar7,puVar7[4],puVar7[2])" (( "(") (identifier "param_3") (, ",") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (, ",") (subscript_expression "puVar7[4]" (identifier "puVar7") ([ "[") (number_literal "4") (] "]")) (, ",") (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar6 == 0) {\n                  return 0;\n                }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  return 0;\n                }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "piVar2 = (int *)param_4[3];" (assignment_expression "piVar2 = (int *)param_4[3]" (identifier "piVar2") (= "=") (cast_expression "(int *)param_4[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "puVar7 = *(undefined4 **)(*piVar2 + iVar3);" (assignment_expression "puVar7 = *(undefined4 **)(*piVar2 + iVar3)" (identifier "puVar7") (= "=") (pointer_expression "*(undefined4 **)(*piVar2 + iVar3)" (* "*") (cast_expression "(undefined4 **)(*piVar2 + iVar3)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar2 + iVar3)" (( "(") (binary_expression "*piVar2 + iVar3" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (+ "+") (identifier "iVar3")) () ")"))))) (; ";")) (expression_statement "iVar3 = iVar3 + 4;" (assignment_expression "iVar3 = iVar3 + 4" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar7 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar7 != (undefined4 *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (if_statement "if (((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }" (if "if") (parenthesized_expression "(((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0))" (( "(") (binary_expression "((int *)piVar2[3] != (int *)0x0) &&\n               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)" (parenthesized_expression "((int *)piVar2[3] != (int *)0x0)" (( "(") (binary_expression "(int *)piVar2[3] != (int *)0x0" (cast_expression "(int *)piVar2[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar2[3]" (identifier "piVar2") ([ "[") (number_literal "3") (] "]"))) (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)" (( "(") (comma_expression "puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0" (assignment_expression "puVar7 = *(undefined4 **)piVar2[3]" (identifier "puVar7") (= "=") (pointer_expression "*(undefined4 **)piVar2[3]" (* "*") (cast_expression "(undefined4 **)piVar2[3]" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "piVar2[3]" (identifier "piVar2") ([ "[") (number_literal "3") (] "]"))))) (, ",") (binary_expression "puVar7 != (undefined4 *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n              iVar3 = 4;\n              do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);\n            }" ({ "{") (expression_statement "iVar3 = 4;" (assignment_expression "iVar3 = 4" (identifier "iVar3") (= "=") (number_literal "4")) (; ";")) (do_statement "do {\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              } while (puVar7 != (undefined4 *)0x0);" (do "do") (compound_statement "{\n                iVar6 = FUN_0001d2d0(*puVar7,0);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);\n                if (iVar6 == 0) {\n                  return 0;\n                }\n                piVar2 = (int *)param_4[3];\n                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);\n                iVar3 = iVar3 + 4;\n              }" ({ "{") (expression_statement "iVar6 = FUN_0001d2d0(*puVar7,0);" (assignment_expression "iVar6 = FUN_0001d2d0(*puVar7,0)" (identifier "iVar6") (= "=") (call_expression "FUN_0001d2d0(*puVar7,0)" (identifier "FUN_0001d2d0") (argument_list "(*puVar7,0)" (( "(") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n                  return 0;\n                }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  return 0;\n                }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);" (assignment_expression "iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3])" (identifier "iVar6") (= "=") (call_expression "(**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3])" (parenthesized_expression "(**(code **)(param_2 + 0x60))" (( "(") (pointer_expression "**(code **)(param_2 + 0x60)" (* "*") (pointer_expression "*(code **)(param_2 + 0x60)" (* "*") (cast_expression "(code **)(param_2 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x60)" (( "(") (binary_expression "param_2 + 0x60" (identifier "param_2") (+ "+") (number_literal "0x60")) () ")"))))) () ")")) (argument_list "(param_3,puVar7[1],puVar7[2],puVar7[3])" (( "(") (identifier "param_3") (, ",") (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (, ",") (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (, ",") (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n                  return 0;\n                }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  return 0;\n                }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "piVar2 = (int *)param_4[3];" (assignment_expression "piVar2 = (int *)param_4[3]" (identifier "piVar2") (= "=") (cast_expression "(int *)param_4[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "puVar7 = *(undefined4 **)(piVar2[3] + iVar3);" (assignment_expression "puVar7 = *(undefined4 **)(piVar2[3] + iVar3)" (identifier "puVar7") (= "=") (pointer_expression "*(undefined4 **)(piVar2[3] + iVar3)" (* "*") (cast_expression "(undefined4 **)(piVar2[3] + iVar3)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar2[3] + iVar3)" (( "(") (binary_expression "piVar2[3] + iVar3" (subscript_expression "piVar2[3]" (identifier "piVar2") ([ "[") (number_literal "3") (] "]")) (+ "+") (identifier "iVar3")) () ")"))))) (; ";")) (expression_statement "iVar3 = iVar3 + 4;" (assignment_expression "iVar3 = iVar3 + 4" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar7 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar7 != (undefined4 *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (if_statement "if (((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }" (if "if") (parenthesized_expression "(((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0))" (( "(") (binary_expression "((int *)piVar2[4] != (int *)0x0) &&\n               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)" (parenthesized_expression "((int *)piVar2[4] != (int *)0x0)" (( "(") (binary_expression "(int *)piVar2[4] != (int *)0x0" (cast_expression "(int *)piVar2[4]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar2[4]" (identifier "piVar2") ([ "[") (number_literal "4") (] "]"))) (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)" (( "(") (comma_expression "puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0" (assignment_expression "puStack_28 = *(undefined4 **)piVar2[4]" (identifier "puStack_28") (= "=") (pointer_expression "*(undefined4 **)piVar2[4]" (* "*") (cast_expression "(undefined4 **)piVar2[4]" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "piVar2[4]" (identifier "piVar2") ([ "[") (number_literal "4") (] "]"))))) (, ",") (binary_expression "puStack_28 != (undefined4 *)0x0" (identifier "puStack_28") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n              iStack_24 = 0;\n              do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);\n            }" ({ "{") (expression_statement "iStack_24 = 0;" (assignment_expression "iStack_24 = 0" (identifier "iStack_24") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              } while (puStack_28 != (undefined4 *)0x0);" (do "do") (compound_statement "{\n                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iVar3 = 4;\n                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }\n                iVar3 = (**(code **)(param_2 + 0x70))(param_3);\n                if (iVar3 == 0) {\n                  return 0;\n                }\n                iStack_24 = iStack_24 + 1;\n                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);\n              }" ({ "{") (expression_statement "iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);" (assignment_expression "iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(param_2 + 100))(param_3,*puStack_28)" (parenthesized_expression "(**(code **)(param_2 + 100))" (( "(") (pointer_expression "**(code **)(param_2 + 100)" (* "*") (pointer_expression "*(code **)(param_2 + 100)" (* "*") (cast_expression "(code **)(param_2 + 100)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 100)" (( "(") (binary_expression "param_2 + 100" (identifier "param_2") (+ "+") (number_literal "100")) () ")"))))) () ")")) (argument_list "(param_3,*puStack_28)" (( "(") (identifier "param_3") (, ",") (pointer_expression "*puStack_28" (* "*") (identifier "puStack_28")) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n                  return 0;\n                }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  return 0;\n                }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar3 = 4;" (assignment_expression "iVar3 = 4" (identifier "iVar3") (= "=") (number_literal "4")) (; ";")) (for_statement "for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;\n                    puVar7 = (undefined4 *)*puVar7) {\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }" (for "for") (( "(") (assignment_expression "puVar7 = *(undefined4 **)puStack_28[1]" (identifier "puVar7") (= "=") (pointer_expression "*(undefined4 **)puStack_28[1]" (* "*") (cast_expression "(undefined4 **)puStack_28[1]" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "puStack_28[1]" (identifier "puStack_28") ([ "[") (number_literal "1") (] "]"))))) (; ";") (binary_expression "puVar7 != (undefined4 *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar7 = (undefined4 *)*puVar7" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)*puVar7" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")))) () ")") (compound_statement "{\n                  if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }\n                  iVar6 = FUN_0001d2d0(puVar7[1],0);\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }\n                  if (iVar6 == 0) {\n                    return 0;\n                  }\n                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);\n                  iVar3 = iVar3 + 4;\n                }" ({ "{") (if_statement "if ((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)) {\n                    return 0;\n                  }" (if "if") (parenthesized_expression "((puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0))" (( "(") (binary_expression "(puVar7[6] != 0) && (iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)" (parenthesized_expression "(puVar7[6] != 0)" (( "(") (binary_expression "puVar7[6] != 0" (subscript_expression "puVar7[6]" (identifier "puVar7") ([ "[") (number_literal "6") (] "]")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0)" (( "(") (comma_expression "iVar6 = FUN_0001d2d0(puVar7[6],0), iVar6 == 0" (assignment_expression "iVar6 = FUN_0001d2d0(puVar7[6],0)" (identifier "iVar6") (= "=") (call_expression "FUN_0001d2d0(puVar7[6],0)" (identifier "FUN_0001d2d0") (argument_list "(puVar7[6],0)" (( "(") (subscript_expression "puVar7[6]" (identifier "puVar7") ([ "[") (number_literal "6") (] "]")) (, ",") (number_literal "0") () ")")))) (, ",") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                    return 0;\n                  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar6 = FUN_0001d2d0(puVar7[1],0);" (assignment_expression "iVar6 = FUN_0001d2d0(puVar7[1],0)" (identifier "iVar6") (= "=") (call_expression "FUN_0001d2d0(puVar7[1],0)" (identifier "FUN_0001d2d0") (argument_list "(puVar7[1],0)" (( "(") (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n                    return 0;\n                  }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    return 0;\n                  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (puVar7[5] == -1) {\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }\n                  else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }" (if "if") (parenthesized_expression "(puVar7[5] == -1)" (( "(") (binary_expression "puVar7[5] == -1" (subscript_expression "puVar7[5]" (identifier "puVar7") ([ "[") (number_literal "5") (] "]")) (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n                    iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);\n                  }" ({ "{") (expression_statement "iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);" (assignment_expression "iVar6 = (**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4])" (identifier "iVar6") (= "=") (call_expression "(**(code **)(param_2 + 0x6c))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4])" (parenthesized_expression "(**(code **)(param_2 + 0x6c))" (( "(") (pointer_expression "**(code **)(param_2 + 0x6c)" (* "*") (pointer_expression "*(code **)(param_2 + 0x6c)" (* "*") (cast_expression "(code **)(param_2 + 0x6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x6c)" (( "(") (binary_expression "param_2 + 0x6c" (identifier "param_2") (+ "+") (number_literal "0x6c")) () ")"))))) () ")")) (argument_list "(param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4])" (( "(") (identifier "param_3") (, ",") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (, ",") (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (, ",") (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (, ",") (subscript_expression "puVar7[4]" (identifier "puVar7") ([ "[") (number_literal "4") (] "]")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }" (else "else") (compound_statement "{\n                    iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);\n                  }" ({ "{") (expression_statement "iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0);" (assignment_expression "iVar6 = (**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(param_2 + 0x68))\n                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0)" (parenthesized_expression "(**(code **)(param_2 + 0x68))" (( "(") (pointer_expression "**(code **)(param_2 + 0x68)" (* "*") (pointer_expression "*(code **)(param_2 + 0x68)" (* "*") (cast_expression "(code **)(param_2 + 0x68)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x68)" (( "(") (binary_expression "param_2 + 0x68" (identifier "param_2") (+ "+") (number_literal "0x68")) () ")"))))) () ")")) (argument_list "(param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],\n                                       puVar7[6] != 0)" (( "(") (identifier "param_3") (, ",") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (, ",") (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (, ",") (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (, ",") (subscript_expression "puVar7[4]" (identifier "puVar7") ([ "[") (number_literal "4") (] "]")) (, ",") (subscript_expression "puVar7[5]" (identifier "puVar7") ([ "[") (number_literal "5") (] "]")) (, ",") (binary_expression "puVar7[6] != 0" (subscript_expression "puVar7[6]" (identifier "puVar7") ([ "[") (number_literal "6") (] "]")) (!= "!=") (number_literal "0")) () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar6 == 0) {\n                    return 0;\n                  }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    return 0;\n                  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "puVar7 = (undefined4 *)(puStack_28[1] + iVar3);" (assignment_expression "puVar7 = (undefined4 *)(puStack_28[1] + iVar3)" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)(puStack_28[1] + iVar3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_28[1] + iVar3)" (( "(") (binary_expression "puStack_28[1] + iVar3" (subscript_expression "puStack_28[1]" (identifier "puStack_28") ([ "[") (number_literal "1") (] "]")) (+ "+") (identifier "iVar3")) () ")")))) (; ";")) (expression_statement "iVar3 = iVar3 + 4;" (assignment_expression "iVar3 = iVar3 + 4" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4"))) (; ";")) (} "}"))) (expression_statement "iVar3 = (**(code **)(param_2 + 0x70))(param_3);" (assignment_expression "iVar3 = (**(code **)(param_2 + 0x70))(param_3)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(param_2 + 0x70))(param_3)" (parenthesized_expression "(**(code **)(param_2 + 0x70))" (( "(") (pointer_expression "**(code **)(param_2 + 0x70)" (* "*") (pointer_expression "*(code **)(param_2 + 0x70)" (* "*") (cast_expression "(code **)(param_2 + 0x70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x70)" (( "(") (binary_expression "param_2 + 0x70" (identifier "param_2") (+ "+") (number_literal "0x70")) () ")"))))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n                  return 0;\n                }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  return 0;\n                }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iStack_24 = iStack_24 + 1;" (assignment_expression "iStack_24 = iStack_24 + 1" (identifier "iStack_24") (= "=") (binary_expression "iStack_24 + 1" (identifier "iStack_24") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);" (assignment_expression "puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4)" (identifier "puStack_28") (= "=") (pointer_expression "*(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4)" (* "*") (cast_expression "(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(param_4[3] + 0x10) + iStack_24 * 4)" (( "(") (binary_expression "*(int *)(param_4[3] + 0x10) + iStack_24 * 4" (pointer_expression "*(int *)(param_4[3] + 0x10)" (* "*") (cast_expression "(int *)(param_4[3] + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4[3] + 0x10)" (( "(") (binary_expression "param_4[3] + 0x10" (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")) (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (binary_expression "iStack_24 * 4" (identifier "iStack_24") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puStack_28 != (undefined4 *)0x0)" (( "(") (binary_expression "puStack_28 != (undefined4 *)0x0" (identifier "puStack_28") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (} "}"))) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74)" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (pointer_expression "*(code **)(param_2 + 0x74)" (* "*") (cast_expression "(code **)(param_2 + 0x74)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x74)" (( "(") (binary_expression "param_2 + 0x74" (identifier "param_2") (+ "+") (number_literal "0x74")) () ")"))))) (; ";")) (goto_statement "goto LAB_0001d69f;" (goto "goto") (statement_identifier "LAB_0001d69f") (; ";"))) (case_statement "case 0xb:\n          puVar7 = (undefined4 *)param_4[3];\n          if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }\n          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);\n          return uVar4;" (case "case") (number_literal "0xb") (: ":") (expression_statement "puVar7 = (undefined4 *)param_4[3];" (assignment_expression "puVar7 = (undefined4 *)param_4[3]" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)param_4[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")))) (; ";")) (if_statement "if (puVar7 == (undefined4 *)0x0) {\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }" (if "if") (parenthesized_expression "(puVar7 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar7 == (undefined4 *)0x0" (identifier "puVar7") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);\n            return uVar4;\n          }" ({ "{") (expression_statement "uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0)" (identifier "uVar4") (= "=") (call_expression "(**(code **)(param_2 + 0x20))(param_3,local_30,0,0)" (parenthesized_expression "(**(code **)(param_2 + 0x20))" (( "(") (pointer_expression "**(code **)(param_2 + 0x20)" (* "*") (pointer_expression "*(code **)(param_2 + 0x20)" (* "*") (cast_expression "(code **)(param_2 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x20)" (( "(") (binary_expression "param_2 + 0x20" (identifier "param_2") (+ "+") (number_literal "0x20")) () ")"))))) () ")")) (argument_list "(param_3,local_30,0,0)" (( "(") (identifier "param_3") (, ",") (identifier "local_30") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}"))) (expression_statement "uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1])" (identifier "uVar4") (= "=") (call_expression "(**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1])" (parenthesized_expression "(**(code **)(param_2 + 0x20))" (( "(") (pointer_expression "**(code **)(param_2 + 0x20)" (* "*") (pointer_expression "*(code **)(param_2 + 0x20)" (* "*") (cast_expression "(code **)(param_2 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x20)" (( "(") (binary_expression "param_2 + 0x20" (identifier "param_2") (+ "+") (number_literal "0x20")) () ")"))))) () ")")) (argument_list "(param_3,local_30,*puVar7,puVar7[1])" (( "(") (identifier "param_3") (, ",") (identifier "local_30") (, ",") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (, ",") (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) () ")")))) (; ";")) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";"))) (case_statement "case 0xc:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);\n          goto LAB_0001d69f;" (case "case") (number_literal "0xc") (: ":") (expression_statement "iVar3 = FUN_0001d2d0(param_4[3],0);" (assignment_expression "iVar3 = FUN_0001d2d0(param_4[3],0)" (identifier "iVar3") (= "=") (call_expression "FUN_0001d2d0(param_4[3],0)" (identifier "FUN_0001d2d0") (argument_list "(param_4[3],0)" (( "(") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24)" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (pointer_expression "*(code **)(param_2 + 0x24)" (* "*") (cast_expression "(code **)(param_2 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x24)" (( "(") (binary_expression "param_2 + 0x24" (identifier "param_2") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (goto_statement "goto LAB_0001d69f;" (goto "goto") (statement_identifier "LAB_0001d69f") (; ";"))) (case_statement "case 0xd:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }\n          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));\n          return uVar4;" (case "case") (number_literal "0xd") (: ":") (expression_statement "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);" (assignment_expression "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0)" (identifier "iVar3") (= "=") (call_expression "FUN_0001d2d0(*(undefined4 *)param_4[3],0)" (identifier "FUN_0001d2d0") (argument_list "(*(undefined4 *)param_4[3],0)" (( "(") (pointer_expression "*(undefined4 *)param_4[3]" (* "*") (cast_expression "(undefined4 *)param_4[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")))) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar3 = param_4[3];" (assignment_expression "iVar3 = param_4[3]" (identifier "iVar3") (= "=") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]"))) (; ";")) (if_statement "if (*(int **)(iVar3 + 4) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }" (if "if") (parenthesized_expression "(*(int **)(iVar3 + 4) == (int *)0x0)" (( "(") (binary_expression "*(int **)(iVar3 + 4) == (int *)0x0" (pointer_expression "*(int **)(iVar3 + 4)" (* "*") (cast_expression "(int **)(iVar3 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")")))) (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            iVar6 = -1;\n          }" ({ "{") (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" (identifier "iVar6") (= "=") (number_literal "-1")) (; ";")) (} "}")) (else_clause "else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }" (else "else") (compound_statement "{\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 4);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }\n          }" ({ "{") (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar1 = **(int **)(iVar3 + 4);" (assignment_expression "iVar1 = **(int **)(iVar3 + 4)" (identifier "iVar1") (= "=") (pointer_expression "**(int **)(iVar3 + 4)" (* "*") (pointer_expression "*(int **)(iVar3 + 4)" (* "*") (cast_expression "(int **)(iVar3 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")")))))) (; ";")) (while_statement "while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }" (while "while") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);\n            }" ({ "{") (expression_statement "iVar3 = FUN_0001d2d0(iVar1,0);" (assignment_expression "iVar3 = FUN_0001d2d0(iVar1,0)" (identifier "iVar3") (= "=") (call_expression "FUN_0001d2d0(iVar1,0)" (identifier "FUN_0001d2d0") (argument_list "(iVar1,0)" (( "(") (identifier "iVar1") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n                return 0;\n              }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                return 0;\n              }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar3 = param_4[3];" (assignment_expression "iVar3 = param_4[3]" (identifier "iVar3") (= "=") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + 1" (identifier "iVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);" (assignment_expression "iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(*(int *)(iVar3 + 4) + iVar6 * 4)" (* "*") (cast_expression "(int *)(*(int *)(iVar3 + 4) + iVar6 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar3 + 4) + iVar6 * 4)" (( "(") (binary_expression "*(int *)(iVar3 + 4) + iVar6 * 4" (pointer_expression "*(int *)(iVar3 + 4)" (* "*") (cast_expression "(int *)(iVar3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")")))) (+ "+") (binary_expression "iVar6 * 4" (identifier "iVar6") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8))" (identifier "uVar4") (= "=") (call_expression "(**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8))" (parenthesized_expression "(**(code **)(param_2 + 0x28))" (( "(") (pointer_expression "**(code **)(param_2 + 0x28)" (* "*") (pointer_expression "*(code **)(param_2 + 0x28)" (* "*") (cast_expression "(code **)(param_2 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x28)" (( "(") (binary_expression "param_2 + 0x28" (identifier "param_2") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (argument_list "(param_3,iVar6,*(undefined4 *)(iVar3 + 8))" (( "(") (identifier "param_3") (, ",") (identifier "iVar6") (, ",") (pointer_expression "*(undefined4 *)(iVar3 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 8)" (( "(") (binary_expression "iVar3 + 8" (identifier "iVar3") (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";"))) (case_statement "case 0xe:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);\n          goto LAB_0001d69f;" (case "case") (number_literal "0xe") (: ":") (expression_statement "iVar3 = FUN_0001d2d0(param_4[3],0);" (assignment_expression "iVar3 = FUN_0001d2d0(param_4[3],0)" (identifier "iVar3") (= "=") (call_expression "FUN_0001d2d0(param_4[3],0)" (identifier "FUN_0001d2d0") (argument_list "(param_4[3],0)" (( "(") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c)" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (pointer_expression "*(code **)(param_2 + 0x2c)" (* "*") (cast_expression "(code **)(param_2 + 0x2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x2c)" (( "(") (binary_expression "param_2 + 0x2c" (identifier "param_2") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (goto_statement "goto LAB_0001d69f;" (goto "goto") (statement_identifier "LAB_0001d69f") (; ";"))) (case_statement "case 0xf:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );\n          return uVar4;" (case "case") (number_literal "0xf") (: ":") (expression_statement "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);" (assignment_expression "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0)" (identifier "iVar3") (= "=") (call_expression "FUN_0001d2d0(*(undefined4 *)param_4[3],0)" (identifier "FUN_0001d2d0") (argument_list "(*(undefined4 *)param_4[3],0)" (( "(") (pointer_expression "*(undefined4 *)param_4[3]" (* "*") (cast_expression "(undefined4 *)param_4[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")))) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            );" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            )" (identifier "uVar4") (= "=") (call_expression "(**(code **)(param_2 + 0x30))\n                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            )" (parenthesized_expression "(**(code **)(param_2 + 0x30))" (( "(") (pointer_expression "**(code **)(param_2 + 0x30)" (* "*") (pointer_expression "*(code **)(param_2 + 0x30)" (* "*") (cast_expression "(code **)(param_2 + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x30)" (( "(") (binary_expression "param_2 + 0x30" (identifier "param_2") (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (argument_list "(param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)\n                            )" (( "(") (identifier "param_3") (, ",") (pointer_expression "*(undefined4 *)(param_4[3] + 4)" (* "*") (cast_expression "(undefined4 *)(param_4[3] + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4[3] + 4)" (( "(") (binary_expression "param_4[3] + 4" (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")) (+ "+") (number_literal "4")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_4[3] + 8)" (* "*") (cast_expression "(undefined4 *)(param_4[3] + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4[3] + 8)" (( "(") (binary_expression "param_4[3] + 8" (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")) (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";"))) (case_statement "case 0x10:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));\n          return uVar4;" (case "case") (number_literal "0x10") (: ":") (expression_statement "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);" (assignment_expression "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0)" (identifier "iVar3") (= "=") (call_expression "FUN_0001d2d0(*(undefined4 *)param_4[3],0)" (identifier "FUN_0001d2d0") (argument_list "(*(undefined4 *)param_4[3],0)" (( "(") (pointer_expression "*(undefined4 *)param_4[3]" (* "*") (cast_expression "(undefined4 *)param_4[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")))) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);" (assignment_expression "iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0)" (identifier "iVar3") (= "=") (call_expression "FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0)" (identifier "FUN_0001d2d0") (argument_list "(*(undefined4 *)(param_4[3] + 4),0)" (( "(") (pointer_expression "*(undefined4 *)(param_4[3] + 4)" (* "*") (cast_expression "(undefined4 *)(param_4[3] + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4[3] + 4)" (( "(") (binary_expression "param_4[3] + 4" (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")) (+ "+") (number_literal "4")) () ")")))) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar3 = param_4[3];" (assignment_expression "iVar3 = param_4[3]" (identifier "iVar3") (= "=") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10));" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10))" (identifier "uVar4") (= "=") (call_expression "(**(code **)(param_2 + 0x34))\n                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10))" (parenthesized_expression "(**(code **)(param_2 + 0x34))" (( "(") (pointer_expression "**(code **)(param_2 + 0x34)" (* "*") (pointer_expression "*(code **)(param_2 + 0x34)" (* "*") (cast_expression "(code **)(param_2 + 0x34)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x34)" (( "(") (binary_expression "param_2 + 0x34" (identifier "param_2") (+ "+") (number_literal "0x34")) () ")"))))) () ")")) (argument_list "(param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                             *(undefined4 *)(iVar3 + 0x10))" (( "(") (identifier "param_3") (, ",") (pointer_expression "*(undefined4 *)(iVar3 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 8)" (( "(") (binary_expression "iVar3 + 8" (identifier "iVar3") (+ "+") (number_literal "8")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(iVar3 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xc)" (( "(") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(iVar3 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x10)" (( "(") (binary_expression "iVar3 + 0x10" (identifier "iVar3") (+ "+") (number_literal "0x10")) () ")")))) () ")")))) (; ";")) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";"))) (case_statement "case 0x11:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;" (case "case") (number_literal "0x11") (: ":") (expression_statement "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);" (assignment_expression "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0)" (identifier "iVar3") (= "=") (call_expression "FUN_0001d2d0(*(undefined4 *)param_4[3],0)" (identifier "FUN_0001d2d0") (argument_list "(*(undefined4 *)param_4[3],0)" (( "(") (pointer_expression "*(undefined4 *)param_4[3]" (* "*") (cast_expression "(undefined4 *)param_4[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")))) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38)" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (pointer_expression "*(code **)(param_2 + 0x38)" (* "*") (cast_expression "(code **)(param_2 + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x38)" (( "(") (binary_expression "param_2 + 0x38" (identifier "param_2") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x12:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);\n          goto LAB_0001d69f;" (case "case") (number_literal "0x12") (: ":") (expression_statement "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);" (assignment_expression "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0)" (identifier "iVar3") (= "=") (call_expression "FUN_0001d2d0(*(undefined4 *)param_4[3],0)" (identifier "FUN_0001d2d0") (argument_list "(*(undefined4 *)param_4[3],0)" (( "(") (pointer_expression "*(undefined4 *)param_4[3]" (* "*") (cast_expression "(undefined4 *)param_4[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")))) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0);" (assignment_expression "iVar3 = FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0)" (identifier "iVar3") (= "=") (call_expression "FUN_0001d2d0(*(undefined4 *)(param_4[3] + 4),0)" (identifier "FUN_0001d2d0") (argument_list "(*(undefined4 *)(param_4[3] + 4),0)" (( "(") (pointer_expression "*(undefined4 *)(param_4[3] + 4)" (* "*") (cast_expression "(undefined4 *)(param_4[3] + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4[3] + 4)" (( "(") (binary_expression "param_4[3] + 4" (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")) (+ "+") (number_literal "4")) () ")")))) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c)" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (pointer_expression "*(code **)(param_2 + 0x3c)" (* "*") (cast_expression "(code **)(param_2 + 0x3c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x3c)" (( "(") (binary_expression "param_2 + 0x3c" (identifier "param_2") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (goto_statement "goto LAB_0001d69f;" (goto "goto") (statement_identifier "LAB_0001d69f") (; ";"))) (case_statement "case 0x13:\n          iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          iVar3 = param_4[3];\n          if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }\n          iVar1 = *(int *)(iVar3 + 4);\n          if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));\n          return uVar4;" (case "case") (number_literal "0x13") (: ":") (expression_statement "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0);" (assignment_expression "iVar3 = FUN_0001d2d0(*(undefined4 *)param_4[3],0)" (identifier "iVar3") (= "=") (call_expression "FUN_0001d2d0(*(undefined4 *)param_4[3],0)" (identifier "FUN_0001d2d0") (argument_list "(*(undefined4 *)param_4[3],0)" (( "(") (pointer_expression "*(undefined4 *)param_4[3]" (* "*") (cast_expression "(undefined4 *)param_4[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")))) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar3 = param_4[3];" (assignment_expression "iVar3 = param_4[3]" (identifier "iVar3") (= "=") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]"))) (; ";")) (if_statement "if (*(int **)(iVar3 + 8) == (int *)0x0) {\n            iVar6 = -1;\n          }\n          else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }" (if "if") (parenthesized_expression "(*(int **)(iVar3 + 8) == (int *)0x0)" (( "(") (binary_expression "*(int **)(iVar3 + 8) == (int *)0x0" (pointer_expression "*(int **)(iVar3 + 8)" (* "*") (cast_expression "(int **)(iVar3 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 8)" (( "(") (binary_expression "iVar3 + 8" (identifier "iVar3") (+ "+") (number_literal "8")) () ")")))) (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            iVar6 = -1;\n          }" ({ "{") (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" (identifier "iVar6") (= "=") (number_literal "-1")) (; ";")) (} "}")) (else_clause "else {\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }" (else "else") (compound_statement "{\n            iVar6 = 0;\n            iVar1 = **(int **)(iVar3 + 8);\n            while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }\n          }" ({ "{") (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar1 = **(int **)(iVar3 + 8);" (assignment_expression "iVar1 = **(int **)(iVar3 + 8)" (identifier "iVar1") (= "=") (pointer_expression "**(int **)(iVar3 + 8)" (* "*") (pointer_expression "*(int **)(iVar3 + 8)" (* "*") (cast_expression "(int **)(iVar3 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 8)" (( "(") (binary_expression "iVar3 + 8" (identifier "iVar3") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (while_statement "while (iVar1 != 0) {\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }" (while "while") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              iVar3 = FUN_0001d2d0(iVar1,0);\n              if (iVar3 == 0) {\n                return 0;\n              }\n              iVar3 = param_4[3];\n              iVar6 = iVar6 + 1;\n              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);\n            }" ({ "{") (expression_statement "iVar3 = FUN_0001d2d0(iVar1,0);" (assignment_expression "iVar3 = FUN_0001d2d0(iVar1,0)" (identifier "iVar3") (= "=") (call_expression "FUN_0001d2d0(iVar1,0)" (identifier "FUN_0001d2d0") (argument_list "(iVar1,0)" (( "(") (identifier "iVar1") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n                return 0;\n              }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                return 0;\n              }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar3 = param_4[3];" (assignment_expression "iVar3 = param_4[3]" (identifier "iVar3") (= "=") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + 1" (identifier "iVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);" (assignment_expression "iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(*(int *)(iVar3 + 8) + iVar6 * 4)" (* "*") (cast_expression "(int *)(*(int *)(iVar3 + 8) + iVar6 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar3 + 8) + iVar6 * 4)" (( "(") (binary_expression "*(int *)(iVar3 + 8) + iVar6 * 4" (pointer_expression "*(int *)(iVar3 + 8)" (* "*") (cast_expression "(int *)(iVar3 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 8)" (( "(") (binary_expression "iVar3 + 8" (identifier "iVar3") (+ "+") (number_literal "8")) () ")")))) (+ "+") (binary_expression "iVar6 * 4" (identifier "iVar6") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar1 = *(int *)(iVar3 + 4);" (assignment_expression "iVar1 = *(int *)(iVar3 + 4)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(iVar3 + 4)" (* "*") (cast_expression "(int *)(iVar3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (iVar1 != 0) {\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            iVar3 = FUN_0001d2d0(iVar1,0);\n            if (iVar3 == 0) {\n              return 0;\n            }\n            iVar3 = param_4[3];\n            iVar1 = *(int *)(iVar3 + 4);\n          }" ({ "{") (expression_statement "iVar3 = FUN_0001d2d0(iVar1,0);" (assignment_expression "iVar3 = FUN_0001d2d0(iVar1,0)" (identifier "iVar3") (= "=") (call_expression "FUN_0001d2d0(iVar1,0)" (identifier "FUN_0001d2d0") (argument_list "(iVar1,0)" (( "(") (identifier "iVar1") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n              return 0;\n            }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              return 0;\n            }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar3 = param_4[3];" (assignment_expression "iVar3 = param_4[3]" (identifier "iVar3") (= "=") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "iVar1 = *(int *)(iVar3 + 4);" (assignment_expression "iVar1 = *(int *)(iVar3 + 4)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(iVar3 + 4)" (* "*") (cast_expression "(int *)(iVar3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc))" (identifier "uVar4") (= "=") (call_expression "(**(code **)(param_2 + 0x40))\n                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc))" (parenthesized_expression "(**(code **)(param_2 + 0x40))" (( "(") (pointer_expression "**(code **)(param_2 + 0x40)" (* "*") (pointer_expression "*(code **)(param_2 + 0x40)" (* "*") (cast_expression "(code **)(param_2 + 0x40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x40)" (( "(") (binary_expression "param_2 + 0x40" (identifier "param_2") (+ "+") (number_literal "0x40")) () ")"))))) () ")")) (argument_list "(param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc))" (( "(") (identifier "param_3") (, ",") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) (, ",") (identifier "iVar6") (, ",") (pointer_expression "*(undefined4 *)(iVar3 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xc)" (( "(") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) () ")")))) () ")")))) (; ";")) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";"))) (case_statement "case 0x14:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);\n          goto LAB_0001d69f;" (case "case") (number_literal "0x14") (: ":") (expression_statement "iVar3 = FUN_0001d2d0(param_4[3],0);" (assignment_expression "iVar3 = FUN_0001d2d0(param_4[3],0)" (identifier "iVar3") (= "=") (call_expression "FUN_0001d2d0(param_4[3],0)" (identifier "FUN_0001d2d0") (argument_list "(param_4[3],0)" (( "(") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44)" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (pointer_expression "*(code **)(param_2 + 0x44)" (* "*") (cast_expression "(code **)(param_2 + 0x44)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x44)" (( "(") (binary_expression "param_2 + 0x44" (identifier "param_2") (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (goto_statement "goto LAB_0001d69f;" (goto "goto") (statement_identifier "LAB_0001d69f") (; ";"))) (case_statement "case 0x15:\n          iVar3 = FUN_0001d2d0(param_4[3],0);\n          if (iVar3 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0001d69f;" (case "case") (number_literal "0x15") (: ":") (expression_statement "iVar3 = FUN_0001d2d0(param_4[3],0);" (assignment_expression "iVar3 = FUN_0001d2d0(param_4[3],0)" (identifier "iVar3") (= "=") (call_expression "FUN_0001d2d0(param_4[3],0)" (identifier "FUN_0001d2d0") (argument_list "(param_4[3],0)" (( "(") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48)" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (pointer_expression "*(code **)(param_2 + 0x48)" (* "*") (cast_expression "(code **)(param_2 + 0x48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x48)" (( "(") (binary_expression "param_2 + 0x48" (identifier "param_2") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (goto_statement "goto LAB_0001d69f;" (goto "goto") (statement_identifier "LAB_0001d69f") (; ";"))) (case_statement "case 0x16:\n          goto LAB_0001d388;" (case "case") (number_literal "0x16") (: ":") (goto_statement "goto LAB_0001d388;" (goto "goto") (statement_identifier "LAB_0001d388") (; ";"))) (case_statement "case 0x17:\nLAB_0001daa0:\n          local_2c = (int *)param_4[3];\n          param_5 = *local_2c;\n          goto LAB_0001d36b;" (case "case") (number_literal "0x17") (: ":") (labeled_statement "LAB_0001daa0:\n          local_2c = (int *)param_4[3];" (statement_identifier "LAB_0001daa0") (: ":") (expression_statement "local_2c = (int *)param_4[3];" (assignment_expression "local_2c = (int *)param_4[3]" (identifier "local_2c") (= "=") (cast_expression "(int *)param_4[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")))) (; ";"))) (expression_statement "param_5 = *local_2c;" (assignment_expression "param_5 = *local_2c" (identifier "param_5") (= "=") (pointer_expression "*local_2c" (* "*") (identifier "local_2c"))) (; ";")) (goto_statement "goto LAB_0001d36b;" (goto "goto") (statement_identifier "LAB_0001d36b") (; ";"))) (case_statement "default:\n                    \n          abort();" (default "default") (: ":") (expression_statement "abort();" (call_expression "abort()" (identifier "abort") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}")))) (labeled_statement "LAB_0001d9c6:\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();" (statement_identifier "LAB_0001d9c6") (: ":") (expression_statement "uVar4 = (*UNRECOVERED_JUMPTABLE_00)();" (assignment_expression "uVar4 = (*UNRECOVERED_JUMPTABLE_00)()" (identifier "uVar4") (= "=") (call_expression "(*UNRECOVERED_JUMPTABLE_00)()" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE_00)" (( "(") (pointer_expression "*UNRECOVERED_JUMPTABLE_00" (* "*") (identifier "UNRECOVERED_JUMPTABLE_00")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";"))) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}")))) (expression_statement "*(undefined4 *)(param_5 + 8) = *(undefined4 *)(param_1 + 0x18);" (assignment_expression "*(undefined4 *)(param_5 + 8) = *(undefined4 *)(param_1 + 0x18)" (pointer_expression "*(undefined4 *)(param_5 + 8)" (* "*") (cast_expression "(undefined4 *)(param_5 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 8)" (( "(") (binary_expression "param_5 + 8" (identifier "param_5") (+ "+") (number_literal "8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x18)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (iVar3 != 0x16) {\n        if (iVar3 != 0x17) {\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }\n        goto LAB_0001daa0;\n      }" (if "if") (parenthesized_expression "(iVar3 != 0x16)" (( "(") (binary_expression "iVar3 != 0x16" (identifier "iVar3") (!= "!=") (number_literal "0x16")) () ")")) (compound_statement "{\n        if (iVar3 != 0x17) {\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }\n        goto LAB_0001daa0;\n      }" ({ "{") (if_statement "if (iVar3 != 0x17) {\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }" (if "if") (parenthesized_expression "(iVar3 != 0x17)" (( "(") (binary_expression "iVar3 != 0x17" (identifier "iVar3") (!= "!=") (number_literal "0x17")) () ")")) (compound_statement "{\n          if (*(int *)(param_5 + 0xc) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          local_30 = *(undefined4 *)(param_5 + 4);\n          goto LAB_0001d329;\n        }" ({ "{") (if_statement "if (*(int *)(param_5 + 0xc) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }" (if "if") (parenthesized_expression "(*(int *)(param_5 + 0xc) != 1)" (( "(") (binary_expression "*(int *)(param_5 + 0xc) != 1" (pointer_expression "*(int *)(param_5 + 0xc)" (* "*") (cast_expression "(int *)(param_5 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0xc)" (( "(") (binary_expression "param_5 + 0xc" (identifier "param_5") (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }" ({ "{") (expression_statement "__assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");" (call_expression "__assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type")" (identifier "__assert_fail") (argument_list "("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type")" (( "(") (string_literal ""name->kind == DEBUG_OBJECT_TAG"" (" """) (string_content "name->kind == DEBUG_OBJECT_TAG") (" """)) (, ",") (string_literal ""../../binutils/debug.c"" (" """) (string_content "../../binutils/debug.c") (" """)) (, ",") (number_literal "0x9aa") (, ",") (string_literal ""debug_write_type"" (" """) (string_content "debug_write_type") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "local_30 = *(undefined4 *)(param_5 + 4);" (assignment_expression "local_30 = *(undefined4 *)(param_5 + 4)" (identifier "local_30") (= "=") (pointer_expression "*(undefined4 *)(param_5 + 4)" (* "*") (cast_expression "(undefined4 *)(param_5 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 4)" (( "(") (binary_expression "param_5 + 4" (identifier "param_5") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (goto_statement "goto LAB_0001d329;" (goto "goto") (statement_identifier "LAB_0001d329") (; ";")) (} "}"))) (goto_statement "goto LAB_0001daa0;" (goto "goto") (statement_identifier "LAB_0001daa0") (; ";")) (} "}"))) (labeled_statement "LAB_0001d388:\n      param_5 = 0;" (statement_identifier "LAB_0001d388") (: ":") (expression_statement "param_5 = 0;" (assignment_expression "param_5 = 0" (identifier "param_5") (= "=") (number_literal "0")) (; ";"))) (} "}"))) (expression_statement "local_2c = (int *)param_4[3];" (assignment_expression "local_2c = (int *)param_4[3]" (identifier "local_2c") (= "=") (cast_expression "(int *)param_4[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")))) (; ";")) (if_statement "if (*(int *)(*local_2c + 8) == *(int *)(param_1 + 0x18)) {\n      if (iVar3 == 0x16) {\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n        goto LAB_0001d9c6;\n      }\nLAB_0001db7f:\n      piVar2 = (int *)FUN_0001c820();\n      if (piVar2 != (int *)0x0) {\n        iVar3 = *piVar2;\n        uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n        if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }\n        else {\n          uVar5 = 0;\n        }\n        uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);\n        return uVar4;\n      }\n      goto LAB_0001d6c3;\n    }" (if "if") (parenthesized_expression "(*(int *)(*local_2c + 8) == *(int *)(param_1 + 0x18))" (( "(") (binary_expression "*(int *)(*local_2c + 8) == *(int *)(param_1 + 0x18)" (pointer_expression "*(int *)(*local_2c + 8)" (* "*") (cast_expression "(int *)(*local_2c + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_2c + 8)" (( "(") (binary_expression "*local_2c + 8" (pointer_expression "*local_2c" (* "*") (identifier "local_2c")) (+ "+") (number_literal "8")) () ")")))) (== "==") (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      if (iVar3 == 0x16) {\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n        goto LAB_0001d9c6;\n      }\nLAB_0001db7f:\n      piVar2 = (int *)FUN_0001c820();\n      if (piVar2 != (int *)0x0) {\n        iVar3 = *piVar2;\n        uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n        if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }\n        else {\n          uVar5 = 0;\n        }\n        uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);\n        return uVar4;\n      }\n      goto LAB_0001d6c3;\n    }" ({ "{") (if_statement "if (iVar3 == 0x16) {\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n        goto LAB_0001d9c6;\n      }" (if "if") (parenthesized_expression "(iVar3 == 0x16)" (( "(") (binary_expression "iVar3 == 0x16" (identifier "iVar3") (== "==") (number_literal "0x16")) () ")")) (compound_statement "{\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n        goto LAB_0001d9c6;\n      }" ({ "{") (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78)" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (pointer_expression "*(code **)(param_2 + 0x78)" (* "*") (cast_expression "(code **)(param_2 + 0x78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x78)" (( "(") (binary_expression "param_2 + 0x78" (identifier "param_2") (+ "+") (number_literal "0x78")) () ")"))))) (; ";")) (goto_statement "goto LAB_0001d9c6;" (goto "goto") (statement_identifier "LAB_0001d9c6") (; ";")) (} "}"))) (labeled_statement "LAB_0001db7f:\n      piVar2 = (int *)FUN_0001c820();" (statement_identifier "LAB_0001db7f") (: ":") (expression_statement "piVar2 = (int *)FUN_0001c820();" (assignment_expression "piVar2 = (int *)FUN_0001c820()" (identifier "piVar2") (= "=") (cast_expression "(int *)FUN_0001c820()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001c820()" (identifier "FUN_0001c820") (argument_list "()" (( "(") () ")"))))) (; ";"))) (if_statement "if (piVar2 != (int *)0x0) {\n        iVar3 = *piVar2;\n        uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n        if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }\n        else {\n          uVar5 = 0;\n        }\n        uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);\n        return uVar4;\n      }" (if "if") (parenthesized_expression "(piVar2 != (int *)0x0)" (( "(") (binary_expression "piVar2 != (int *)0x0" (identifier "piVar2") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        iVar3 = *piVar2;\n        uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n        if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }\n        else {\n          uVar5 = 0;\n        }\n        uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);\n        return uVar4;\n      }" ({ "{") (expression_statement "iVar3 = *piVar2;" (assignment_expression "iVar3 = *piVar2" (identifier "iVar3") (= "=") (pointer_expression "*piVar2" (* "*") (identifier "piVar2"))) (; ";")) (expression_statement "uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);" (assignment_expression "uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)(*(int *)param_4[3] + 4)" (* "*") (cast_expression "(undefined4 *)(*(int *)param_4[3] + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)param_4[3] + 4)" (( "(") (binary_expression "*(int *)param_4[3] + 4" (pointer_expression "*(int *)param_4[3]" (* "*") (cast_expression "(int *)param_4[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }\n        else {\n          uVar5 = 0;\n        }" (if "if") (parenthesized_expression "((iVar3 - 7U < 4) && (piVar2[3] != 0))" (( "(") (binary_expression "(iVar3 - 7U < 4) && (piVar2[3] != 0)" (parenthesized_expression "(iVar3 - 7U < 4)" (( "(") (binary_expression "iVar3 - 7U < 4" (binary_expression "iVar3 - 7U" (identifier "iVar3") (- "-") (number_literal "7U")) (< "<") (number_literal "4")) () ")")) (&& "&&") (parenthesized_expression "(piVar2[3] != 0)" (( "(") (binary_expression "piVar2[3] != 0" (subscript_expression "piVar2[3]" (identifier "piVar2") ([ "[") (number_literal "3") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          uVar5 = *(uint *)(piVar2[3] + 8);\n          if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }\n        }" ({ "{") (expression_statement "uVar5 = *(uint *)(piVar2[3] + 8);" (assignment_expression "uVar5 = *(uint *)(piVar2[3] + 8)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)(piVar2[3] + 8)" (* "*") (cast_expression "(uint *)(piVar2[3] + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar2[3] + 8)" (( "(") (binary_expression "piVar2[3] + 8" (subscript_expression "piVar2[3]" (identifier "piVar2") ([ "[") (number_literal "3") (] "]")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (uVar5 <= *(uint *)(param_1 + 0x20)) {\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }" (if "if") (parenthesized_expression "(uVar5 <= *(uint *)(param_1 + 0x20))" (( "(") (binary_expression "uVar5 <= *(uint *)(param_1 + 0x20)" (identifier "uVar5") (<= "<=") (pointer_expression "*(uint *)(param_1 + 0x20)" (* "*") (cast_expression "(uint *)(param_1 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) () ")")) (compound_statement "{\n            iVar3 = FUN_0001d1a0();\n            if (iVar3 == 0) {\n              return 0;\n            }\n            uVar5 = *(uint *)(piVar2[3] + 8);\n            iVar3 = *piVar2;\n            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);\n          }" ({ "{") (expression_statement "iVar3 = FUN_0001d1a0();" (assignment_expression "iVar3 = FUN_0001d1a0()" (identifier "iVar3") (= "=") (call_expression "FUN_0001d1a0()" (identifier "FUN_0001d1a0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n              return 0;\n            }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              return 0;\n            }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar5 = *(uint *)(piVar2[3] + 8);" (assignment_expression "uVar5 = *(uint *)(piVar2[3] + 8)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)(piVar2[3] + 8)" (* "*") (cast_expression "(uint *)(piVar2[3] + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar2[3] + 8)" (( "(") (binary_expression "piVar2[3] + 8" (subscript_expression "piVar2[3]" (identifier "piVar2") ([ "[") (number_literal "3") (] "]")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iVar3 = *piVar2;" (assignment_expression "iVar3 = *piVar2" (identifier "iVar3") (= "=") (pointer_expression "*piVar2" (* "*") (identifier "piVar2"))) (; ";")) (expression_statement "uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);" (assignment_expression "uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)(*(int *)param_4[3] + 4)" (* "*") (cast_expression "(undefined4 *)(*(int *)param_4[3] + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)param_4[3] + 4)" (( "(") (binary_expression "*(int *)param_4[3] + 4" (pointer_expression "*(int *)param_4[3]" (* "*") (cast_expression "(int *)param_4[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          uVar5 = 0;\n        }" (else "else") (compound_statement "{\n          uVar5 = 0;\n        }" ({ "{") (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3)" (identifier "uVar4") (= "=") (call_expression "(**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3)" (parenthesized_expression "(**(code **)(param_2 + 0x7c))" (( "(") (pointer_expression "**(code **)(param_2 + 0x7c)" (* "*") (pointer_expression "*(code **)(param_2 + 0x7c)" (* "*") (cast_expression "(code **)(param_2 + 0x7c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x7c)" (( "(") (binary_expression "param_2 + 0x7c" (identifier "param_2") (+ "+") (number_literal "0x7c")) () ")"))))) () ")")) (argument_list "(param_3,uVar4,uVar5,iVar3)" (( "(") (identifier "param_3") (, ",") (identifier "uVar4") (, ",") (identifier "uVar5") (, ",") (identifier "iVar3") () ")")))) (; ";")) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}"))) (goto_statement "goto LAB_0001d6c3;" (goto "goto") (statement_identifier "LAB_0001d6c3") (; ";")) (} "}"))) (if_statement "if (iVar3 != 0x17) goto LAB_0001d300;" (if "if") (parenthesized_expression "(iVar3 != 0x17)" (( "(") (binary_expression "iVar3 != 0x17" (identifier "iVar3") (!= "!=") (number_literal "0x17")) () ")")) (goto_statement "goto LAB_0001d300;" (goto "goto") (statement_identifier "LAB_0001d300") (; ";"))) (if_statement "if (*local_2c != param_5) goto LAB_0001db7f;" (if "if") (parenthesized_expression "(*local_2c != param_5)" (( "(") (binary_expression "*local_2c != param_5" (pointer_expression "*local_2c" (* "*") (identifier "local_2c")) (!= "!=") (identifier "param_5")) () ")")) (goto_statement "goto LAB_0001db7f;" (goto "goto") (statement_identifier "LAB_0001db7f") (; ";"))) (expression_statement "*(int *)(param_5 + 8) = *(int *)(param_1 + 0x18);" (assignment_expression "*(int *)(param_5 + 8) = *(int *)(param_1 + 0x18)" (pointer_expression "*(int *)(param_5 + 8)" (* "*") (cast_expression "(int *)(param_5 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 8)" (( "(") (binary_expression "param_5 + 8" (identifier "param_5") (+ "+") (number_literal "8")) () ")")))) (= "=") (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")) () ")"))))) (; ";")) (labeled_statement "LAB_0001d36b:\n    param_4 = (int *)local_2c[1];" (statement_identifier "LAB_0001d36b") (: ":") (expression_statement "param_4 = (int *)local_2c[1];" (assignment_expression "param_4 = (int *)local_2c[1]" (identifier "param_4") (= "=") (cast_expression "(int *)local_2c[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_2c[1]" (identifier "local_2c") ([ "[") (number_literal "1") (] "]")))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (labeled_statement "code_r0x0001d6b0:\n  param_4 = (int *)**(undefined4 **)param_4[3];" (statement_identifier "code_r0x0001d6b0") (: ":") (expression_statement "param_4 = (int *)**(undefined4 **)param_4[3];" (assignment_expression "param_4 = (int *)**(undefined4 **)param_4[3]" (identifier "param_4") (= "=") (cast_expression "(int *)**(undefined4 **)param_4[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)param_4[3]" (* "*") (pointer_expression "*(undefined4 **)param_4[3]" (* "*") (cast_expression "(undefined4 **)param_4[3]" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]"))))))) (; ";"))) (if_statement "if (param_4 == (int *)0x0) {\nLAB_0001d6c3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 8);\nLAB_0001d69f:\n                    \n                    \n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n    return uVar4;\n  }" (if "if") (parenthesized_expression "(param_4 == (int *)0x0)" (( "(") (binary_expression "param_4 == (int *)0x0" (identifier "param_4") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0001d6c3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 8);\nLAB_0001d69f:\n                    \n                    \n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)();\n    return uVar4;\n  }" ({ "{") (labeled_statement "LAB_0001d6c3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 8);" (statement_identifier "LAB_0001d6c3") (: ":") (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 8);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 8)" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (pointer_expression "*(code **)(param_2 + 8)" (* "*") (cast_expression "(code **)(param_2 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")"))))) (; ";"))) (labeled_statement "LAB_0001d69f:\n                    \n                    \n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)();" (statement_identifier "LAB_0001d69f") (: ":") (expression_statement "uVar4 = (*UNRECOVERED_JUMPTABLE_00)();" (assignment_expression "uVar4 = (*UNRECOVERED_JUMPTABLE_00)()" (identifier "uVar4") (= "=") (call_expression "(*UNRECOVERED_JUMPTABLE_00)()" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE_00)" (( "(") (pointer_expression "*UNRECOVERED_JUMPTABLE_00" (* "*") (identifier "UNRECOVERED_JUMPTABLE_00")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";"))) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}"))) (goto_statement "goto LAB_0001d2f6;" (goto "goto") (statement_identifier "LAB_0001d2f6") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

type_1 __regparm3
function_1(type_2 *info,type_3 *fns,void *fhandle,type_4 *var_31,
                type_5 *var_3)

{
  int *piVar1;
  type_5 *var_30;
  type_6 *pdVar3;
  type_7 *var_24;
  type_8 *var_13;
  type_9 *var_22;
  type_10 *UNRECOVERED_JUMPTABLE_00;
  type_11 uVar7;
  int var_19;
  type_12 *UNRECOVERED_JUMPTABLE;
  type_13 var_1;
  type_4 *var_25;
  type_1 var_10;
  type_14 *var_6;
  type_15 var_7;
  type_16 *pdVar14;
  type_17 *pdVar15;
  type_15 var_8;
  int var_15;
  type_18 *p_Var18;
  type_8 var_14;
  type_19 var_20;
  char *pcVar21;
  type_14 *var_16;
  char *local_30;
  type_6 *var_17;
  type_20 var_21;
  int var_23;
  
LAB_0001d2f6:
  do {
    for (; var_1 = var_31->kind, 1 < var_1 - var_2; var_31 = ((var_31->u).karray)->range_type)
    {
LAB_0001d300:
      if (var_3 == (type_5 *)0x0) {
        local_30 = (char *)0x0;
LAB_0001d329:
        switch(var_1) {
        case DEBUG_KIND_ILLEGAL:
          uVar7 = var_4(0,"debug_write_type: illegal type encountered",5);
          var_5(*(type_21 **)PTR_stderr_0003efa8,"%s\n",uVar7);
          return 0;
        case DEBUG_KIND_INDIRECT:
          goto _L288;
        case DEBUG_KIND_VOID:
          UNRECOVERED_JUMPTABLE_00 = fns->void_type;
          goto LAB_0001d69f;
        case DEBUG_KIND_INT:
          var_10 = (*fns->int_type)(fhandle,var_31->size,(var_31->u).kint);
          return var_10;
        case DEBUG_KIND_FLOAT:
          var_3 = (type_5 *)var_31->size;
          UNRECOVERED_JUMPTABLE = (type_12 *)fns->float_type;
          break;
        case DEBUG_KIND_COMPLEX:
          var_3 = (type_5 *)var_31->size;
          UNRECOVERED_JUMPTABLE = (type_12 *)fns->complex_type;
          break;
        case DEBUG_KIND_BOOL:
          var_3 = (type_5 *)var_31->size;
          UNRECOVERED_JUMPTABLE = (type_12 *)fns->bool_type;
          break;
        case var_12:
        case DEBUG_KIND_UNION:
          var_6 = (var_31->u).kclass;
          if (var_6 == (type_14 *)0x0) {
            p_Var18 = fns->start_struct_type;
            var_7 = var_31->size;
            var_8 = 0;
          }
          else {
            var_7 = var_6->id;
            if (info->base_id < var_7) {
              var_8 = info->mark;
              if (var_6->mark == var_8) {
LAB_0001db48:
                var_10 = (*fns->tag_type)(fhandle,local_30,var_7,var_31->kind);
                return var_10;
              }
            }
            else {
              var_10 = var_9(info,local_30,var_31);
              if (var_10 == 0) {
                return 0;
              }
              var_6 = (var_31->u).kclass;
              var_8 = info->mark;
              if (var_8 == var_6->mark) {
                var_7 = var_6->id;
                if (var_7 <= info->base_id) {
                  pcVar21 = "debug_write_type";
                  var_7 = 0x9d1;
LAB_0001de3e:
                    /* WARNING: Subroutine does not return */
                  var_11("type->u.kclass->id > info->base_id","../../binutils/debug.c",var_7
                                ,pcVar21);
                }
                goto LAB_0001db48;
              }
            }
            p_Var18 = fns->start_struct_type;
            var_7 = var_31->size;
            var_6->mark = var_8;
            var_8 = var_6->id;
            var_1 = var_31->kind;
          }
          var_10 = (*p_Var18)(fhandle,local_30,var_8,(type_15)(var_1 == var_12),var_7);
          if (var_10 == 0) {
            return 0;
          }
          if ((((var_31->u).kclass != (type_14 *)0x0) &&
              (var_13 = ((var_31->u).kclass)->fields, var_13 != (type_8 *)0x0)) &&
             (var_14 = *var_13, var_14 != (type_8)0x0)) {
            var_15 = 4;
            do {
              var_10 = function_1(info,fns,fhandle,var_14->var_31,(type_5 *)0x0);
              if (var_10 == 0) {
                return 0;
              }
              var_10 = (*fns->struct_field)
                                 (fhandle,var_14->var_3,(var_14->u).f.bitpos,(var_14->u).f.bitsize
                                  ,var_14->visibility);
              if (var_10 == 0) {
                return 0;
              }
              var_14 = *(type_8 *)((int)((var_31->u).kindirect)->slot + var_15);
              var_15 = var_15 + 4;
            } while (var_14 != (type_8)0x0);
          }
          UNRECOVERED_JUMPTABLE_00 = fns->end_struct_type;
          goto LAB_0001d69f;
        case var_18:
        case DEBUG_KIND_UNION_CLASS:
          var_16 = (var_31->u).kclass;
          if (var_16 == (type_14 *)0x0) {
            var_7 = 0;
            var_17 = (type_6 *)0x0;
            var_16 = (type_14 *)0x0;
          }
          else {
            var_17 = (type_6 *)var_16->id;
            if (info->base_id < var_17) {
              var_7 = info->mark;
              if (var_16->mark == var_7) {
LAB_0001dafa:
                var_10 = (*fns->tag_type)(fhandle,local_30,(type_15)var_17,var_1);
                return var_10;
              }
            }
            else {
              var_10 = var_9(info,local_30,var_31);
              if (var_10 == 0) {
                return 0;
              }
              var_16 = (var_31->u).kclass;
              var_7 = info->mark;
              var_17 = (type_6 *)var_16->id;
              if (var_7 == var_16->mark) {
                if (var_17 <= info->base_id) {
                  pcVar21 = "debug_write_class_type";
                  var_7 = 0xa7d;
                  goto LAB_0001de3e;
                }
                var_1 = var_31->kind;
                goto LAB_0001dafa;
              }
            }
            var_16->mark = var_7;
            var_16 = (type_14 *)var_16->vptrbase;
            if (((type_14 *)var_31 == var_16) || (var_16 == (type_14 *)0x0)) {
              var_7 = (type_15)(var_16 != (type_14 *)0x0);
              var_1 = var_31->kind;
            }
            else {
              var_10 = function_1(info,fns,fhandle,(type_4 *)var_16,(type_5 *)0x0)
              ;
              if (var_10 == 0) {
                return 0;
              }
              var_1 = var_31->kind;
              var_7 = 1;
            }
          }
          var_10 = (*fns->start_class_type)
                             (fhandle,local_30,(type_15)var_17,(type_15)(var_1 == var_18),
                              var_31->size,var_7,(type_15)((type_14 *)var_31 == var_16));
          if (var_10 == 0) {
            return 0;
          }
          var_6 = (var_31->u).kclass;
          if (var_6 != (type_14 *)0x0) {
            if ((var_6->fields != (type_8 *)0x0) &&
               (var_14 = *var_6->fields, var_14 != (type_8)0x0)) {
              var_15 = 4;
              do {
                var_10 = function_1(info,fns,fhandle,var_14->var_31,(type_5 *)0x0);
                if (var_10 == 0) {
                  return 0;
                }
                pcVar21 = (char *)(var_14->u).f.bitpos;
                if (var_14->static_member == 0) {
                  var_19 = (*fns->struct_field)
                                    (fhandle,var_14->var_3,(type_22)pcVar21,(var_14->u).f.bitsize,
                                     var_14->visibility);
                }
                else {
                  var_19 = (*fns->class_static_member)
                                    (fhandle,var_14->var_3,pcVar21,var_14->visibility);
                }
                if (var_19 == 0) {
                  return 0;
                }
                var_6 = (var_31->u).kclass;
                var_14 = *(type_8 *)((int)var_6->fields + var_15);
                var_15 = var_15 + 4;
              } while (var_14 != (type_8)0x0);
            }
            if ((var_6->baseclasses != (type_19 *)0x0) &&
               (var_20 = *var_6->baseclasses, var_20 != (type_19)0x0)) {
              var_15 = 4;
              do {
                var_10 = function_1(info,fns,fhandle,var_20->var_31,(type_5 *)0x0);
                if (var_10 == 0) {
                  return 0;
                }
                var_10 = (*fns->class_baseclass)
                                   (fhandle,var_20->bitpos,var_20->is_virtual,var_20->visibility)
                ;
                if (var_10 == 0) {
                  return 0;
                }
                var_6 = (var_31->u).kclass;
                var_20 = *(type_19 *)((int)var_6->baseclasses + var_15);
                var_15 = var_15 + 4;
              } while (var_20 != (type_19)0x0);
            }
            if ((var_6->methods != (type_20 *)0x0) &&
               (var_21 = *var_6->methods, var_21 != (type_20)0x0)) {
              var_23 = 0;
              do {
                var_10 = (*fns->class_start_method)(fhandle,var_21->var_3);
                if (var_10 == 0) {
                  return 0;
                }
                var_15 = 4;
                var_22 = *var_21->variants;
                while (var_22 != (type_9 *)0x0) {
                  if ((var_22->context != (type_4 *)0x0) &&
                     (var_10 = function_1(info,fns,fhandle,var_22->context,(type_5 *)0x0),
                     var_10 == 0)) {
                    return 0;
                  }
                  var_10 = function_1(info,fns,fhandle,var_22->var_31,(type_5 *)0x0);
                  if (var_10 == 0) {
                    return 0;
                  }
                  if (var_22->voffset == 0xffffffff) {
                    var_19 = (*fns->class_static_method_variant)
                                      (fhandle,var_22->physname,var_22->visibility,var_22->constp,
                                       var_22->volatilep);
                  }
                  else {
                    var_19 = (*fns->class_method_variant)
                                      (fhandle,var_22->physname,var_22->visibility,var_22->constp,
                                       var_22->volatilep,var_22->voffset,
                                       (type_15)(var_22->context != (type_4 *)0x0));
                  }
                  if (var_19 == 0) {
                    return 0;
                  }
                  piVar1 = (int *)((int)var_21->variants + var_15);
                  var_15 = var_15 + 4;
                  var_22 = (type_9 *)*piVar1;
                }
                var_10 = (*fns->class_end_method)(fhandle);
                if (var_10 == 0) {
                  return 0;
                }
                var_23 = var_23 + 1;
                var_21 = ((var_31->u).kclass)->methods[var_23];
              } while (var_21 != (type_20)0x0);
            }
          }
          UNRECOVERED_JUMPTABLE_00 = fns->end_class_type;
          goto LAB_0001d69f;
        case DEBUG_KIND_ENUM:
          var_24 = (var_31->u).kenum;
          if (var_24 == (type_7 *)0x0) {
            var_10 = (*fns->enum_type)(fhandle,local_30,(char **)0x0,(type_23 *)0x0);
            return var_10;
          }
          var_10 = (*fns->enum_type)(fhandle,local_30,var_24->names,var_24->values);
          return var_10;
        case DEBUG_KIND_POINTER:
          var_10 = function_1(info,fns,fhandle,(var_31->u).kpointer,(type_5 *)0x0);
          if (var_10 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_00 = fns->pointer_type;
          goto LAB_0001d69f;
        case DEBUG_KIND_FUNCTION:
          var_10 = function_1(info,fns,fhandle,((var_31->u).kfunction)->return_type,
                                    (type_5 *)0x0);
          if (var_10 == 0) {
            return 0;
          }
          pdVar15 = (var_31->u).kfunction;
          if (pdVar15->arg_types == (type_24 *)0x0) {
            var_15 = -1;
          }
          else {
            var_15 = 0;
            var_25 = *pdVar15->arg_types;
            while (var_25 != (type_4 *)0x0) {
              var_10 = function_1(info,fns,fhandle,var_25,(type_5 *)0x0);
              if (var_10 == 0) {
                return 0;
              }
              pdVar15 = (var_31->u).kfunction;
              var_15 = var_15 + 1;
              var_25 = pdVar15->arg_types[var_15];
            }
          }
          var_10 = (*fns->function_type)(fhandle,var_15,pdVar15->varargs);
          return var_10;
        case DEBUG_KIND_REFERENCE:
          var_10 = function_1(info,fns,fhandle,(var_31->u).kpointer,(type_5 *)0x0);
          if (var_10 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_00 = fns->reference_type;
          goto LAB_0001d69f;
        case DEBUG_KIND_RANGE:
          var_10 = function_1(info,fns,fhandle,((var_31->u).kfunction)->return_type,
                                    (type_5 *)0x0);
          if (var_10 == 0) {
            return 0;
          }
          var_10 = (*fns->range_type)(fhandle,((var_31->u).krange)->lower,((var_31->u).krange)->upper);
          return var_10;
        case DEBUG_KIND_ARRAY:
          var_10 = function_1(info,fns,fhandle,((var_31->u).kfunction)->return_type,
                                    (type_5 *)0x0);
          if (var_10 == 0) {
            return 0;
          }
          var_10 = function_1(info,fns,fhandle,((var_31->u).karray)->range_type,
                                    (type_5 *)0x0);
          if (var_10 == 0) {
            return 0;
          }
          pdVar3 = (var_31->u).karray;
          var_10 = (*fns->array_type)(fhandle,pdVar3->lower,pdVar3->upper,pdVar3->stringp);
          return var_10;
        case DEBUG_KIND_SET:
          var_10 = function_1(info,fns,fhandle,((var_31->u).kfunction)->return_type,
                                    (type_5 *)0x0);
          if (var_10 == 0) {
            return 0;
          }
          var_3 = (type_5 *)((var_31->u).karray)->range_type;
          UNRECOVERED_JUMPTABLE = (type_12 *)fns->set_type;
          break;
        case DEBUG_KIND_OFFSET:
          var_10 = function_1(info,fns,fhandle,((var_31->u).kfunction)->return_type,
                                    (type_5 *)0x0);
          if (var_10 == 0) {
            return 0;
          }
          var_10 = function_1(info,fns,fhandle,((var_31->u).karray)->range_type,
                                    (type_5 *)0x0);
          if (var_10 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_00 = fns->offset_type;
          goto LAB_0001d69f;
        case DEBUG_KIND_METHOD:
          var_10 = function_1(info,fns,fhandle,((var_31->u).kfunction)->return_type,
                                    (type_5 *)0x0);
          if (var_10 == 0) {
            return 0;
          }
          pdVar14 = (var_31->u).kmethod;
          if (pdVar14->arg_types == (type_24 *)0x0) {
            var_15 = -1;
          }
          else {
            var_15 = 0;
            var_25 = *pdVar14->arg_types;
            while (var_25 != (type_4 *)0x0) {
              var_10 = function_1(info,fns,fhandle,var_25,(type_5 *)0x0);
              if (var_10 == 0) {
                return 0;
              }
              pdVar14 = (var_31->u).kmethod;
              var_15 = var_15 + 1;
              var_25 = pdVar14->arg_types[var_15];
            }
          }
          var_25 = pdVar14->domain_type;
          if (var_25 != (type_4 *)0x0) {
            var_10 = function_1(info,fns,fhandle,var_25,(type_5 *)0x0);
            if (var_10 == 0) {
              return 0;
            }
            pdVar14 = (var_31->u).kmethod;
            var_25 = pdVar14->domain_type;
          }
          var_10 = (*fns->method_type)(fhandle,(type_15)(var_25 != (type_4 *)0x0),var_15,
                                       pdVar14->varargs);
          return var_10;
        case DEBUG_KIND_CONST:
          var_10 = function_1(info,fns,fhandle,(var_31->u).kpointer,(type_5 *)0x0);
          if (var_10 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_00 = fns->const_type;
          goto LAB_0001d69f;
        case DEBUG_KIND_VOLATILE:
          var_10 = function_1(info,fns,fhandle,(var_31->u).kpointer,(type_5 *)0x0);
          if (var_10 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_00 = fns->volatile_type;
          goto LAB_0001d69f;
        case var_2:
          goto _L264;
        case var_27:
_L268:
          var_17 = (var_31->u).karray;
          var_3 = (type_5 *)var_17->element_type;
          goto LAB_0001d36b;
        default:
                    /* WARNING: Subroutine does not return */
          var_26();
        }
LAB_0001d9c6:
                    /* WARNING: Could not recover jumptable at 0x0001d9cd. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        var_10 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)var_3);
        return var_10;
      }
      var_3->mark = info->mark;
      if (var_1 != var_2) {
        if (var_1 != var_27) {
          if (var_3->kind != var_28) {
                    /* WARNING: Subroutine does not return */
            var_11("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,
                          "debug_write_type");
          }
          local_30 = var_3->var_3;
          goto LAB_0001d329;
        }
        goto _L268;
      }
_L264:
      var_3 = (type_5 *)0x0;
    }
    var_17 = (type_6 *)(var_31->u).knamed;
    var_30 = (type_5 *)var_17->element_type;
    if (var_30->mark == info->mark) {
      if (var_1 == var_2) {
        var_3 = (type_5 *)var_30->var_3;
        UNRECOVERED_JUMPTABLE = fns->typedef_type;
        goto LAB_0001d9c6;
      }
LAB_0001db7f:
      var_25 = var_29(info,var_31,(type_25 *)0x0);
      if (var_25 != (type_4 *)0x0) {
        var_1 = var_25->kind;
        pcVar21 = ((var_31->u).knamed)->var_3->var_3;
        if ((var_1 - var_12 < 4) && ((var_25->u).kclass != (type_14 *)0x0)) {
          var_7 = ((var_25->u).kclass)->id;
          if (var_7 <= info->base_id) {
            var_10 = var_9(info,pcVar21,var_25);
            if (var_10 == 0) {
              return 0;
            }
            var_7 = ((var_25->u).kclass)->id;
            var_1 = var_25->kind;
            pcVar21 = ((var_31->u).knamed)->var_3->var_3;
          }
        }
        else {
          var_7 = 0;
        }
        var_10 = (*fns->tag_type)(fhandle,pcVar21,var_7,var_1);
        return var_10;
      }
      goto LAB_0001d6c3;
    }
    if (var_1 != var_27) goto LAB_0001d300;
    if (var_30 != var_3) goto LAB_0001db7f;
    var_3->mark = info->mark;
LAB_0001d36b:
    var_31 = var_17->range_type;
  } while( true );
_L288:
  var_31 = *((var_31->u).kindirect)->slot;
  if (var_31 == (type_24)0x0) {
LAB_0001d6c3:
    UNRECOVERED_JUMPTABLE_00 = fns->empty_type;
LAB_0001d69f:
                    /* WARNING: Could not recover jumptable at 0x0001d6a6. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    var_10 = (*UNRECOVERED_JUMPTABLE_00)(fhandle);
    return var_10;
  }
  goto LAB_0001d2f6;
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

undefined4 __regparm3
MASKED(int param_1,int param_2,undefined4 param_3,int *param_4,int param_5)

{
  int iVar1;
  code *UNRECOVERED_JUMPTABLE_00;
  int *piVar2;
  int iVar3;
  undefined4 uVar4;
  uint uVar5;
  int iVar6;
  undefined4 *puVar7;
  bool bVar8;
  char *__function;
  int *local_34;
  undefined4 local_30;
  int *local_2c;
  undefined4 *puStack_28;
  int iStack_24;
  
LAB_0001d2f6:
  do {
    for (; iVar3 = *param_4, 1 < iVar3 - 0x16U; param_4 = *(int **)(param_4[3] + 4)) {
LAB_0001d300:
      if (param_5 == 0) {
        local_30 = 0;
LAB_0001d329:
        switch(iVar3) {
        case 0:
          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);
          fprintf(*(FILE **)PTR_stderr_0003efa8,"%s\n",uVar4);
          return 0;
        case 1:
          goto code_r0x0001d6b0;
        case 2:
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xc);
          goto LAB_0001d69f;
        case 3:
          uVar4 = (**(code **)(param_2 + 0x10))(param_3,param_4[1],param_4[3]);
          return uVar4;
        case 4:
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x14);
          break;
        case 5:
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);
          break;
        case 6:
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x1c);
          break;
        case 7:
        case 8:
          iVar6 = param_4[3];
          if (iVar6 == 0) {
            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);
            iVar1 = param_4[1];
            uVar4 = 0;
          }
          else {
            uVar5 = *(uint *)(iVar6 + 8);
            if (*(uint *)(param_1 + 0x20) < uVar5) {
              iVar3 = *(int *)(param_1 + 0x18);
              if (*(int *)(iVar6 + 4) == iVar3) {
code_r0x0001db48:
                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,uVar5,*param_4);
                return uVar4;
              }
            }
            else {
              iVar3 = FUN_0001d1a0();
              if (iVar3 == 0) {
                return 0;
              }
              iVar6 = param_4[3];
              iVar3 = *(int *)(param_1 + 0x18);
              if (iVar3 == *(int *)(iVar6 + 4)) {
                uVar5 = *(uint *)(iVar6 + 8);
                if (uVar5 <= *(uint *)(param_1 + 0x20)) {
                  __function = "debug_write_type";
                  uVar5 = 0x9d1;
code_r0x0001de3e:
                    /* WARNING: Subroutine does not return */
                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",uVar5,
                                __function);
                }
                goto code_r0x0001db48;
              }
            }
            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x4c);
            iVar1 = param_4[1];
            *(int *)(iVar6 + 4) = iVar3;
            uVar4 = *(undefined4 *)(iVar6 + 8);
            iVar3 = *param_4;
          }
          iVar3 = (*UNRECOVERED_JUMPTABLE_00)(param_3,local_30,uVar4,iVar3 == 7,iVar1);
          if (iVar3 == 0) {
            return 0;
          }
          if ((((int *)param_4[3] != (int *)0x0) &&
              (piVar2 = *(int **)param_4[3], piVar2 != (int *)0x0)) &&
             (puVar7 = (undefined4 *)*piVar2, puVar7 != (undefined4 *)0x0)) {
            iVar3 = 4;
            do {
              iVar6 = MASKED(puVar7[1],0);
              if (iVar6 == 0) {
                return 0;
              }
              iVar6 = (**(code **)(param_2 + 0x50))(param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);
              if (iVar6 == 0) {
                return 0;
              }
              puVar7 = *(undefined4 **)(*(int *)param_4[3] + iVar3);
              iVar3 = iVar3 + 4;
            } while (puVar7 != (undefined4 *)0x0);
          }
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x54);
          goto LAB_0001d69f;
        case 9:
        case 10:
          local_34 = (int *)param_4[3];
          if (local_34 == (int *)0x0) {
            bVar8 = false;
            local_2c = (int *)0x0;
            local_34 = (int *)0x0;
          }
          else {
            local_2c = *(int **)((int)local_34 + 8);
            if (*(uint *)(param_1 + 0x20) < local_2c) {
              iVar6 = *(int *)(param_1 + 0x18);
              if (*(int *)((int)local_34 + 4) == iVar6) {
code_r0x0001dafa:
                uVar4 = (**(code **)(param_2 + 0x7c))(param_3,local_30,local_2c,iVar3);
                return uVar4;
              }
            }
            else {
              iVar3 = FUN_0001d1a0();
              if (iVar3 == 0) {
                return 0;
              }
              local_34 = (int *)param_4[3];
              iVar6 = *(int *)(param_1 + 0x18);
              local_2c = *(int **)((int)local_34 + 8);
              if (iVar6 == *(int *)((int)local_34 + 4)) {
                if (local_2c <= *(uint *)(param_1 + 0x20)) {
                  __function = "debug_write_class_type";
                  uVar5 = 0xa7d;
                  goto code_r0x0001de3e;
                }
                iVar3 = *param_4;
                goto code_r0x0001dafa;
              }
            }
            *(int *)((int)local_34 + 4) = iVar6;
            local_34 = *(int **)((int)local_34 + 0x14);
            bVar8 = local_34 != (int *)0x0;
            if ((param_4 == local_34) || (!bVar8)) {
              iVar3 = *param_4;
            }
            else {
              iVar3 = MASKED(local_34,0);
              if (iVar3 == 0) {
                return 0;
              }
              iVar3 = *param_4;
              bVar8 = true;
            }
          }
          iVar3 = (**(code **)(param_2 + 0x58))
                            (param_3,local_30,local_2c,iVar3 == 9,param_4[1],bVar8,
                             param_4 == local_34);
          if (iVar3 == 0) {
            return 0;
          }
          piVar2 = (int *)param_4[3];
          if (piVar2 != (int *)0x0) {
            if (((int *)*piVar2 != (int *)0x0) &&
               (puVar7 = *(undefined4 **)*piVar2, puVar7 != (undefined4 *)0x0)) {
              iVar3 = 4;
              do {
                iVar6 = MASKED(puVar7[1],0);
                if (iVar6 == 0) {
                  return 0;
                }
                if (puVar7[3] == 0) {
                  iVar6 = (**(code **)(param_2 + 0x50))
                                    (param_3,*puVar7,puVar7[4],puVar7[5],puVar7[2]);
                }
                else {
                  iVar6 = (**(code **)(param_2 + 0x5c))(param_3,*puVar7,puVar7[4],puVar7[2]);
                }
                if (iVar6 == 0) {
                  return 0;
                }
                piVar2 = (int *)param_4[3];
                puVar7 = *(undefined4 **)(*piVar2 + iVar3);
                iVar3 = iVar3 + 4;
              } while (puVar7 != (undefined4 *)0x0);
            }
            if (((int *)piVar2[3] != (int *)0x0) &&
               (puVar7 = *(undefined4 **)piVar2[3], puVar7 != (undefined4 *)0x0)) {
              iVar3 = 4;
              do {
                iVar6 = MASKED(*puVar7,0);
                if (iVar6 == 0) {
                  return 0;
                }
                iVar6 = (**(code **)(param_2 + 0x60))(param_3,puVar7[1],puVar7[2],puVar7[3]);
                if (iVar6 == 0) {
                  return 0;
                }
                piVar2 = (int *)param_4[3];
                puVar7 = *(undefined4 **)(piVar2[3] + iVar3);
                iVar3 = iVar3 + 4;
              } while (puVar7 != (undefined4 *)0x0);
            }
            if (((int *)piVar2[4] != (int *)0x0) &&
               (puStack_28 = *(undefined4 **)piVar2[4], puStack_28 != (undefined4 *)0x0)) {
              iStack_24 = 0;
              do {
                iVar3 = (**(code **)(param_2 + 100))(param_3,*puStack_28);
                if (iVar3 == 0) {
                  return 0;
                }
                iVar3 = 4;
                for (puVar7 = *(undefined4 **)puStack_28[1]; puVar7 != (undefined4 *)0x0;
                    puVar7 = (undefined4 *)*puVar7) {
                  if ((puVar7[6] != 0) && (iVar6 = MASKED(puVar7[6],0), iVar6 == 0)) {
                    return 0;
                  }
                  iVar6 = MASKED(puVar7[1],0);
                  if (iVar6 == 0) {
                    return 0;
                  }
                  if (puVar7[5] == -1) {
                    iVar6 = (**(code **)(param_2 + 0x6c))
                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4]);
                  }
                  else {
                    iVar6 = (**(code **)(param_2 + 0x68))
                                      (param_3,*puVar7,puVar7[2],puVar7[3],puVar7[4],puVar7[5],
                                       puVar7[6] != 0);
                  }
                  if (iVar6 == 0) {
                    return 0;
                  }
                  puVar7 = (undefined4 *)(puStack_28[1] + iVar3);
                  iVar3 = iVar3 + 4;
                }
                iVar3 = (**(code **)(param_2 + 0x70))(param_3);
                if (iVar3 == 0) {
                  return 0;
                }
                iStack_24 = iStack_24 + 1;
                puStack_28 = *(undefined4 **)(*(int *)(param_4[3] + 0x10) + iStack_24 * 4);
              } while (puStack_28 != (undefined4 *)0x0);
            }
          }
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x74);
          goto LAB_0001d69f;
        case 0xb:
          puVar7 = (undefined4 *)param_4[3];
          if (puVar7 == (undefined4 *)0x0) {
            uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,0,0);
            return uVar4;
          }
          uVar4 = (**(code **)(param_2 + 0x20))(param_3,local_30,*puVar7,puVar7[1]);
          return uVar4;
        case 0xc:
          iVar3 = MASKED(param_4[3],0);
          if (iVar3 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x24);
          goto LAB_0001d69f;
        case 0xd:
          iVar3 = MASKED(*(undefined4 *)param_4[3],0);
          if (iVar3 == 0) {
            return 0;
          }
          iVar3 = param_4[3];
          if (*(int **)(iVar3 + 4) == (int *)0x0) {
            iVar6 = -1;
          }
          else {
            iVar6 = 0;
            iVar1 = **(int **)(iVar3 + 4);
            while (iVar1 != 0) {
              iVar3 = MASKED(iVar1,0);
              if (iVar3 == 0) {
                return 0;
              }
              iVar3 = param_4[3];
              iVar6 = iVar6 + 1;
              iVar1 = *(int *)(*(int *)(iVar3 + 4) + iVar6 * 4);
            }
          }
          uVar4 = (**(code **)(param_2 + 0x28))(param_3,iVar6,*(undefined4 *)(iVar3 + 8));
          return uVar4;
        case 0xe:
          iVar3 = MASKED(param_4[3],0);
          if (iVar3 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x2c);
          goto LAB_0001d69f;
        case 0xf:
          iVar3 = MASKED(*(undefined4 *)param_4[3],0);
          if (iVar3 == 0) {
            return 0;
          }
          uVar4 = (**(code **)(param_2 + 0x30))
                            (param_3,*(undefined4 *)(param_4[3] + 4),*(undefined4 *)(param_4[3] + 8)
                            );
          return uVar4;
        case 0x10:
          iVar3 = MASKED(*(undefined4 *)param_4[3],0);
          if (iVar3 == 0) {
            return 0;
          }
          iVar3 = MASKED(*(undefined4 *)(param_4[3] + 4),0);
          if (iVar3 == 0) {
            return 0;
          }
          iVar3 = param_4[3];
          uVar4 = (**(code **)(param_2 + 0x34))
                            (param_3,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),
                             *(undefined4 *)(iVar3 + 0x10));
          return uVar4;
        case 0x11:
          iVar3 = MASKED(*(undefined4 *)param_4[3],0);
          if (iVar3 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);
          break;
        case 0x12:
          iVar3 = MASKED(*(undefined4 *)param_4[3],0);
          if (iVar3 == 0) {
            return 0;
          }
          iVar3 = MASKED(*(undefined4 *)(param_4[3] + 4),0);
          if (iVar3 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x3c);
          goto LAB_0001d69f;
        case 0x13:
          iVar3 = MASKED(*(undefined4 *)param_4[3],0);
          if (iVar3 == 0) {
            return 0;
          }
          iVar3 = param_4[3];
          if (*(int **)(iVar3 + 8) == (int *)0x0) {
            iVar6 = -1;
          }
          else {
            iVar6 = 0;
            iVar1 = **(int **)(iVar3 + 8);
            while (iVar1 != 0) {
              iVar3 = MASKED(iVar1,0);
              if (iVar3 == 0) {
                return 0;
              }
              iVar3 = param_4[3];
              iVar6 = iVar6 + 1;
              iVar1 = *(int *)(*(int *)(iVar3 + 8) + iVar6 * 4);
            }
          }
          iVar1 = *(int *)(iVar3 + 4);
          if (iVar1 != 0) {
            iVar3 = MASKED(iVar1,0);
            if (iVar3 == 0) {
              return 0;
            }
            iVar3 = param_4[3];
            iVar1 = *(int *)(iVar3 + 4);
          }
          uVar4 = (**(code **)(param_2 + 0x40))
                            (param_3,iVar1 != 0,iVar6,*(undefined4 *)(iVar3 + 0xc));
          return uVar4;
        case 0x14:
          iVar3 = MASKED(param_4[3],0);
          if (iVar3 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x44);
          goto LAB_0001d69f;
        case 0x15:
          iVar3 = MASKED(param_4[3],0);
          if (iVar3 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);
          goto LAB_0001d69f;
        case 0x16:
          goto LAB_0001d388;
        case 0x17:
LAB_0001daa0:
          local_2c = (int *)param_4[3];
          param_5 = *local_2c;
          goto LAB_0001d36b;
        default:
                    /* WARNING: Subroutine does not return */
          abort();
        }
LAB_0001d9c6:
                    /* WARNING: Could not recover jumptable at 0x0001d9cd. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        uVar4 = (*UNRECOVERED_JUMPTABLE_00)();
        return uVar4;
      }
      *(undefined4 *)(param_5 + 8) = *(undefined4 *)(param_1 + 0x18);
      if (iVar3 != 0x16) {
        if (iVar3 != 0x17) {
          if (*(int *)(param_5 + 0xc) != 1) {
                    /* WARNING: Subroutine does not return */
            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,
                          "debug_write_type");
          }
          local_30 = *(undefined4 *)(param_5 + 4);
          goto LAB_0001d329;
        }
        goto LAB_0001daa0;
      }
LAB_0001d388:
      param_5 = 0;
    }
    local_2c = (int *)param_4[3];
    if (*(int *)(*local_2c + 8) == *(int *)(param_1 + 0x18)) {
      if (iVar3 == 0x16) {
        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);
        goto LAB_0001d9c6;
      }
LAB_0001db7f:
      piVar2 = (int *)FUN_0001c820();
      if (piVar2 != (int *)0x0) {
        iVar3 = *piVar2;
        uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);
        if ((iVar3 - 7U < 4) && (piVar2[3] != 0)) {
          uVar5 = *(uint *)(piVar2[3] + 8);
          if (uVar5 <= *(uint *)(param_1 + 0x20)) {
            iVar3 = FUN_0001d1a0();
            if (iVar3 == 0) {
              return 0;
            }
            uVar5 = *(uint *)(piVar2[3] + 8);
            iVar3 = *piVar2;
            uVar4 = *(undefined4 *)(*(int *)param_4[3] + 4);
          }
        }
        else {
          uVar5 = 0;
        }
        uVar4 = (**(code **)(param_2 + 0x7c))(param_3,uVar4,uVar5,iVar3);
        return uVar4;
      }
      goto LAB_0001d6c3;
    }
    if (iVar3 != 0x17) goto LAB_0001d300;
    if (*local_2c != param_5) goto LAB_0001db7f;
    *(int *)(param_5 + 8) = *(int *)(param_1 + 0x18);
LAB_0001d36b:
    param_4 = (int *)local_2c[1];
  } while( true );
code_r0x0001d6b0:
  param_4 = (int *)**(undefined4 **)param_4[3];
  if (param_4 == (int *)0x0) {
LAB_0001d6c3:
    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 8);
LAB_0001d69f:
                    /* WARNING: Could not recover jumptable at 0x0001d6a6. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    uVar4 = (*UNRECOVERED_JUMPTABLE_00)();
    return uVar4;
  }
  goto LAB_0001d2f6;
}

