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

{
  debug_name *pdVar1;
  debug_array_type *pdVar2;
  debug_enum_type *pdVar3;
  debug_field *ppdVar4;
  debug_method_variant_s *pdVar5;
  bfd_boolean bVar6;
  debug_method_type *pdVar7;
  debug_function_type *pdVar8;
  _func_bfd_boolean_void_ptr *UNRECOVERED_JUMPTABLE_02;
  undefined8 uVar9;
  _func_bfd_boolean_void_ptr_uint *UNRECOVERED_JUMPTABLE_00;
  _func_bfd_boolean_void_ptr_uint_bfd_boolean *UNRECOVERED_JUMPTABLE_01;
  _func_bfd_boolean_void_ptr_char_ptr_uint_debug_type_kind *UNRECOVERED_JUMPTABLE;
  debug_type_s *pdVar10;
  debug_class_type *pdVar11;
  uint uVar12;
  debug_type_kind dVar13;
  bfd_signed_vma *pbVar14;
  ulong uVar15;
  char **ppcVar16;
  uint uVar17;
  debug_type tag;
  debug_named_type *pdVar18;
  uint uVar19;
  _func_bfd_boolean_void_ptr_char_ptr_uint_bfd_boolean_uint *p_Var20;
  long lVar21;
  debug_field pdVar22;
  int iVar23;
  debug_baseclass pdVar24;
  debug_method local_48;
  uint local_3c;
  
LAB_0012bc21:
  do {
    for (; dVar13 = type->kind, 1 < dVar13 - DEBUG_KIND_NAMED; type = ((type->u).karray)->range_type
        ) {
LAB_0012bc2b:
      if (name == (debug_name *)0x0) {
        tag = (debug_type)0x0;
LAB_0012bc55:
        switch(dVar13) {
        case DEBUG_KIND_ILLEGAL:
          uVar9 = dcgettext(0,"debug_write_type: illegal type encountered",5);
          fprintf(stderr,"%s\n",uVar9);
          return 0;
        case DEBUG_KIND_INDIRECT:
          goto switchD_0012bc67_caseD_1;
        case DEBUG_KIND_VOID:
          UNRECOVERED_JUMPTABLE_02 = fns->void_type;
          goto LAB_0012bfcc;
        case DEBUG_KIND_INT:
          bVar6 = (type->u).kint;
          uVar17 = type->size;
          UNRECOVERED_JUMPTABLE_01 = fns->int_type;
          goto LAB_0012c31a;
        case DEBUG_KIND_FLOAT:
          uVar17 = type->size;
          UNRECOVERED_JUMPTABLE_00 = fns->float_type;
          break;
        case DEBUG_KIND_COMPLEX:
          uVar17 = type->size;
          UNRECOVERED_JUMPTABLE_00 = fns->complex_type;
          break;
        case DEBUG_KIND_BOOL:
          uVar17 = type->size;
          UNRECOVERED_JUMPTABLE_00 = fns->bool_type;
          break;
        case DEBUG_KIND_STRUCT:
        case DEBUG_KIND_UNION:
          pdVar11 = (type->u).kclass;
          if (pdVar11 == (debug_class_type *)0x0) {
            p_Var20 = fns->start_struct_type;
            uVar19 = type->size;
            uVar17 = 0;
          }
          else {
            uVar17 = pdVar11->id;
            if (info->base_id < uVar17) {
              uVar12 = info->mark;
              if (pdVar11->mark == uVar12) {
LAB_0012c414:
                UNRECOVERED_JUMPTABLE = fns->tag_type;
                dVar13 = type->kind;
LAB_0012c3c5:
                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                bVar6 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)tag,uVar17,dVar13);
                return bVar6;
              }
            }
            else {
              bVar6 = debug_set_class_id(info,(char *)tag,type);
              if (bVar6 == 0) {
                return 0;
              }
              pdVar11 = (type->u).kclass;
              uVar12 = info->mark;
              if (uVar12 == pdVar11->mark) {
                uVar17 = pdVar11->id;
                if (uVar17 <= info->base_id) {
                    /* WARNING: Subroutine does not return */
                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,
                                "debug_write_type");
                }
                goto LAB_0012c414;
              }
            }
            p_Var20 = fns->start_struct_type;
            uVar19 = type->size;
            pdVar11->mark = uVar12;
            uVar17 = pdVar11->id;
            dVar13 = type->kind;
          }
          bVar6 = (*p_Var20)(fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_STRUCT),uVar19);
          if (bVar6 == 0) {
            return 0;
          }
          if ((((type->u).kclass != (debug_class_type *)0x0) &&
              (ppdVar4 = ((type->u).kclass)->fields, ppdVar4 != (debug_field *)0x0)) &&
             (pdVar22 = *ppdVar4, pdVar22 != (debug_field)0x0)) {
            uVar15 = 0;
            do {
              bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);
              if (bVar6 == 0) {
                return 0;
              }
              bVar6 = (*fns->struct_field)
                                (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,
                                 (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);
              if (bVar6 == 0) {
                return 0;
              }
              uVar15 = (ulong)((int)uVar15 + 1);
              pdVar22 = (debug_field)((type->u).kindirect)->slot[uVar15];
            } while (pdVar22 != (debug_field)0x0);
          }
          UNRECOVERED_JUMPTABLE_02 = fns->end_struct_type;
          goto LAB_0012bfcc;
        case DEBUG_KIND_CLASS:
        case DEBUG_KIND_UNION_CLASS:
          pdVar11 = (type->u).kclass;
          if (pdVar11 == (debug_class_type *)0x0) {
            uVar19 = 0;
            uVar17 = 0;
            pdVar10 = (debug_type_s *)0x0;
          }
          else {
            uVar17 = pdVar11->id;
            if (info->base_id < uVar17) {
              uVar19 = info->mark;
              if (uVar19 == pdVar11->mark) {
LAB_0012c3b8:
                UNRECOVERED_JUMPTABLE = fns->tag_type;
                goto LAB_0012c3c5;
              }
            }
            else {
              bVar6 = debug_set_class_id(info,(char *)tag,type);
              if (bVar6 == 0) {
                return 0;
              }
              pdVar11 = (type->u).kclass;
              uVar19 = info->mark;
              uVar17 = pdVar11->id;
              if (uVar19 == pdVar11->mark) {
                if (uVar17 <= info->base_id) {
                    /* WARNING: Subroutine does not return */
                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,
                                "debug_write_class_type");
                }
                dVar13 = type->kind;
                goto LAB_0012c3b8;
              }
            }
            pdVar11->mark = uVar19;
            pdVar10 = pdVar11->vptrbase;
            if ((type == pdVar10) || (pdVar10 == (debug_type_s *)0x0)) {
              uVar19 = (uint)(pdVar10 != (debug_type_s *)0x0);
              dVar13 = type->kind;
            }
            else {
              bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);
              if (bVar6 == 0) {
                return 0;
              }
              dVar13 = type->kind;
              uVar19 = 1;
            }
          }
          bVar6 = (*fns->start_class_type)
                            (fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_CLASS),
                             type->size,uVar19,(uint)(type == pdVar10));
          if (bVar6 == 0) {
            return 0;
          }
          pdVar11 = (type->u).kclass;
          if (pdVar11 != (debug_class_type *)0x0) {
            if ((pdVar11->fields != (debug_field *)0x0) &&
               (pdVar22 = *pdVar11->fields, pdVar22 != (debug_field)0x0)) {
              uVar15 = 0;
              do {
                bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);
                if (bVar6 == 0) {
                  return 0;
                }
                if (pdVar22->static_member == 0) {
                  iVar23 = (*fns->struct_field)
                                     (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,
                                      (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);
                }
                else {
                  iVar23 = (*fns->class_static_member)
                                     (fhandle,pdVar22->name,(char *)pdVar22->u,pdVar22->visibility);
                }
                if (iVar23 == 0) {
                  return 0;
                }
                pdVar11 = (type->u).kclass;
                uVar15 = (ulong)((int)uVar15 + 1);
                pdVar22 = pdVar11->fields[uVar15];
              } while (pdVar22 != (debug_field)0x0);
            }
            if ((pdVar11->baseclasses != (debug_baseclass *)0x0) &&
               (pdVar24 = *pdVar11->baseclasses, pdVar24 != (debug_baseclass)0x0)) {
              uVar15 = 0;
              do {
                bVar6 = debug_write_type(info,fns,fhandle,pdVar24->type,(debug_name *)0x0);
                if (bVar6 == 0) {
                  return 0;
                }
                bVar6 = (*fns->class_baseclass)
                                  (fhandle,(ulong)pdVar24->bitpos,pdVar24->is_virtual,
                                   pdVar24->visibility);
                if (bVar6 == 0) {
                  return 0;
                }
                pdVar11 = (type->u).kclass;
                uVar15 = (ulong)((int)uVar15 + 1);
                pdVar24 = pdVar11->baseclasses[uVar15];
              } while (pdVar24 != (debug_baseclass)0x0);
            }
            if ((pdVar11->methods != (debug_method *)0x0) &&
               (local_48 = *pdVar11->methods, local_48 != (debug_method)0x0)) {
              local_3c = 0;
              do {
                bVar6 = (*fns->class_start_method)(fhandle,local_48->name);
                if (bVar6 == 0) {
                  return 0;
                }
                uVar15 = 0;
                pdVar5 = *local_48->variants;
                while (pdVar5 != (debug_method_variant_s *)0x0) {
                  if ((pdVar5->context != (debug_type_s *)0x0) &&
                     (bVar6 = debug_write_type(info,fns,fhandle,pdVar5->context,(debug_name *)0x0),
                     bVar6 == 0)) {
                    return 0;
                  }
                  bVar6 = debug_write_type(info,fns,fhandle,pdVar5->type,(debug_name *)0x0);
                  if (bVar6 == 0) {
                    return 0;
                  }
                  if (pdVar5->voffset == 0xffffffffffffffff) {
                    iVar23 = (*fns->class_static_method_variant)
                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,
                                        pdVar5->volatilep);
                  }
                  else {
                    iVar23 = (*fns->class_method_variant)
                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,
                                        pdVar5->volatilep,pdVar5->voffset,
                                        (uint)(pdVar5->context != (debug_type_s *)0x0));
                  }
                  if (iVar23 == 0) {
                    return 0;
                  }
                  uVar15 = (ulong)((int)uVar15 + 1);
                  pdVar5 = local_48->variants[uVar15];
                }
                bVar6 = (*fns->class_end_method)(fhandle);
                if (bVar6 == 0) {
                  return 0;
                }
                local_3c = local_3c + 1;
                local_48 = ((type->u).kclass)->methods[local_3c];
              } while (local_48 != (debug_method)0x0);
            }
          }
          UNRECOVERED_JUMPTABLE_02 = fns->end_class_type;
          goto LAB_0012bfcc;
        case DEBUG_KIND_ENUM:
          pdVar3 = (type->u).kenum;
          pbVar14 = (bfd_signed_vma *)0x0;
          ppcVar16 = (char **)0x0;
          if (pdVar3 != (debug_enum_type *)0x0) {
            pbVar14 = pdVar3->values;
            ppcVar16 = pdVar3->names;
          }
                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          bVar6 = (*fns->enum_type)(fhandle,(char *)tag,ppcVar16,pbVar14);
          return bVar6;
        case DEBUG_KIND_POINTER:
          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);
          if (bVar6 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_02 = fns->pointer_type;
          goto LAB_0012bfcc;
        case DEBUG_KIND_FUNCTION:
          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,
                                   (debug_name *)0x0);
          if (bVar6 == 0) {
            return 0;
          }
          pdVar8 = (type->u).kfunction;
          if (pdVar8->arg_types == (debug_type_conflict *)0x0) {
            uVar17 = 0xffffffff;
          }
          else {
            pdVar10 = *pdVar8->arg_types;
            if (pdVar10 == (debug_type_s *)0x0) {
              uVar17 = 0;
            }
            else {
              lVar21 = 0;
              do {
                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);
                if (bVar6 == 0) {
                  return 0;
                }
                pdVar8 = (type->u).kfunction;
                uVar17 = (int)lVar21 + 1;
                lVar21 = lVar21 + 1;
                pdVar10 = pdVar8->arg_types[lVar21];
              } while (pdVar10 != (debug_type_s *)0x0);
            }
          }
          bVar6 = pdVar8->varargs;
          UNRECOVERED_JUMPTABLE_01 =
               (_func_bfd_boolean_void_ptr_uint_bfd_boolean *)fns->function_type;
LAB_0012c31a:
                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          bVar6 = (*UNRECOVERED_JUMPTABLE_01)(fhandle,uVar17,bVar6);
          return bVar6;
        case DEBUG_KIND_REFERENCE:
          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);
          if (bVar6 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_02 = fns->reference_type;
          goto LAB_0012bfcc;
        case DEBUG_KIND_RANGE:
          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,
                                   (debug_name *)0x0);
          if (bVar6 == 0) {
            return 0;
          }
                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          bVar6 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);
          return bVar6;
        case DEBUG_KIND_ARRAY:
          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,
                                   (debug_name *)0x0);
          if (bVar6 == 0) {
            return 0;
          }
          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)
          ;
          if (bVar6 == 0) {
            return 0;
          }
          pdVar2 = (type->u).karray;
                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          bVar6 = (*fns->array_type)(fhandle,pdVar2->lower,pdVar2->upper,pdVar2->stringp);
          return bVar6;
        case DEBUG_KIND_SET:
          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,
                                   (debug_name *)0x0);
          if (bVar6 == 0) {
            return 0;
          }
          uVar17 = ((type->u).kclass)->mark;
          UNRECOVERED_JUMPTABLE_00 = (_func_bfd_boolean_void_ptr_uint *)fns->set_type;
          break;
        case DEBUG_KIND_OFFSET:
          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,
                                   (debug_name *)0x0);
          if (bVar6 == 0) {
            return 0;
          }
          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)
          ;
          if (bVar6 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_02 = fns->offset_type;
          goto LAB_0012bfcc;
        case DEBUG_KIND_METHOD:
          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,
                                   (debug_name *)0x0);
          if (bVar6 == 0) {
            return 0;
          }
          pdVar7 = (type->u).kmethod;
          if (pdVar7->arg_types == (debug_type_conflict *)0x0) {
            iVar23 = -1;
          }
          else {
            pdVar10 = *pdVar7->arg_types;
            if (pdVar10 == (debug_type_s *)0x0) {
              iVar23 = 0;
            }
            else {
              lVar21 = 0;
              do {
                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);
                if (bVar6 == 0) {
                  return 0;
                }
                pdVar7 = (type->u).kmethod;
                iVar23 = (int)lVar21 + 1;
                lVar21 = lVar21 + 1;
                pdVar10 = pdVar7->arg_types[lVar21];
              } while (pdVar10 != (debug_type_s *)0x0);
            }
          }
          pdVar10 = pdVar7->domain_type;
          if (pdVar10 != (debug_type_s *)0x0) {
            bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);
            if (bVar6 == 0) {
              return 0;
            }
            pdVar7 = (type->u).kmethod;
            pdVar10 = pdVar7->domain_type;
          }
                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          bVar6 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar23,
                                      pdVar7->varargs);
          return bVar6;
        case DEBUG_KIND_CONST:
          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);
          if (bVar6 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_02 = fns->const_type;
          goto LAB_0012bfcc;
        case DEBUG_KIND_VOLATILE:
          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);
          if (bVar6 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_02 = fns->volatile_type;
          goto LAB_0012bfcc;
        case DEBUG_KIND_NAMED:
          goto switchD_0012bc67_caseD_16;
        case DEBUG_KIND_TAGGED:
switchD_0012bc67_caseD_17:
          pdVar18 = (type->u).knamed;
          name = pdVar18->name;
          goto LAB_0012bc96;
        default:
                    /* WARNING: Subroutine does not return */
          abort();
        }
                    /* WARNING: Could not recover jumptable at 0x0012c2e8. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        bVar6 = (*UNRECOVERED_JUMPTABLE_00)(fhandle,uVar17);
        return bVar6;
      }
      name->mark = info->mark;
      if (dVar13 != DEBUG_KIND_NAMED) {
        if (dVar13 != 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");
          }
          tag = (debug_type)name->name;
          goto LAB_0012bc55;
        }
        goto switchD_0012bc67_caseD_17;
      }
switchD_0012bc67_caseD_16:
      name = (debug_name *)0x0;
    }
    pdVar18 = (type->u).knamed;
    pdVar1 = pdVar18->name;
    if (pdVar1->mark == info->mark) {
      if (dVar13 == DEBUG_KIND_NAMED) {
                    /* WARNING: Could not recover jumptable at 0x0012c67f. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        bVar6 = (*fns->typedef_type)(fhandle,pdVar1->name);
        return bVar6;
      }
LAB_0012c43d:
      pdVar10 = debug_get_real_type(info,type,(debug_type_real_list *)0x0);
      if (pdVar10 != (debug_type_s *)0x0) {
        dVar13 = pdVar10->kind;
        tag = (debug_type)((type->u).knamed)->name->name;
        if ((dVar13 - DEBUG_KIND_STRUCT < 4) && ((pdVar10->u).kclass != (debug_class_type *)0x0)) {
          uVar17 = ((pdVar10->u).kclass)->id;
          if (uVar17 <= info->base_id) {
            bVar6 = debug_set_class_id(info,(char *)tag,pdVar10);
            if (bVar6 == 0) {
              return 0;
            }
            dVar13 = pdVar10->kind;
            uVar17 = ((pdVar10->u).kclass)->id;
            tag = ((type->u).kfunction)->return_type->pointer;
          }
        }
        else {
          uVar17 = 0;
        }
        UNRECOVERED_JUMPTABLE = fns->tag_type;
        goto LAB_0012c3c5;
      }
      goto LAB_0012bff3;
    }
    if (dVar13 != DEBUG_KIND_TAGGED) goto LAB_0012bc2b;
    if (pdVar1 != name) goto LAB_0012c43d;
    name->mark = info->mark;
LAB_0012bc96:
    type = pdVar18->type;
  } while( true );
switchD_0012bc67_caseD_1:
  type = *((type->u).kindirect)->slot;
  if (type == (debug_type_conflict)0x0) {
LAB_0012bff3:
    UNRECOVERED_JUMPTABLE_02 = fns->empty_type;
LAB_0012bfcc:
                    /* WARNING: Could not recover jumptable at 0x0012bfdd. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    bVar6 = (*UNRECOVERED_JUMPTABLE_02)(fhandle);
    return bVar6;
  }
  goto LAB_0012bc21;
}



undefined8 FUN_0012bc00(long param_1,long param_2,undefined8 param_3,int *param_4,long param_5)

{
  int iVar1;
  int iVar2;
  long lVar3;
  code *UNRECOVERED_JUMPTABLE_00;
  undefined8 uVar4;
  int *piVar5;
  long *plVar6;
  long lVar7;
  undefined8 uVar8;
  ulong uVar9;
  undefined4 uVar10;
  undefined8 uVar11;
  uint uVar12;
  long lVar13;
  undefined8 *puVar14;
  bool bVar15;
  undefined8 *local_48;
  uint local_3c;
  
LAB_0012bc21:
  do {
    for (; iVar2 = *param_4, 1 < iVar2 - 0x16U; param_4 = *(int **)(*(long *)(param_4 + 4) + 8)) {
LAB_0012bc2b:
      if (param_5 == 0) {
        uVar4 = 0;
LAB_0012bc55:
        switch(iVar2) {
        case 0:
          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);
          fprintf(stderr,"%s\n",uVar4);
          return 0;
        case 1:
          goto switchD_0012bc67_caseD_1;
        case 2:
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);
          goto LAB_0012bfcc;
        case 3:
          iVar1 = param_4[4];
          iVar2 = param_4[1];
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);
          goto LAB_0012c31a;
        case 4:
          iVar2 = param_4[1];
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);
          break;
        case 5:
          iVar2 = param_4[1];
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);
          break;
        case 6:
          iVar2 = param_4[1];
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);
          break;
        case 7:
        case 8:
          lVar3 = *(long *)(param_4 + 4);
          if (lVar3 == 0) {
            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);
            iVar1 = param_4[1];
            uVar10 = 0;
          }
          else {
            uVar12 = *(uint *)(lVar3 + 0xc);
            if (*(uint *)(param_1 + 0x38) < uVar12) {
              iVar2 = *(int *)(param_1 + 0x30);
              if (*(int *)(lVar3 + 8) == iVar2) {
LAB_0012c414:
                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);
                iVar2 = *param_4;
LAB_0012c3c5:
                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);
                return uVar4;
              }
            }
            else {
              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);
              if (iVar2 == 0) {
                return 0;
              }
              lVar3 = *(long *)(param_4 + 4);
              iVar2 = *(int *)(param_1 + 0x30);
              if (iVar2 == *(int *)(lVar3 + 8)) {
                uVar12 = *(uint *)(lVar3 + 0xc);
                if (uVar12 <= *(uint *)(param_1 + 0x38)) {
                    /* WARNING: Subroutine does not return */
                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,
                                "debug_write_type");
                }
                goto LAB_0012c414;
              }
            }
            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);
            iVar1 = param_4[1];
            *(int *)(lVar3 + 8) = iVar2;
            uVar10 = *(undefined4 *)(lVar3 + 0xc);
            iVar2 = *param_4;
          }
          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);
          if (iVar2 == 0) {
            return 0;
          }
          if (((*(long **)(param_4 + 4) != (long *)0x0) &&
              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&
             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {
            uVar9 = 0;
            do {
              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);
              if (iVar2 == 0) {
                return 0;
              }
              iVar2 = (**(code **)(param_2 + 0xa0))
                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),
                                 *(undefined4 *)((long)puVar14 + 0x1c));
              if (iVar2 == 0) {
                return 0;
              }
              uVar9 = (ulong)((int)uVar9 + 1);
              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);
            } while (puVar14 != (undefined8 *)0x0);
          }
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);
          goto LAB_0012bfcc;
        case 9:
        case 10:
          lVar3 = *(long *)(param_4 + 4);
          if (lVar3 == 0) {
            bVar15 = false;
            uVar12 = 0;
            piVar5 = (int *)0x0;
          }
          else {
            uVar12 = *(uint *)(lVar3 + 0xc);
            if (*(uint *)(param_1 + 0x38) < uVar12) {
              iVar1 = *(int *)(param_1 + 0x30);
              if (iVar1 == *(int *)(lVar3 + 8)) {
LAB_0012c3b8:
                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);
                goto LAB_0012c3c5;
              }
            }
            else {
              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);
              if (iVar2 == 0) {
                return 0;
              }
              lVar3 = *(long *)(param_4 + 4);
              iVar1 = *(int *)(param_1 + 0x30);
              uVar12 = *(uint *)(lVar3 + 0xc);
              if (iVar1 == *(int *)(lVar3 + 8)) {
                if (uVar12 <= *(uint *)(param_1 + 0x38)) {
                    /* WARNING: Subroutine does not return */
                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,
                                "debug_write_class_type");
                }
                iVar2 = *param_4;
                goto LAB_0012c3b8;
              }
            }
            *(int *)(lVar3 + 8) = iVar1;
            piVar5 = *(int **)(lVar3 + 0x20);
            bVar15 = piVar5 != (int *)0x0;
            if ((param_4 == piVar5) || (!bVar15)) {
              iVar2 = *param_4;
            }
            else {
              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);
              if (iVar2 == 0) {
                return 0;
              }
              iVar2 = *param_4;
              bVar15 = true;
            }
          }
          iVar2 = (**(code **)(param_2 + 0xb0))
                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);
          if (iVar2 == 0) {
            return 0;
          }
          plVar6 = *(long **)(param_4 + 4);
          if (plVar6 != (long *)0x0) {
            if (((long *)*plVar6 != (long *)0x0) &&
               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {
              uVar9 = 0;
              do {
                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);
                if (iVar2 == 0) {
                  return 0;
                }
                if (*(int *)((long)puVar14 + 0x14) == 0) {
                  iVar2 = (**(code **)(param_2 + 0xa0))
                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),
                                     *(undefined4 *)((long)puVar14 + 0x1c));
                }
                else {
                  iVar2 = (**(code **)(param_2 + 0xb8))
                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));
                }
                if (iVar2 == 0) {
                  return 0;
                }
                plVar6 = *(long **)(param_4 + 4);
                uVar9 = (ulong)((int)uVar9 + 1);
                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);
              } while (puVar14 != (undefined8 *)0x0);
            }
            if (((long *)plVar6[2] != (long *)0x0) &&
               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {
              uVar9 = 0;
              do {
                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);
                if (iVar2 == 0) {
                  return 0;
                }
                iVar2 = (**(code **)(param_2 + 0xc0))
                                  (param_3,*(undefined4 *)(puVar14 + 1),
                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)
                                  );
                if (iVar2 == 0) {
                  return 0;
                }
                plVar6 = *(long **)(param_4 + 4);
                uVar9 = (ulong)((int)uVar9 + 1);
                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);
              } while (puVar14 != (undefined8 *)0x0);
            }
            if (((long *)plVar6[3] != (long *)0x0) &&
               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {
              local_3c = 0;
              do {
                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);
                if (iVar2 == 0) {
                  return 0;
                }
                uVar9 = 0;
                puVar14 = *(undefined8 **)local_48[1];
                while (puVar14 != (undefined8 *)0x0) {
                  if ((puVar14[5] != 0) &&
                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {
                    return 0;
                  }
                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);
                  if (iVar2 == 0) {
                    return 0;
                  }
                  if (puVar14[4] == -1) {
                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);
                  }
                  else {
                    iVar2 = (**(code **)(param_2 + 0xd0))
                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),
                                       *(undefined4 *)((long)puVar14 + 0x14),
                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);
                  }
                  if (iVar2 == 0) {
                    return 0;
                  }
                  uVar9 = (ulong)((int)uVar9 + 1);
                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);
                }
                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);
                if (iVar2 == 0) {
                  return 0;
                }
                local_3c = local_3c + 1;
                local_48 = *(undefined8 **)
                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);
              } while (local_48 != (undefined8 *)0x0);
            }
          }
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);
          goto LAB_0012bfcc;
        case 0xb:
          puVar14 = *(undefined8 **)(param_4 + 4);
          uVar8 = 0;
          uVar11 = 0;
          if (puVar14 != (undefined8 *)0x0) {
            uVar8 = puVar14[1];
            uVar11 = *puVar14;
          }
                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          uVar4 = (**(code **)(param_2 + 0x40))
                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));
          return uVar4;
        case 0xc:
          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);
          if (iVar2 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);
          goto LAB_0012bfcc;
        case 0xd:
          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);
          if (iVar2 == 0) {
            return 0;
          }
          lVar3 = *(long *)(param_4 + 4);
          if (*(long **)(lVar3 + 8) == (long *)0x0) {
            iVar2 = -1;
          }
          else {
            lVar7 = **(long **)(lVar3 + 8);
            if (lVar7 == 0) {
              iVar2 = 0;
            }
            else {
              lVar13 = 0;
              do {
                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);
                if (iVar2 == 0) {
                  return 0;
                }
                lVar3 = *(long *)(param_4 + 4);
                iVar2 = (int)lVar13 + 1;
                lVar13 = lVar13 + 1;
                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);
              } while (lVar7 != 0);
            }
          }
          iVar1 = *(int *)(lVar3 + 0x10);
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);
LAB_0012c31a:
                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);
          return uVar4;
        case 0xe:
          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);
          if (iVar2 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);
          goto LAB_0012bfcc;
        case 0xf:
          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);
          if (iVar2 == 0) {
            return 0;
          }
                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          uVar4 = (**(code **)(param_2 + 0x60))
                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),
                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));
          return uVar4;
        case 0x10:
          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);
          if (iVar2 == 0) {
            return 0;
          }
          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0
                              );
          if (iVar2 == 0) {
            return 0;
          }
          lVar3 = *(long *)(param_4 + 4);
                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          uVar4 = (**(code **)(param_2 + 0x68))
                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),
                             *(undefined4 *)(lVar3 + 0x20));
          return uVar4;
        case 0x11:
          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);
          if (iVar2 == 0) {
            return 0;
          }
          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);
          break;
        case 0x12:
          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);
          if (iVar2 == 0) {
            return 0;
          }
          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0
                              );
          if (iVar2 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);
          goto LAB_0012bfcc;
        case 0x13:
          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);
          if (iVar2 == 0) {
            return 0;
          }
          lVar3 = *(long *)(param_4 + 4);
          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {
            iVar2 = -1;
          }
          else {
            lVar7 = **(long **)(lVar3 + 0x10);
            if (lVar7 == 0) {
              iVar2 = 0;
            }
            else {
              lVar13 = 0;
              do {
                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);
                if (iVar2 == 0) {
                  return 0;
                }
                lVar3 = *(long *)(param_4 + 4);
                iVar2 = (int)lVar13 + 1;
                lVar13 = lVar13 + 1;
                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);
              } while (lVar7 != 0);
            }
          }
          lVar7 = *(long *)(lVar3 + 8);
          if (lVar7 != 0) {
            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);
            if (iVar1 == 0) {
              return 0;
            }
            lVar3 = *(long *)(param_4 + 4);
            lVar7 = *(long *)(lVar3 + 8);
          }
                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          uVar4 = (**(code **)(param_2 + 0x80))
                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));
          return uVar4;
        case 0x14:
          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);
          if (iVar2 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);
          goto LAB_0012bfcc;
        case 0x15:
          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);
          if (iVar2 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);
          goto LAB_0012bfcc;
        case 0x16:
          goto switchD_0012bc67_caseD_16;
        case 0x17:
switchD_0012bc67_caseD_17:
          plVar6 = *(long **)(param_4 + 4);
          param_5 = *plVar6;
          goto LAB_0012bc96;
        default:
                    /* WARNING: Subroutine does not return */
          abort();
        }
                    /* WARNING: Could not recover jumptable at 0x0012c2e8. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);
        return uVar4;
      }
      *(undefined4 *)(param_5 + 0x10) = *(undefined4 *)(param_1 + 0x30);
      if (iVar2 != 0x16) {
        if (iVar2 != 0x17) {
          if (*(int *)(param_5 + 0x14) != 1) {
                    /* WARNING: Subroutine does not return */
            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,
                          "debug_write_type");
          }
          uVar4 = *(undefined8 *)(param_5 + 8);
          goto LAB_0012bc55;
        }
        goto switchD_0012bc67_caseD_17;
      }
switchD_0012bc67_caseD_16:
      param_5 = 0;
    }
    plVar6 = *(long **)(param_4 + 4);
    lVar3 = *plVar6;
    if (*(int *)(lVar3 + 0x10) == *(int *)(param_1 + 0x30)) {
      if (iVar2 == 0x16) {
                    /* WARNING: Could not recover jumptable at 0x0012c67f. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));
        return uVar4;
      }
LAB_0012c43d:
      piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0);
      if (piVar5 != (int *)0x0) {
        iVar2 = *piVar5;
        uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);
        if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {
          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);
          if (uVar12 <= *(uint *)(param_1 + 0x38)) {
            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);
            if (iVar2 == 0) {
              return 0;
            }
            iVar2 = *piVar5;
            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);
            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);
          }
        }
        else {
          uVar12 = 0;
        }
        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);
        goto LAB_0012c3c5;
      }
      goto LAB_0012bff3;
    }
    if (iVar2 != 0x17) goto LAB_0012bc2b;
    if (lVar3 != param_5) goto LAB_0012c43d;
    *(int *)(param_5 + 0x10) = *(int *)(param_1 + 0x30);
LAB_0012bc96:
    param_4 = (int *)plVar6[1];
  } while( true );
switchD_0012bc67_caseD_1:
  param_4 = *(int **)**(undefined8 **)(param_4 + 4);
  if (param_4 == (int *)0x0) {
LAB_0012bff3:
    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x10);
LAB_0012bfcc:
                    /* WARNING: Could not recover jumptable at 0x0012bfdd. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3);
    return uVar4;
  }
  goto LAB_0012bc21;
}


PUSH R15
MOV R15,RDI
PUSH R14
PUSH R13
PUSH R12
MOV R12,RDX
LEA RDX,[0x146674]
PUSH RBP
MOV RBP,RSI
PUSH RBX
MOV RBX,RCX
SUB RSP,0x18
MOV ECX,dword ptr [RBX]
LEA EAX,[RCX + -0x16]
CMP EAX,0x1
JBE 0x0012bc70
TEST R8,R8
JZ 0x0012bca0
MOV EAX,dword ptr [R15 + 0x30]
MOV dword ptr [R8 + 0x10],EAX
CMP ECX,0x16
JZ 0x0012bca8
CMP ECX,0x17
JZ 0x0012c360
CMP dword ptr [R8 + 0x14],0x1
JNZ 0x0012c697
MOV R13,qword ptr [R8 + 0x8]
CMP ECX,0x17
JA 0x00107889
MOV EAX,ECX
MOVSXD RAX,dword ptr [RDX + RAX*0x4]
ADD RAX,RDX
JMP RAX
MOV RDI,qword ptr [RBX + 0x10]
MOV ESI,dword ptr [R15 + 0x30]
MOV RAX,qword ptr [RDI]
CMP dword ptr [RAX + 0x10],ESI
JZ 0x0012c434
CMP ECX,0x17
JNZ 0x0012bc2b
CMP RAX,R8
JNZ 0x0012c43d
MOV dword ptr [R8 + 0x10],ESI
MOV RBX,qword ptr [RDI + 0x8]
JMP 0x0012bc21
XOR R13D,R13D
JMP 0x0012bc55
MOV RAX,qword ptr [RBX + 0x10]
XOR R8D,R8D
MOV RBX,qword ptr [RAX + 0x8]
JMP 0x0012bc21
MOV RCX,qword ptr [RBX + 0x10]
XOR R8D,R8D
MOV RDX,R12
MOV RSI,RBP
MOV RDI,R15
CALL 0x0012bc00
TEST EAX,EAX
JZ 0x0012c02b
MOV RAX,qword ptr [RBP + 0x88]
JMP 0x0012bfcc
MOV RAX,qword ptr [RBX + 0x10]
XOR R8D,R8D
MOV RDX,R12
MOV RSI,RBP
MOV RDI,R15
MOV RCX,qword ptr [RAX]
CALL 0x0012bc00
TEST EAX,EAX
JZ 0x0012c02b
MOV RAX,qword ptr [RBX + 0x10]
MOV RDX,qword ptr [RAX + 0x10]
TEST RDX,RDX
JZ 0x0012c429
MOV RCX,qword ptr [RDX]
TEST RCX,RCX
JZ 0x0012c68f
XOR R13D,R13D
XOR R8D,R8D
MOV RDX,R12
MOV RSI,RBP
MOV RDI,R15
CALL 0x0012bc00
TEST EAX,EAX
JZ 0x0012c02b
MOV RAX,qword ptr [RBX + 0x10]
LEA R14D,[R13 + 0x1]
ADD R13,0x1
MOV RDX,qword ptr [RAX + 0x10]
MOV RCX,qword ptr [RDX + R13*0x8]
TEST RCX,RCX
JNZ 0x0012bd30
MOV RDX,qword ptr [RAX + 0x8]
TEST RDX,RDX
JZ 0x0012bd8f
XOR R8D,R8D
MOV RCX,RDX
MOV RSI,RBP
MOV RDX,R12
MOV RDI,R15
CALL 0x0012bc00
TEST EAX,EAX
JZ 0x0012c02b
MOV RAX,qword ptr [RBX + 0x10]
MOV RDX,qword ptr [RAX + 0x8]
XOR ESI,ESI
TEST RDX,RDX
MOV ECX,dword ptr [RAX + 0x18]
MOV RAX,qword ptr [RBP + 0x80]
SETNZ SIL
ADD RSP,0x18
MOV EDX,R14D
MOV RDI,R12
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
JMP RAX
MOV RAX,qword ptr [RBX + 0x10]
XOR R8D,R8D
MOV RDX,R12
MOV RSI,RBP
MOV RDI,R15
MOV RCX,qword ptr [RAX]
CALL 0x0012bc00
TEST EAX,EAX
JZ 0x0012c02b
MOV RAX,qword ptr [RBX + 0x10]
XOR R8D,R8D
MOV RDX,R12
MOV RSI,RBP
MOV RDI,R15
MOV RCX,qword ptr [RAX + 0x8]
CALL 0x0012bc00
TEST EAX,EAX
JZ 0x0012c02b
MOV RAX,qword ptr [RBP + 0x78]
JMP 0x0012bfcc
MOV RAX,qword ptr [RBX + 0x10]
XOR R8D,R8D
MOV RDX,R12
MOV RSI,RBP
MOV RDI,R15
MOV RCX,qword ptr [RAX]
CALL 0x0012bc00
TEST EAX,EAX
JZ 0x0012c02b
MOV RAX,qword ptr [RBX + 0x10]
MOV ESI,dword ptr [RAX + 0x8]
MOV RAX,qword ptr [RBP + 0x70]
JMP 0x0012c2d7
MOV RAX,qword ptr [RBX + 0x10]
XOR R8D,R8D
MOV RDX,R12
MOV RSI,RBP
MOV RDI,R15
MOV RCX,qword ptr [RAX]
CALL 0x0012bc00
TEST EAX,EAX
JZ 0x0012c02b
MOV RAX,qword ptr [RBX + 0x10]
XOR R8D,R8D
MOV RDX,R12
MOV RSI,RBP
MOV RDI,R15
MOV RCX,qword ptr [RAX + 0x8]
CALL 0x0012bc00
TEST EAX,EAX
JZ 0x0012c02b
MOV RAX,qword ptr [RBX + 0x10]
MOV RDI,R12
MOV ECX,dword ptr [RAX + 0x20]
MOV RDX,qword ptr [RAX + 0x18]
MOV RSI,qword ptr [RAX + 0x10]
MOV RAX,qword ptr [RBP + 0x68]
ADD RSP,0x18
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
JMP RAX
MOV RAX,qword ptr [RBX + 0x10]
XOR R8D,R8D
MOV RDX,R12
MOV RSI,RBP
MOV RDI,R15
MOV RCX,qword ptr [RAX]
CALL 0x0012bc00
TEST EAX,EAX
JZ 0x0012c02b
MOV RAX,qword ptr [RBX + 0x10]
MOV RDI,R12
MOV RDX,qword ptr [RAX + 0x10]
MOV RSI,qword ptr [RAX + 0x8]
MOV RAX,qword ptr [RBP + 0x60]
ADD RSP,0x18
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
JMP RAX
MOV RCX,qword ptr [RBX + 0x10]
XOR R8D,R8D
MOV RDX,R12
MOV RSI,RBP
MOV RDI,R15
CALL 0x0012bc00
TEST EAX,EAX
JZ 0x0012c02b
MOV RAX,qword ptr [RBP + 0x58]
JMP 0x0012bfcc
MOV RAX,qword ptr [RBX + 0x10]
XOR R8D,R8D
MOV RDX,R12
MOV RSI,RBP
MOV RDI,R15
MOV RCX,qword ptr [RAX]
CALL 0x0012bc00
TEST EAX,EAX
JZ 0x0012c02b
MOV RAX,qword ptr [RBX + 0x10]
MOV RDX,qword ptr [RAX + 0x8]
TEST RDX,RDX
JZ 0x0012c41f
MOV RCX,qword ptr [RDX]
TEST RCX,RCX
JZ 0x0012c688
XOR R13D,R13D
XOR R8D,R8D
MOV RDX,R12
MOV RSI,RBP
MOV RDI,R15
CALL 0x0012bc00
TEST EAX,EAX
JZ 0x0012c02b
MOV RAX,qword ptr [RBX + 0x10]
LEA ESI,[R13 + 0x1]
ADD R13,0x1
MOV RDX,qword ptr [RAX + 0x8]
MOV RCX,qword ptr [RDX + R13*0x8]
TEST RCX,RCX
JNZ 0x0012bf60
MOV EDX,dword ptr [RAX + 0x10]
MOV RAX,qword ptr [RBP + 0x50]
JMP 0x0012c31a
MOV RCX,qword ptr [RBX + 0x10]
XOR R8D,R8D
MOV RDX,R12
MOV RSI,RBP
MOV RDI,R15
CALL 0x0012bc00
TEST EAX,EAX
JZ 0x0012c02b
MOV RAX,qword ptr [RBP + 0x90]
JMP 0x0012bfcc
MOV RAX,qword ptr [RBP + 0x18]
ADD RSP,0x18
MOV RDI,R12
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
JMP RAX
MOV RAX,qword ptr [RBX + 0x10]
MOV RAX,qword ptr [RAX]
MOV RBX,qword ptr [RAX]
TEST RBX,RBX
JNZ 0x0012bc21
MOV RAX,qword ptr [RBP + 0x10]
JMP 0x0012bfcc
MOV EDX,0x5
LEA RSI,[0x146258]
XOR EDI,EDI
CALL 0x00107230
MOV RDI,qword ptr [0x00157220]
LEA RSI,[0x1434a5]
MOV RDX,RAX
XOR EAX,EAX
CALL 0x00107850
ADD RSP,0x18
XOR EAX,EAX
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RCX,qword ptr [RBX + 0x10]
XOR R8D,R8D
MOV RDX,R12
MOV RSI,RBP
MOV RDI,R15
CALL 0x0012bc00
TEST EAX,EAX
JZ 0x0012c02b
MOV RAX,qword ptr [RBP + 0x48]
JMP 0x0012bfcc
MOV RAX,qword ptr [RBX + 0x10]
MOV R8,qword ptr [RBP + 0x40]
XOR ECX,ECX
XOR EDX,EDX
TEST RAX,RAX
JZ 0x0012c080
MOV RCX,qword ptr [RAX + 0x8]
MOV RDX,qword ptr [RAX]
ADD RSP,0x18
MOV RSI,R13
MOV RDI,R12
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
JMP R8
MOV R14,qword ptr [RBX + 0x10]
TEST R14,R14
JZ 0x0012c330
MOV R10D,dword ptr [R14 + 0xc]
CMP R10D,dword ptr [R15 + 0x38]
JBE 0x0012c380
MOV EAX,dword ptr [R15 + 0x30]
CMP EAX,dword ptr [R14 + 0x8]
JZ 0x0012c3b8
MOV dword ptr [R14 + 0x8],EAX
MOV R14,qword ptr [R14 + 0x20]
TEST R14,R14
SETNZ R9B
CMP RBX,R14
JZ 0x0012c370
TEST R9B,R9B
JZ 0x0012c370
XOR R8D,R8D
MOV RCX,R14
MOV RDX,R12
MOV RSI,RBP
MOV RDI,R15
MOV dword ptr [RSP],R10D
CALL 0x0012bc00
TEST EAX,EAX
JZ 0x0012c02b
MOV ECX,dword ptr [RBX]
MOV R10D,dword ptr [RSP]
MOV R9D,0x1
NOP word ptr CS:[RAX + RAX*0x1]
CMP ECX,0x9
MOV R8D,dword ptr [RBX + 0x4]
MOV EDX,R10D
MOV RSI,R13
SETZ CL
SUB RSP,0x8
XOR EAX,EAX
CMP RBX,R14
SETZ AL
MOVZX ECX,CL
MOV RDI,R12
PUSH RAX
CALL qword ptr [RBP + 0xb0]
POP R8
POP R9
TEST EAX,EAX
JZ 0x0012c02b
MOV RAX,qword ptr [RBX + 0x10]
TEST RAX,RAX
JZ 0x0012c657
MOV RDX,qword ptr [RAX]
TEST RDX,RDX
JZ 0x0012c4ba
MOV R13,qword ptr [RDX]
TEST R13,R13
JZ 0x0012c4ba
XOR R14D,R14D
JMP 0x0012c1b3
MOV RDX,qword ptr [R13 + 0x18]
MOV ECX,R8D
MOV RDI,R12
CALL qword ptr [RBP + 0xb8]
TEST EAX,EAX
JZ 0x0012c02b
MOV RAX,qword ptr [RBX + 0x10]
LEA ECX,[R14 + 0x1]
MOV R14,RCX
MOV RDX,qword ptr [RAX]
MOV R13,qword ptr [RDX + RCX*0x8]
TEST R13,R13
JZ 0x0012c4ba
MOV RCX,qword ptr [R13 + 0x8]
XOR R8D,R8D
MOV RDX,R12
MOV RSI,RBP
MOV RDI,R15
CALL 0x0012bc00
TEST EAX,EAX
JZ 0x0012c02b
MOV EDI,dword ptr [R13 + 0x14]
MOV R8D,dword ptr [R13 + 0x10]
MOV RSI,qword ptr [R13]
TEST EDI,EDI
JNZ 0x0012c180
MOV ECX,dword ptr [R13 + 0x1c]
MOV EDX,dword ptr [R13 + 0x18]
MOV RDI,R12
CALL qword ptr [RBP + 0xa0]
TEST EAX,EAX
JNZ 0x0012c198
JMP 0x0012c02b
MOV RAX,qword ptr [RBX + 0x10]
TEST RAX,RAX
JZ 0x0012c340
MOV EDX,dword ptr [RAX + 0xc]
CMP EDX,dword ptr [R15 + 0x38]
JBE 0x0012c3e0
MOV ECX,dword ptr [R15 + 0x30]
CMP dword ptr [RAX + 0x8],ECX
JZ 0x0012c414
MOV R9,qword ptr [RBP + 0x98]
MOV R8D,dword ptr [RBX + 0x4]
MOV dword ptr [RAX + 0x8],ECX
XOR ECX,ECX
MOV EDX,dword ptr [RAX + 0xc]
CMP dword ptr [RBX],0x7
SETZ CL
MOV RSI,R13
MOV RDI,R12
CALL R9
TEST EAX,EAX
JZ 0x0012c02b
MOV RAX,qword ptr [RBX + 0x10]
TEST RAX,RAX
JZ 0x0012c2c2
MOV RAX,qword ptr [RAX]
TEST RAX,RAX
JZ 0x0012c2c2
MOV R13,qword ptr [RAX]
TEST R13,R13
JZ 0x0012c2c2
XOR R14D,R14D
MOV RCX,qword ptr [R13 + 0x8]
XOR R8D,R8D
MOV RDX,R12
MOV RSI,RBP
MOV RDI,R15
CALL 0x0012bc00
TEST EAX,EAX
JZ 0x0012c02b
MOV ECX,dword ptr [R13 + 0x1c]
MOV EDX,dword ptr [R13 + 0x18]
MOV RDI,R12
MOV R8D,dword ptr [R13 + 0x10]
MOV RSI,qword ptr [R13]
CALL qword ptr [RBP + 0xa0]
TEST EAX,EAX
JZ 0x0012c02b
MOV RAX,qword ptr [RBX + 0x10]
LEA EDX,[R14 + 0x1]
MOV R14,RDX
MOV RAX,qword ptr [RAX]
MOV R13,qword ptr [RAX + RDX*0x8]
TEST R13,R13
JNZ 0x0012c26d
MOV RAX,qword ptr [RBP + 0xa8]
JMP 0x0012bfcc
MOV ESI,dword ptr [RBX + 0x4]
MOV RAX,qword ptr [RBP + 0x38]
ADD RSP,0x18
MOV RDI,R12
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
JMP RAX
MOV ESI,dword ptr [RBX + 0x4]
MOV RAX,qword ptr [RBP + 0x30]
JMP 0x0012c2d7
MOV ESI,dword ptr [RBX + 0x4]
MOV RAX,qword ptr [RBP + 0x28]
JMP 0x0012c2d7
MOV EDX,dword ptr [RBX + 0x10]
MOV ESI,dword ptr [RBX + 0x4]
MOV RAX,qword ptr [RBP + 0x20]
ADD RSP,0x18
MOV RDI,R12
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
JMP RAX
XOR R9D,R9D
XOR R10D,R10D
JMP 0x0012c120
CMP ECX,0x7
MOV R9,qword ptr [RBP + 0x98]
MOV R8D,dword ptr [RBX + 0x4]
SETZ CL
XOR EDX,EDX
MOVZX ECX,CL
JMP 0x0012c240
MOV RDI,qword ptr [RBX + 0x10]
MOV R8,qword ptr [RDI]
JMP 0x0012bc96
MOVZX R9D,R9B
MOV ECX,dword ptr [RBX]
JMP 0x0012c120
MOV RDX,RBX
MOV RSI,R13
MOV RDI,R15
CALL 0x0012bae0
TEST EAX,EAX
JZ 0x0012c02b
MOV R14,qword ptr [RBX + 0x10]
MOV EAX,dword ptr [R15 + 0x30]
MOV R10D,dword ptr [R14 + 0xc]
CMP EAX,dword ptr [R14 + 0x8]
JNZ 0x0012c0c9
CMP dword ptr [R15 + 0x38],R10D
JNC 0x0012c6b6
MOV ECX,dword ptr [RBX]
MOV RAX,qword ptr [RBP + 0xf8]
MOV EDX,R10D
MOV RSI,R13
ADD RSP,0x18
MOV RDI,R12
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
JMP RAX
MOV RDX,RBX
MOV RSI,R13
MOV RDI,R15
CALL 0x0012bae0
TEST EAX,EAX
JZ 0x0012c02b
MOV RAX,qword ptr [RBX + 0x10]
MOV ECX,dword ptr [R15 + 0x30]
CMP ECX,dword ptr [RAX + 0x8]
JNZ 0x0012c227
MOV EDX,dword ptr [RAX + 0xc]
CMP EDX,dword ptr [R15 + 0x38]
JBE 0x0012c6d5
MOV RAX,qword ptr [RBP + 0xf8]
MOV ECX,dword ptr [RBX]
JMP 0x0012c3c2
MOV ESI,0xffffffff
JMP 0x0012bf92
MOV R14D,0xffffffff
JMP 0x0012bd62
CMP ECX,0x16
JZ 0x0012c663
XOR EDX,EDX
MOV RSI,RBX
MOV RDI,R15
CALL 0x0012b0d0
MOV R13,RAX
TEST RAX,RAX
JZ 0x0012bff3
MOV ECX,dword ptr [RAX]
MOV RAX,qword ptr [RBX + 0x10]
MOV RAX,qword ptr [RAX]
MOV RSI,qword ptr [RAX + 0x8]
LEA EAX,[RCX + -0x7]
CMP EAX,0x3
JA 0x0012c681
MOV RAX,qword ptr [R13 + 0x10]
TEST RAX,RAX
JZ 0x0012c681
MOV EDX,dword ptr [RAX + 0xc]
CMP EDX,dword ptr [R15 + 0x38]
JA 0x0012c4ae
MOV RDX,R13
MOV RDI,R15
CALL 0x0012bae0
TEST EAX,EAX
JZ 0x0012c02b
MOV RAX,qword ptr [R13 + 0x10]
MOV ECX,dword ptr [R13]
MOV EDX,dword ptr [RAX + 0xc]
MOV RAX,qword ptr [RBX + 0x10]
MOV RAX,qword ptr [RAX]
MOV RSI,qword ptr [RAX + 0x8]
MOV RAX,qword ptr [RBP + 0xf8]
JMP 0x0012c3c5
MOV RDX,qword ptr [RAX + 0x10]
TEST RDX,RDX
JZ 0x0012c521
MOV R14,qword ptr [RDX]
TEST R14,R14
JZ 0x0012c521
XOR R13D,R13D
NOP
MOV RCX,qword ptr [R14]
XOR R8D,R8D
MOV RDX,R12
MOV RSI,RBP
MOV RDI,R15
CALL 0x0012bc00
TEST EAX,EAX
JZ 0x0012c02b
MOV ECX,dword ptr [R14 + 0x10]
MOV EDX,dword ptr [R14 + 0xc]
MOV RDI,R12
MOV ESI,dword ptr [R14 + 0x8]
CALL qword ptr [RBP + 0xc0]
TEST EAX,EAX
JZ 0x0012c02b
MOV RAX,qword ptr [RBX + 0x10]
LEA ECX,[R13 + 0x1]
MOV R13,RCX
MOV RDX,qword ptr [RAX + 0x10]
MOV R14,qword ptr [RDX + RCX*0x8]
TEST R14,R14
JNZ 0x0012c4d0
MOV RAX,qword ptr [RAX + 0x18]
TEST RAX,RAX
JZ 0x0012c657
MOV RAX,qword ptr [RAX]
MOV qword ptr [RSP],RAX
TEST RAX,RAX
JZ 0x0012c657
MOV dword ptr [RSP + 0xc],0x0
MOV R14,qword ptr [RSP]
MOV RDI,R12
MOV RSI,qword ptr [R14]
CALL qword ptr [RBP + 0xc8]
TEST EAX,EAX
JZ 0x0012c02b
MOV RAX,qword ptr [R14 + 0x8]
XOR R13D,R13D
MOV R14,qword ptr [RAX]
TEST R14,R14
JNZ 0x0012c5b2
JMP 0x0012c624
SUB RSP,0x8
XOR EAX,EAX
CMP qword ptr [R14 + 0x28],0x0
MOV RDI,R12
SETNZ AL
PUSH RAX
CALL qword ptr [RBP + 0xd0]
POP RDX
POP RCX
TEST EAX,EAX
JZ 0x0012c02b
MOV RAX,qword ptr [RSP]
LEA EDX,[R13 + 0x1]
MOV R13,RDX
MOV RAX,qword ptr [RAX + 0x8]
MOV R14,qword ptr [RAX + RDX*0x8]
TEST R14,R14
JZ 0x0012c624
MOV RCX,qword ptr [R14 + 0x28]
TEST RCX,RCX
JZ 0x0012c5d4
XOR R8D,R8D
MOV RDX,R12
MOV RSI,RBP
MOV RDI,R15
CALL 0x0012bc00
TEST EAX,EAX
JZ 0x0012c02b
MOV RCX,qword ptr [R14 + 0x8]
XOR R8D,R8D
MOV RDX,R12
MOV RSI,RBP
MOV RDI,R15
CALL 0x0012bc00
TEST EAX,EAX
JZ 0x0012c02b
MOV R9,qword ptr [R14 + 0x20]
MOV R8D,dword ptr [R14 + 0x18]
MOV ECX,dword ptr [R14 + 0x14]
MOV EDX,dword ptr [R14 + 0x10]
MOV RSI,qword ptr [R14]
CMP R9,-0x1
JNZ 0x0012c578
MOV RDI,R12
CALL qword ptr [RBP + 0xd8]
TEST EAX,EAX
JNZ 0x0012c59a
JMP 0x0012c02b
MOV RDI,R12
CALL qword ptr [RBP + 0xe0]
TEST EAX,EAX
JZ 0x0012c02b
MOV RAX,qword ptr [RBX + 0x10]
ADD dword ptr [RSP + 0xc],0x1
MOV EDX,dword ptr [RSP + 0xc]
MOV RAX,qword ptr [RAX + 0x18]
MOV RAX,qword ptr [RAX + RDX*0x8]
MOV qword ptr [RSP],RAX
TEST RAX,RAX
JNZ 0x0012c546
MOV RAX,qword ptr [RBP + 0xe8]
JMP 0x0012bfcc
MOV RSI,qword ptr [RAX + 0x8]
MOV RAX,qword ptr [RBP + 0xf0]
ADD RSP,0x18
MOV RDI,R12
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
JMP RAX
XOR EDX,EDX
JMP 0x0012c4ae
XOR ESI,ESI
JMP 0x0012bf92
XOR R14D,R14D
JMP 0x0012bd62
LEA RCX,[0x146730]
MOV EDX,0x9aa
LEA RSI,[0x146763]
LEA RDI,[0x146238]
CALL 0x001072d0
LEA RCX,[0x1466f0]
MOV EDX,0xa7d
LEA RSI,[0x146763]
LEA RDI,[0x146288]
CALL 0x001072d0
LEA RCX,[0x146730]
MOV EDX,0x9d1
LEA RSI,[0x146763]
LEA RDI,[0x146288]
CALL 0x001072d0
(translation_unit "undefined8 FUN_0012bc00(long param_1,long param_2,undefined8 param_3,int *param_4,long param_5)\n\n{\n  int iVar1;\n  int iVar2;\n  long lVar3;\n  code *UNRECOVERED_JUMPTABLE_00;\n  undefined8 uVar4;\n  int *piVar5;\n  long *plVar6;\n  long lVar7;\n  undefined8 uVar8;\n  ulong uVar9;\n  undefined4 uVar10;\n  undefined8 uVar11;\n  uint uVar12;\n  long lVar13;\n  undefined8 *puVar14;\n  bool bVar15;\n  undefined8 *local_48;\n  uint local_3c;\n  \nLAB_0012bc21:\n  do {\n    for (; iVar2 = *param_4, 1 < iVar2 - 0x16U; param_4 = *(int **)(*(long *)(param_4 + 4) + 8)) {\nLAB_0012bc2b:\n      if (param_5 == 0) {\n        uVar4 = 0;\nLAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n                    /* WARNING: Could not recover jumptable at 0x0012c2e8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 0x10) = *(undefined4 *)(param_1 + 0x30);\n      if (iVar2 != 0x16) {\n        if (iVar2 != 0x17) {\n          if (*(int *)(param_5 + 0x14) != 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          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }\nswitchD_0012bc67_caseD_16:\n      param_5 = 0;\n    }\n    plVar6 = *(long **)(param_4 + 4);\n    lVar3 = *plVar6;\n    if (*(int *)(lVar3 + 0x10) == *(int *)(param_1 + 0x30)) {\n      if (iVar2 == 0x16) {\n                    /* WARNING: Could not recover jumptable at 0x0012c67f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));\n        return uVar4;\n      }\nLAB_0012c43d:\n      piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0);\n      if (piVar5 != (int *)0x0) {\n        iVar2 = *piVar5;\n        uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n        if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n        goto LAB_0012c3c5;\n      }\n      goto LAB_0012bff3;\n    }\n    if (iVar2 != 0x17) goto LAB_0012bc2b;\n    if (lVar3 != param_5) goto LAB_0012c43d;\n    *(int *)(param_5 + 0x10) = *(int *)(param_1 + 0x30);\nLAB_0012bc96:\n    param_4 = (int *)plVar6[1];\n  } while( true );\nswitchD_0012bc67_caseD_1:\n  param_4 = *(int **)**(undefined8 **)(param_4 + 4);\n  if (param_4 == (int *)0x0) {\nLAB_0012bff3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x10);\nLAB_0012bfcc:\n                    /* WARNING: Could not recover jumptable at 0x0012bfdd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3);\n    return uVar4;\n  }\n  goto LAB_0012bc21;\n}\n\n" (function_definition "undefined8 FUN_0012bc00(long param_1,long param_2,undefined8 param_3,int *param_4,long param_5)\n\n{\n  int iVar1;\n  int iVar2;\n  long lVar3;\n  code *UNRECOVERED_JUMPTABLE_00;\n  undefined8 uVar4;\n  int *piVar5;\n  long *plVar6;\n  long lVar7;\n  undefined8 uVar8;\n  ulong uVar9;\n  undefined4 uVar10;\n  undefined8 uVar11;\n  uint uVar12;\n  long lVar13;\n  undefined8 *puVar14;\n  bool bVar15;\n  undefined8 *local_48;\n  uint local_3c;\n  \nLAB_0012bc21:\n  do {\n    for (; iVar2 = *param_4, 1 < iVar2 - 0x16U; param_4 = *(int **)(*(long *)(param_4 + 4) + 8)) {\nLAB_0012bc2b:\n      if (param_5 == 0) {\n        uVar4 = 0;\nLAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n                    /* WARNING: Could not recover jumptable at 0x0012c2e8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 0x10) = *(undefined4 *)(param_1 + 0x30);\n      if (iVar2 != 0x16) {\n        if (iVar2 != 0x17) {\n          if (*(int *)(param_5 + 0x14) != 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          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }\nswitchD_0012bc67_caseD_16:\n      param_5 = 0;\n    }\n    plVar6 = *(long **)(param_4 + 4);\n    lVar3 = *plVar6;\n    if (*(int *)(lVar3 + 0x10) == *(int *)(param_1 + 0x30)) {\n      if (iVar2 == 0x16) {\n                    /* WARNING: Could not recover jumptable at 0x0012c67f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));\n        return uVar4;\n      }\nLAB_0012c43d:\n      piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0);\n      if (piVar5 != (int *)0x0) {\n        iVar2 = *piVar5;\n        uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n        if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n        goto LAB_0012c3c5;\n      }\n      goto LAB_0012bff3;\n    }\n    if (iVar2 != 0x17) goto LAB_0012bc2b;\n    if (lVar3 != param_5) goto LAB_0012c43d;\n    *(int *)(param_5 + 0x10) = *(int *)(param_1 + 0x30);\nLAB_0012bc96:\n    param_4 = (int *)plVar6[1];\n  } while( true );\nswitchD_0012bc67_caseD_1:\n  param_4 = *(int **)**(undefined8 **)(param_4 + 4);\n  if (param_4 == (int *)0x0) {\nLAB_0012bff3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x10);\nLAB_0012bfcc:\n                    /* WARNING: Could not recover jumptable at 0x0012bfdd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3);\n    return uVar4;\n  }\n  goto LAB_0012bc21;\n}" type_identifier (function_declarator "FUN_0012bc00(long param_1,long param_2,undefined8 param_3,int *param_4,long param_5)" identifier (parameter_list "(long param_1,long param_2,undefined8 param_3,int *param_4,long param_5)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "long param_5" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  long lVar3;\n  code *UNRECOVERED_JUMPTABLE_00;\n  undefined8 uVar4;\n  int *piVar5;\n  long *plVar6;\n  long lVar7;\n  undefined8 uVar8;\n  ulong uVar9;\n  undefined4 uVar10;\n  undefined8 uVar11;\n  uint uVar12;\n  long lVar13;\n  undefined8 *puVar14;\n  bool bVar15;\n  undefined8 *local_48;\n  uint local_3c;\n  \nLAB_0012bc21:\n  do {\n    for (; iVar2 = *param_4, 1 < iVar2 - 0x16U; param_4 = *(int **)(*(long *)(param_4 + 4) + 8)) {\nLAB_0012bc2b:\n      if (param_5 == 0) {\n        uVar4 = 0;\nLAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n                    /* WARNING: Could not recover jumptable at 0x0012c2e8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 0x10) = *(undefined4 *)(param_1 + 0x30);\n      if (iVar2 != 0x16) {\n        if (iVar2 != 0x17) {\n          if (*(int *)(param_5 + 0x14) != 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          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }\nswitchD_0012bc67_caseD_16:\n      param_5 = 0;\n    }\n    plVar6 = *(long **)(param_4 + 4);\n    lVar3 = *plVar6;\n    if (*(int *)(lVar3 + 0x10) == *(int *)(param_1 + 0x30)) {\n      if (iVar2 == 0x16) {\n                    /* WARNING: Could not recover jumptable at 0x0012c67f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));\n        return uVar4;\n      }\nLAB_0012c43d:\n      piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0);\n      if (piVar5 != (int *)0x0) {\n        iVar2 = *piVar5;\n        uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n        if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n        goto LAB_0012c3c5;\n      }\n      goto LAB_0012bff3;\n    }\n    if (iVar2 != 0x17) goto LAB_0012bc2b;\n    if (lVar3 != param_5) goto LAB_0012c43d;\n    *(int *)(param_5 + 0x10) = *(int *)(param_1 + 0x30);\nLAB_0012bc96:\n    param_4 = (int *)plVar6[1];\n  } while( true );\nswitchD_0012bc67_caseD_1:\n  param_4 = *(int **)**(undefined8 **)(param_4 + 4);\n  if (param_4 == (int *)0x0) {\nLAB_0012bff3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x10);\nLAB_0012bfcc:\n                    /* WARNING: Could not recover jumptable at 0x0012bfdd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3);\n    return uVar4;\n  }\n  goto LAB_0012bc21;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "code *UNRECOVERED_JUMPTABLE_00;" type_identifier (pointer_declarator "*UNRECOVERED_JUMPTABLE_00" * identifier) ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "long *plVar6;" (sized_type_specifier "long" long) (pointer_declarator "*plVar6" * identifier) ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "long lVar13;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "undefined8 *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "uint local_3c;" type_identifier identifier ;) (labeled_statement "LAB_0012bc21:\n  do {\n    for (; iVar2 = *param_4, 1 < iVar2 - 0x16U; param_4 = *(int **)(*(long *)(param_4 + 4) + 8)) {\nLAB_0012bc2b:\n      if (param_5 == 0) {\n        uVar4 = 0;\nLAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n                    /* WARNING: Could not recover jumptable at 0x0012c2e8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 0x10) = *(undefined4 *)(param_1 + 0x30);\n      if (iVar2 != 0x16) {\n        if (iVar2 != 0x17) {\n          if (*(int *)(param_5 + 0x14) != 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          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }\nswitchD_0012bc67_caseD_16:\n      param_5 = 0;\n    }\n    plVar6 = *(long **)(param_4 + 4);\n    lVar3 = *plVar6;\n    if (*(int *)(lVar3 + 0x10) == *(int *)(param_1 + 0x30)) {\n      if (iVar2 == 0x16) {\n                    /* WARNING: Could not recover jumptable at 0x0012c67f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));\n        return uVar4;\n      }\nLAB_0012c43d:\n      piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0);\n      if (piVar5 != (int *)0x0) {\n        iVar2 = *piVar5;\n        uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n        if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n        goto LAB_0012c3c5;\n      }\n      goto LAB_0012bff3;\n    }\n    if (iVar2 != 0x17) goto LAB_0012bc2b;\n    if (lVar3 != param_5) goto LAB_0012c43d;\n    *(int *)(param_5 + 0x10) = *(int *)(param_1 + 0x30);\nLAB_0012bc96:\n    param_4 = (int *)plVar6[1];\n  } while( true );" statement_identifier : (do_statement "do {\n    for (; iVar2 = *param_4, 1 < iVar2 - 0x16U; param_4 = *(int **)(*(long *)(param_4 + 4) + 8)) {\nLAB_0012bc2b:\n      if (param_5 == 0) {\n        uVar4 = 0;\nLAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n                    /* WARNING: Could not recover jumptable at 0x0012c2e8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 0x10) = *(undefined4 *)(param_1 + 0x30);\n      if (iVar2 != 0x16) {\n        if (iVar2 != 0x17) {\n          if (*(int *)(param_5 + 0x14) != 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          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }\nswitchD_0012bc67_caseD_16:\n      param_5 = 0;\n    }\n    plVar6 = *(long **)(param_4 + 4);\n    lVar3 = *plVar6;\n    if (*(int *)(lVar3 + 0x10) == *(int *)(param_1 + 0x30)) {\n      if (iVar2 == 0x16) {\n                    /* WARNING: Could not recover jumptable at 0x0012c67f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));\n        return uVar4;\n      }\nLAB_0012c43d:\n      piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0);\n      if (piVar5 != (int *)0x0) {\n        iVar2 = *piVar5;\n        uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n        if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n        goto LAB_0012c3c5;\n      }\n      goto LAB_0012bff3;\n    }\n    if (iVar2 != 0x17) goto LAB_0012bc2b;\n    if (lVar3 != param_5) goto LAB_0012c43d;\n    *(int *)(param_5 + 0x10) = *(int *)(param_1 + 0x30);\nLAB_0012bc96:\n    param_4 = (int *)plVar6[1];\n  } while( true );" do (compound_statement "{\n    for (; iVar2 = *param_4, 1 < iVar2 - 0x16U; param_4 = *(int **)(*(long *)(param_4 + 4) + 8)) {\nLAB_0012bc2b:\n      if (param_5 == 0) {\n        uVar4 = 0;\nLAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n                    /* WARNING: Could not recover jumptable at 0x0012c2e8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 0x10) = *(undefined4 *)(param_1 + 0x30);\n      if (iVar2 != 0x16) {\n        if (iVar2 != 0x17) {\n          if (*(int *)(param_5 + 0x14) != 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          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }\nswitchD_0012bc67_caseD_16:\n      param_5 = 0;\n    }\n    plVar6 = *(long **)(param_4 + 4);\n    lVar3 = *plVar6;\n    if (*(int *)(lVar3 + 0x10) == *(int *)(param_1 + 0x30)) {\n      if (iVar2 == 0x16) {\n                    /* WARNING: Could not recover jumptable at 0x0012c67f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));\n        return uVar4;\n      }\nLAB_0012c43d:\n      piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0);\n      if (piVar5 != (int *)0x0) {\n        iVar2 = *piVar5;\n        uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n        if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n        goto LAB_0012c3c5;\n      }\n      goto LAB_0012bff3;\n    }\n    if (iVar2 != 0x17) goto LAB_0012bc2b;\n    if (lVar3 != param_5) goto LAB_0012c43d;\n    *(int *)(param_5 + 0x10) = *(int *)(param_1 + 0x30);\nLAB_0012bc96:\n    param_4 = (int *)plVar6[1];\n  }" { (for_statement "for (; iVar2 = *param_4, 1 < iVar2 - 0x16U; param_4 = *(int **)(*(long *)(param_4 + 4) + 8)) {\nLAB_0012bc2b:\n      if (param_5 == 0) {\n        uVar4 = 0;\nLAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n                    /* WARNING: Could not recover jumptable at 0x0012c2e8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 0x10) = *(undefined4 *)(param_1 + 0x30);\n      if (iVar2 != 0x16) {\n        if (iVar2 != 0x17) {\n          if (*(int *)(param_5 + 0x14) != 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          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }\nswitchD_0012bc67_caseD_16:\n      param_5 = 0;\n    }" for ( ; (comma_expression "iVar2 = *param_4, 1 < iVar2 - 0x16U" (assignment_expression "iVar2 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) , (binary_expression "1 < iVar2 - 0x16U" number_literal < (binary_expression "iVar2 - 0x16U" identifier - number_literal))) ; (assignment_expression "param_4 = *(int **)(*(long *)(param_4 + 4) + 8)" identifier = (pointer_expression "*(int **)(*(long *)(param_4 + 4) + 8)" * (cast_expression "(int **)(*(long *)(param_4 + 4) + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_4 + 4) + 8)" ( (binary_expression "*(long *)(param_4 + 4) + 8" (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) )))) + number_literal) ))))) ) (compound_statement "{\nLAB_0012bc2b:\n      if (param_5 == 0) {\n        uVar4 = 0;\nLAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n                    /* WARNING: Could not recover jumptable at 0x0012c2e8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 0x10) = *(undefined4 *)(param_1 + 0x30);\n      if (iVar2 != 0x16) {\n        if (iVar2 != 0x17) {\n          if (*(int *)(param_5 + 0x14) != 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          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }\nswitchD_0012bc67_caseD_16:\n      param_5 = 0;\n    }" { (labeled_statement "LAB_0012bc2b:\n      if (param_5 == 0) {\n        uVar4 = 0;\nLAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n                    /* WARNING: Could not recover jumptable at 0x0012c2e8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);\n        return uVar4;\n      }" statement_identifier : (if_statement "if (param_5 == 0) {\n        uVar4 = 0;\nLAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n                    /* WARNING: Could not recover jumptable at 0x0012c2e8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);\n        return uVar4;\n      }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar4 = 0;\nLAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n                    /* WARNING: Could not recover jumptable at 0x0012c2e8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);\n        return uVar4;\n      }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }" statement_identifier : (switch_statement "switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }" switch (parenthesized_expression "(iVar2)" ( identifier )) (compound_statement "{\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\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(stderr,"%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(stderr,"%s\n",uVar4);" (call_expression "fprintf(stderr,"%s\n",uVar4)" identifier (argument_list "(stderr,"%s\n",uVar4)" ( identifier , (string_literal ""%s\n"" " string_content escape_sequence ") , identifier ))) ;) (return_statement "return 0;" return number_literal ;)) (case_statement "case 1:\n          goto switchD_0012bc67_caseD_1;" case number_literal : (goto_statement "goto switchD_0012bc67_caseD_1;" goto statement_identifier ;)) (case_statement "case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;" 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) ))))) ;) (goto_statement "goto LAB_0012bfcc;" goto statement_identifier ;)) (case_statement "case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;" case number_literal : (expression_statement "iVar1 = param_4[4];" (assignment_expression "iVar1 = param_4[4]" identifier = (subscript_expression "param_4[4]" identifier [ number_literal ])) ;) (expression_statement "iVar2 = param_4[1];" (assignment_expression "iVar2 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20)" identifier = (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) ))))) ;) (goto_statement "goto LAB_0012c31a;" goto statement_identifier ;)) (case_statement "case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;" case number_literal : (expression_statement "iVar2 = param_4[1];" (assignment_expression "iVar2 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28)" identifier = (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) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;" case number_literal : (expression_statement "iVar2 = param_4[1];" (assignment_expression "iVar2 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30)" identifier = (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) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;" case number_literal : (expression_statement "iVar2 = param_4[1];" (assignment_expression "iVar2 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ 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 7:" case number_literal :) (case_statement "case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;" case number_literal : (expression_statement "lVar3 = *(long *)(param_4 + 4);" (assignment_expression "lVar3 = *(long *)(param_4 + 4)" identifier = (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (if_statement "if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }" if (parenthesized_expression "(lVar3 == 0)" ( (binary_expression "lVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }" { (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98)" identifier = (pointer_expression "*(code **)(param_2 + 0x98)" * (cast_expression "(code **)(param_2 + 0x98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x98)" ( (binary_expression "param_2 + 0x98" 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 "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }" else (compound_statement "{\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }" { (expression_statement "uVar12 = *(uint *)(lVar3 + 0xc);" (assignment_expression "uVar12 = *(uint *)(lVar3 + 0xc)" identifier = (pointer_expression "*(uint *)(lVar3 + 0xc)" * (cast_expression "(uint *)(lVar3 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0xc)" ( (binary_expression "lVar3 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }" if (parenthesized_expression "(*(uint *)(param_1 + 0x38) < uVar12)" ( (binary_expression "*(uint *)(param_1 + 0x38) < uVar12" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }" { (expression_statement "iVar2 = *(int *)(param_1 + 0x30);" (assignment_expression "iVar2 = *(int *)(param_1 + 0x30)" identifier = (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }" if (parenthesized_expression "(*(int *)(lVar3 + 8) == iVar2)" ( (binary_expression "*(int *)(lVar3 + 8) == iVar2" (pointer_expression "*(int *)(lVar3 + 8)" * (cast_expression "(int *)(lVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 8)" ( (binary_expression "lVar3 + 8" identifier + number_literal) )))) == identifier) )) (compound_statement "{\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }" { (labeled_statement "LAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);" statement_identifier : (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8)" identifier = (pointer_expression "*(code **)(param_2 + 0xf8)" * (cast_expression "(code **)(param_2 + 0xf8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xf8)" ( (binary_expression "param_2 + 0xf8" identifier + number_literal) ))))) ;)) (expression_statement "iVar2 = *param_4;" (assignment_expression "iVar2 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (labeled_statement "LAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);" statement_identifier : comment comment (expression_statement "uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);" (assignment_expression "uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2)" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE_00)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE_00" * identifier) )) (argument_list "(param_3,uVar4,uVar12,iVar2)" ( identifier , identifier , identifier , identifier )))) ;)) (return_statement "return uVar4;" return identifier ;) })) }) (else_clause "else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }" else (compound_statement "{\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }" { (expression_statement "iVar2 = FUN_0012bae0(param_1,uVar4,param_4);" (assignment_expression "iVar2 = FUN_0012bae0(param_1,uVar4,param_4)" identifier = (call_expression "FUN_0012bae0(param_1,uVar4,param_4)" identifier (argument_list "(param_1,uVar4,param_4)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar3 = *(long *)(param_4 + 4);" (assignment_expression "lVar3 = *(long *)(param_4 + 4)" identifier = (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(param_1 + 0x30);" (assignment_expression "iVar2 = *(int *)(param_1 + 0x30)" identifier = (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }" if (parenthesized_expression "(iVar2 == *(int *)(lVar3 + 8))" ( (binary_expression "iVar2 == *(int *)(lVar3 + 8)" identifier == (pointer_expression "*(int *)(lVar3 + 8)" * (cast_expression "(int *)(lVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 8)" ( (binary_expression "lVar3 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }" { (expression_statement "uVar12 = *(uint *)(lVar3 + 0xc);" (assignment_expression "uVar12 = *(uint *)(lVar3 + 0xc)" identifier = (pointer_expression "*(uint *)(lVar3 + 0xc)" * (cast_expression "(uint *)(lVar3 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0xc)" ( (binary_expression "lVar3 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }" if (parenthesized_expression "(uVar12 <= *(uint *)(param_1 + 0x38))" ( (binary_expression "uVar12 <= *(uint *)(param_1 + 0x38)" identifier <= (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }" { comment (expression_statement "__assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");" (call_expression "__assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type")" identifier (argument_list "("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type")" ( (string_literal ""type->u.kclass->id > info->base_id"" " string_content ") , (string_literal ""../../binutils/debug.c"" " string_content ") , number_literal , (string_literal ""debug_write_type"" " string_content ") ))) ;) })) (goto_statement "goto LAB_0012c414;" goto statement_identifier ;) })) }))) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98)" identifier = (pointer_expression "*(code **)(param_2 + 0x98)" * (cast_expression "(code **)(param_2 + 0x98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x98)" ( (binary_expression "param_2 + 0x98" 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 *)(lVar3 + 8) = iVar2;" (assignment_expression "*(int *)(lVar3 + 8) = iVar2" (pointer_expression "*(int *)(lVar3 + 8)" * (cast_expression "(int *)(lVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 8)" ( (binary_expression "lVar3 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar10 = *(undefined4 *)(lVar3 + 0xc);" (assignment_expression "uVar10 = *(undefined4 *)(lVar3 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(lVar3 + 0xc)" * (cast_expression "(undefined4 *)(lVar3 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0xc)" ( (binary_expression "lVar3 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *param_4;" (assignment_expression "iVar2 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) }))) (expression_statement "iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);" (assignment_expression "iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1)" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE_00)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE_00" * identifier) )) (argument_list "(param_3,uVar4,uVar10,iVar2 == 7,iVar1)" ( identifier , identifier , identifier , (binary_expression "iVar2 == 7" identifier == number_literal) , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }" if (parenthesized_expression "(((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0))" ( (binary_expression "((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)" (parenthesized_expression "((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0))" ( (binary_expression "(*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)" (parenthesized_expression "(*(long **)(param_4 + 4) != (long *)0x0)" ( (binary_expression "*(long **)(param_4 + 4) != (long *)0x0" (pointer_expression "*(long **)(param_4 + 4)" * (cast_expression "(long **)(param_4 + 4)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) )))) != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)" ( (comma_expression "plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0" (assignment_expression "plVar6 = (long *)**(long **)(param_4 + 4)" identifier = (cast_expression "(long *)**(long **)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(long **)(param_4 + 4)" * (pointer_expression "*(long **)(param_4 + 4)" * (cast_expression "(long **)(param_4 + 4)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))))) , (binary_expression "plVar6 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)" ( (comma_expression "puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0" (assignment_expression "puVar14 = (undefined8 *)*plVar6" identifier = (cast_expression "(undefined8 *)*plVar6" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar6" * identifier))) , (binary_expression "puVar14 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (do_statement "do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);" do (compound_statement "{\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            }" { (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0)" identifier (argument_list "(param_1,param_2,param_3,puVar14[1],0)" ( identifier , identifier , identifier , (subscript_expression "puVar14[1]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));" (assignment_expression "iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c))" identifier = (call_expression "(**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c))" (parenthesized_expression "(**(code **)(param_2 + 0xa0))" ( (pointer_expression "**(code **)(param_2 + 0xa0)" * (pointer_expression "*(code **)(param_2 + 0xa0)" * (cast_expression "(code **)(param_2 + 0xa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xa0)" ( (binary_expression "param_2 + 0xa0" identifier + number_literal) ))))) )) (argument_list "(param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c))" ( identifier , (pointer_expression "*puVar14" * identifier) , (pointer_expression "*(undefined4 *)(puVar14 + 3)" * (cast_expression "(undefined4 *)(puVar14 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 3)" ( (binary_expression "puVar14 + 3" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)((long)puVar14 + 0x1c)" * (cast_expression "(undefined4 *)((long)puVar14 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar14 + 0x1c)" ( (binary_expression "(long)puVar14 + 0x1c" (cast_expression "(long)puVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) )))) ;) (if_statement "if (iVar2 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar9 = (ulong)((int)uVar9 + 1);" (assignment_expression "uVar9 = (ulong)((int)uVar9 + 1)" identifier = (call_expression "(ulong)((int)uVar9 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar9 + 1)" ( (binary_expression "(int)uVar9 + 1" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);" (assignment_expression "puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8)" identifier = (pointer_expression "*(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8)" * (cast_expression "(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(param_4 + 4) + uVar9 * 8)" ( (binary_expression "**(long **)(param_4 + 4) + uVar9 * 8" (pointer_expression "**(long **)(param_4 + 4)" * (pointer_expression "*(long **)(param_4 + 4)" * (cast_expression "(long **)(param_4 + 4)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) + (binary_expression "uVar9 * 8" identifier * number_literal)) ))))) ;) }) while (parenthesized_expression "(puVar14 != (undefined8 *)0x0)" ( (binary_expression "puVar14 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8)" identifier = (pointer_expression "*(code **)(param_2 + 0xa8)" * (cast_expression "(code **)(param_2 + 0xa8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xa8)" ( (binary_expression "param_2 + 0xa8" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0012bfcc;" goto statement_identifier ;)) (case_statement "case 9:" case number_literal :) (case_statement "case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;" case number_literal : (expression_statement "lVar3 = *(long *)(param_4 + 4);" (assignment_expression "lVar3 = *(long *)(param_4 + 4)" identifier = (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (if_statement "if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }" if (parenthesized_expression "(lVar3 == 0)" ( (binary_expression "lVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }" { (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (expression_statement "piVar5 = (int *)0x0;" (assignment_expression "piVar5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }" else (compound_statement "{\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }" { (expression_statement "uVar12 = *(uint *)(lVar3 + 0xc);" (assignment_expression "uVar12 = *(uint *)(lVar3 + 0xc)" identifier = (pointer_expression "*(uint *)(lVar3 + 0xc)" * (cast_expression "(uint *)(lVar3 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0xc)" ( (binary_expression "lVar3 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }" if (parenthesized_expression "(*(uint *)(param_1 + 0x38) < uVar12)" ( (binary_expression "*(uint *)(param_1 + 0x38) < uVar12" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }" { (expression_statement "iVar1 = *(int *)(param_1 + 0x30);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x30)" identifier = (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }" if (parenthesized_expression "(iVar1 == *(int *)(lVar3 + 8))" ( (binary_expression "iVar1 == *(int *)(lVar3 + 8)" identifier == (pointer_expression "*(int *)(lVar3 + 8)" * (cast_expression "(int *)(lVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 8)" ( (binary_expression "lVar3 + 8" identifier + number_literal) ))))) )) (compound_statement "{\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }" { (labeled_statement "LAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);" statement_identifier : (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8)" identifier = (pointer_expression "*(code **)(param_2 + 0xf8)" * (cast_expression "(code **)(param_2 + 0xf8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xf8)" ( (binary_expression "param_2 + 0xf8" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_0012c3c5;" goto statement_identifier ;) })) }) (else_clause "else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }" else (compound_statement "{\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }" { (expression_statement "iVar2 = FUN_0012bae0(param_1,uVar4,param_4);" (assignment_expression "iVar2 = FUN_0012bae0(param_1,uVar4,param_4)" identifier = (call_expression "FUN_0012bae0(param_1,uVar4,param_4)" identifier (argument_list "(param_1,uVar4,param_4)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar3 = *(long *)(param_4 + 4);" (assignment_expression "lVar3 = *(long *)(param_4 + 4)" identifier = (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = *(int *)(param_1 + 0x30);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x30)" identifier = (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = *(uint *)(lVar3 + 0xc);" (assignment_expression "uVar12 = *(uint *)(lVar3 + 0xc)" identifier = (pointer_expression "*(uint *)(lVar3 + 0xc)" * (cast_expression "(uint *)(lVar3 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0xc)" ( (binary_expression "lVar3 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }" if (parenthesized_expression "(iVar1 == *(int *)(lVar3 + 8))" ( (binary_expression "iVar1 == *(int *)(lVar3 + 8)" identifier == (pointer_expression "*(int *)(lVar3 + 8)" * (cast_expression "(int *)(lVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 8)" ( (binary_expression "lVar3 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }" { (if_statement "if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }" if (parenthesized_expression "(uVar12 <= *(uint *)(param_1 + 0x38))" ( (binary_expression "uVar12 <= *(uint *)(param_1 + 0x38)" identifier <= (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }" { comment (expression_statement "__assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");" (call_expression "__assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type")" identifier (argument_list "("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type")" ( (string_literal ""type->u.kclass->id > info->base_id"" " string_content ") , (string_literal ""../../binutils/debug.c"" " string_content ") , number_literal , (string_literal ""debug_write_class_type"" " string_content ") ))) ;) })) (expression_statement "iVar2 = *param_4;" (assignment_expression "iVar2 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (goto_statement "goto LAB_0012c3b8;" goto statement_identifier ;) })) }))) (expression_statement "*(int *)(lVar3 + 8) = iVar1;" (assignment_expression "*(int *)(lVar3 + 8) = iVar1" (pointer_expression "*(int *)(lVar3 + 8)" * (cast_expression "(int *)(lVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 8)" ( (binary_expression "lVar3 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar5 = *(int **)(lVar3 + 0x20);" (assignment_expression "piVar5 = *(int **)(lVar3 + 0x20)" identifier = (pointer_expression "*(int **)(lVar3 + 0x20)" * (cast_expression "(int **)(lVar3 + 0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar3 + 0x20)" ( (binary_expression "lVar3 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "bVar15 = piVar5 != (int *)0x0;" (assignment_expression "bVar15 = piVar5 != (int *)0x0" identifier = (binary_expression "piVar5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }" if (parenthesized_expression "((param_4 == piVar5) || (!bVar15))" ( (binary_expression "(param_4 == piVar5) || (!bVar15)" (parenthesized_expression "(param_4 == piVar5)" ( (binary_expression "param_4 == piVar5" identifier == identifier) )) || (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) ))) )) (compound_statement "{\n              iVar2 = *param_4;\n            }" { (expression_statement "iVar2 = *param_4;" (assignment_expression "iVar2 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) }) (else_clause "else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }" else (compound_statement "{\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }" { (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,piVar5,0)" identifier (argument_list "(param_1,param_2,param_3,piVar5,0)" ( identifier , identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar2 = *param_4;" (assignment_expression "iVar2 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = true" identifier = true) ;) }))) }))) (expression_statement "iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);" (assignment_expression "iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5)" identifier = (call_expression "(**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5)" (parenthesized_expression "(**(code **)(param_2 + 0xb0))" ( (pointer_expression "**(code **)(param_2 + 0xb0)" * (pointer_expression "*(code **)(param_2 + 0xb0)" * (cast_expression "(code **)(param_2 + 0xb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xb0)" ( (binary_expression "param_2 + 0xb0" identifier + number_literal) ))))) )) (argument_list "(param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5)" ( identifier , identifier , identifier , (binary_expression "iVar2 == 9" identifier == number_literal) , (subscript_expression "param_4[1]" identifier [ number_literal ]) , identifier , (binary_expression "param_4 == piVar5" identifier == identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "plVar6 = *(long **)(param_4 + 4);" (assignment_expression "plVar6 = *(long **)(param_4 + 4)" identifier = (pointer_expression "*(long **)(param_4 + 4)" * (cast_expression "(long **)(param_4 + 4)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (if_statement "if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }" if (parenthesized_expression "(plVar6 != (long *)0x0)" ( (binary_expression "plVar6 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }" { (if_statement "if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }" if (parenthesized_expression "(((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0))" ( (binary_expression "((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)" (parenthesized_expression "((long *)*plVar6 != (long *)0x0)" ( (binary_expression "(long *)*plVar6 != (long *)0x0" (cast_expression "(long *)*plVar6" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar6" * identifier)) != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)" ( (comma_expression "puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0" (assignment_expression "puVar14 = *(undefined8 **)*plVar6" identifier = (pointer_expression "*(undefined8 **)*plVar6" * (cast_expression "(undefined8 **)*plVar6" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*plVar6" * identifier)))) , (binary_expression "puVar14 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (do_statement "do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);" do (compound_statement "{\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              }" { (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0)" identifier (argument_list "(param_1,param_2,param_3,puVar14[1],0)" ( identifier , identifier , identifier , (subscript_expression "puVar14[1]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }" if (parenthesized_expression "(*(int *)((long)puVar14 + 0x14) == 0)" ( (binary_expression "*(int *)((long)puVar14 + 0x14) == 0" (pointer_expression "*(int *)((long)puVar14 + 0x14)" * (cast_expression "(int *)((long)puVar14 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar14 + 0x14)" ( (binary_expression "(long)puVar14 + 0x14" (cast_expression "(long)puVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }" { (expression_statement "iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));" (assignment_expression "iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c))" identifier = (call_expression "(**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c))" (parenthesized_expression "(**(code **)(param_2 + 0xa0))" ( (pointer_expression "**(code **)(param_2 + 0xa0)" * (pointer_expression "*(code **)(param_2 + 0xa0)" * (cast_expression "(code **)(param_2 + 0xa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xa0)" ( (binary_expression "param_2 + 0xa0" identifier + number_literal) ))))) )) (argument_list "(param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c))" ( identifier , (pointer_expression "*puVar14" * identifier) , (pointer_expression "*(undefined4 *)(puVar14 + 3)" * (cast_expression "(undefined4 *)(puVar14 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 3)" ( (binary_expression "puVar14 + 3" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)((long)puVar14 + 0x1c)" * (cast_expression "(undefined4 *)((long)puVar14 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar14 + 0x1c)" ( (binary_expression "(long)puVar14 + 0x1c" (cast_expression "(long)puVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) )))) ;) }) (else_clause "else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }" else (compound_statement "{\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }" { (expression_statement "iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));" (assignment_expression "iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2))" identifier = (call_expression "(**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2))" (parenthesized_expression "(**(code **)(param_2 + 0xb8))" ( (pointer_expression "**(code **)(param_2 + 0xb8)" * (pointer_expression "*(code **)(param_2 + 0xb8)" * (cast_expression "(code **)(param_2 + 0xb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xb8)" ( (binary_expression "param_2 + 0xb8" identifier + number_literal) ))))) )) (argument_list "(param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2))" ( identifier , (pointer_expression "*puVar14" * identifier) , (subscript_expression "puVar14[3]" identifier [ number_literal ]) , (pointer_expression "*(undefined4 *)(puVar14 + 2)" * (cast_expression "(undefined4 *)(puVar14 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 2)" ( (binary_expression "puVar14 + 2" identifier + number_literal) )))) )))) ;) }))) (if_statement "if (iVar2 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "plVar6 = *(long **)(param_4 + 4);" (assignment_expression "plVar6 = *(long **)(param_4 + 4)" identifier = (pointer_expression "*(long **)(param_4 + 4)" * (cast_expression "(long **)(param_4 + 4)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = (ulong)((int)uVar9 + 1);" (assignment_expression "uVar9 = (ulong)((int)uVar9 + 1)" identifier = (call_expression "(ulong)((int)uVar9 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar9 + 1)" ( (binary_expression "(int)uVar9 + 1" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);" (assignment_expression "puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8)" identifier = (pointer_expression "*(undefined8 **)(*plVar6 + uVar9 * 8)" * (cast_expression "(undefined8 **)(*plVar6 + uVar9 * 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar6 + uVar9 * 8)" ( (binary_expression "*plVar6 + uVar9 * 8" (pointer_expression "*plVar6" * identifier) + (binary_expression "uVar9 * 8" identifier * number_literal)) ))))) ;) }) while (parenthesized_expression "(puVar14 != (undefined8 *)0x0)" ( (binary_expression "puVar14 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (if_statement "if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }" if (parenthesized_expression "(((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0))" ( (binary_expression "((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)" (parenthesized_expression "((long *)plVar6[2] != (long *)0x0)" ( (binary_expression "(long *)plVar6[2] != (long *)0x0" (cast_expression "(long *)plVar6[2]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar6[2]" identifier [ number_literal ])) != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)" ( (comma_expression "puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0" (assignment_expression "puVar14 = *(undefined8 **)plVar6[2]" identifier = (pointer_expression "*(undefined8 **)plVar6[2]" * (cast_expression "(undefined8 **)plVar6[2]" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "plVar6[2]" identifier [ number_literal ])))) , (binary_expression "puVar14 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (do_statement "do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);" do (compound_statement "{\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              }" { (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,*puVar14,0)" identifier (argument_list "(param_1,param_2,param_3,*puVar14,0)" ( identifier , identifier , identifier , (pointer_expression "*puVar14" * identifier) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );" (assignment_expression "iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  )" identifier = (call_expression "(**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  )" (parenthesized_expression "(**(code **)(param_2 + 0xc0))" ( (pointer_expression "**(code **)(param_2 + 0xc0)" * (pointer_expression "*(code **)(param_2 + 0xc0)" * (cast_expression "(code **)(param_2 + 0xc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xc0)" ( (binary_expression "param_2 + 0xc0" identifier + number_literal) ))))) )) (argument_list "(param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  )" ( identifier , (pointer_expression "*(undefined4 *)(puVar14 + 1)" * (cast_expression "(undefined4 *)(puVar14 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 1)" ( (binary_expression "puVar14 + 1" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)((long)puVar14 + 0xc)" * (cast_expression "(undefined4 *)((long)puVar14 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar14 + 0xc)" ( (binary_expression "(long)puVar14 + 0xc" (cast_expression "(long)puVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) , (pointer_expression "*(undefined4 *)(puVar14 + 2)" * (cast_expression "(undefined4 *)(puVar14 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 2)" ( (binary_expression "puVar14 + 2" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar2 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "plVar6 = *(long **)(param_4 + 4);" (assignment_expression "plVar6 = *(long **)(param_4 + 4)" identifier = (pointer_expression "*(long **)(param_4 + 4)" * (cast_expression "(long **)(param_4 + 4)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = (ulong)((int)uVar9 + 1);" (assignment_expression "uVar9 = (ulong)((int)uVar9 + 1)" identifier = (call_expression "(ulong)((int)uVar9 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar9 + 1)" ( (binary_expression "(int)uVar9 + 1" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);" (assignment_expression "puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8)" identifier = (pointer_expression "*(undefined8 **)(plVar6[2] + uVar9 * 8)" * (cast_expression "(undefined8 **)(plVar6[2] + uVar9 * 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(plVar6[2] + uVar9 * 8)" ( (binary_expression "plVar6[2] + uVar9 * 8" (subscript_expression "plVar6[2]" identifier [ number_literal ]) + (binary_expression "uVar9 * 8" identifier * number_literal)) ))))) ;) }) while (parenthesized_expression "(puVar14 != (undefined8 *)0x0)" ( (binary_expression "puVar14 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (if_statement "if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }" if (parenthesized_expression "(((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0))" ( (binary_expression "((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)" (parenthesized_expression "((long *)plVar6[3] != (long *)0x0)" ( (binary_expression "(long *)plVar6[3] != (long *)0x0" (cast_expression "(long *)plVar6[3]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar6[3]" identifier [ number_literal ])) != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)" ( (comma_expression "local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0" (assignment_expression "local_48 = *(undefined8 **)plVar6[3]" identifier = (pointer_expression "*(undefined8 **)plVar6[3]" * (cast_expression "(undefined8 **)plVar6[3]" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "plVar6[3]" identifier [ number_literal ])))) , (binary_expression "local_48 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }" { (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (do_statement "do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);" do (compound_statement "{\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              }" { (expression_statement "iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);" (assignment_expression "iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48)" identifier = (call_expression "(**(code **)(param_2 + 200))(param_3,*local_48)" (parenthesized_expression "(**(code **)(param_2 + 200))" ( (pointer_expression "**(code **)(param_2 + 200)" * (pointer_expression "*(code **)(param_2 + 200)" * (cast_expression "(code **)(param_2 + 200)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 200)" ( (binary_expression "param_2 + 200" identifier + number_literal) ))))) )) (argument_list "(param_3,*local_48)" ( identifier , (pointer_expression "*local_48" * identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "puVar14 = *(undefined8 **)local_48[1];" (assignment_expression "puVar14 = *(undefined8 **)local_48[1]" identifier = (pointer_expression "*(undefined8 **)local_48[1]" * (cast_expression "(undefined8 **)local_48[1]" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "local_48[1]" identifier [ number_literal ])))) ;) (while_statement "while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }" while (parenthesized_expression "(puVar14 != (undefined8 *)0x0)" ( (binary_expression "puVar14 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }" { (if_statement "if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }" if (parenthesized_expression "((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0))" ( (binary_expression "(puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)" (parenthesized_expression "(puVar14[5] != 0)" ( (binary_expression "puVar14[5] != 0" (subscript_expression "puVar14[5]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)" ( (comma_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0)" identifier (argument_list "(param_1,param_2,param_3,puVar14[5],0)" ( identifier , identifier , identifier , (subscript_expression "puVar14[5]" identifier [ number_literal ]) , number_literal )))) , (binary_expression "iVar2 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                    return 0;\n                  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0)" identifier (argument_list "(param_1,param_2,param_3,puVar14[1],0)" ( identifier , identifier , identifier , (subscript_expression "puVar14[1]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n                    return 0;\n                  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                    return 0;\n                  }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }" if (parenthesized_expression "(puVar14[4] == -1)" ( (binary_expression "puVar14[4] == -1" (subscript_expression "puVar14[4]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }" { (expression_statement "iVar2 = (**(code **)(param_2 + 0xd8))(param_3);" (assignment_expression "iVar2 = (**(code **)(param_2 + 0xd8))(param_3)" identifier = (call_expression "(**(code **)(param_2 + 0xd8))(param_3)" (parenthesized_expression "(**(code **)(param_2 + 0xd8))" ( (pointer_expression "**(code **)(param_2 + 0xd8)" * (pointer_expression "*(code **)(param_2 + 0xd8)" * (cast_expression "(code **)(param_2 + 0xd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xd8)" ( (binary_expression "param_2 + 0xd8" identifier + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) }) (else_clause "else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }" else (compound_statement "{\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }" { (expression_statement "iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);" (assignment_expression "iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0)" identifier = (call_expression "(**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0)" (parenthesized_expression "(**(code **)(param_2 + 0xd0))" ( (pointer_expression "**(code **)(param_2 + 0xd0)" * (pointer_expression "*(code **)(param_2 + 0xd0)" * (cast_expression "(code **)(param_2 + 0xd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xd0)" ( (binary_expression "param_2 + 0xd0" identifier + number_literal) ))))) )) (argument_list "(param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0)" ( identifier , (pointer_expression "*puVar14" * identifier) , (pointer_expression "*(undefined4 *)(puVar14 + 2)" * (cast_expression "(undefined4 *)(puVar14 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 2)" ( (binary_expression "puVar14 + 2" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)((long)puVar14 + 0x14)" * (cast_expression "(undefined4 *)((long)puVar14 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar14 + 0x14)" ( (binary_expression "(long)puVar14 + 0x14" (cast_expression "(long)puVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) , (pointer_expression "*(undefined4 *)(puVar14 + 3)" * (cast_expression "(undefined4 *)(puVar14 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 3)" ( (binary_expression "puVar14 + 3" identifier + number_literal) )))) , (subscript_expression "puVar14[4]" identifier [ number_literal ]) , (binary_expression "puVar14[5] != 0" (subscript_expression "puVar14[5]" identifier [ number_literal ]) != number_literal) )))) ;) }))) (if_statement "if (iVar2 == 0) {\n                    return 0;\n                  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                    return 0;\n                  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar9 = (ulong)((int)uVar9 + 1);" (assignment_expression "uVar9 = (ulong)((int)uVar9 + 1)" identifier = (call_expression "(ulong)((int)uVar9 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar9 + 1)" ( (binary_expression "(int)uVar9 + 1" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);" (assignment_expression "puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8)" identifier = (pointer_expression "*(undefined8 **)(local_48[1] + uVar9 * 8)" * (cast_expression "(undefined8 **)(local_48[1] + uVar9 * 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_48[1] + uVar9 * 8)" ( (binary_expression "local_48[1] + uVar9 * 8" (subscript_expression "local_48[1]" identifier [ number_literal ]) + (binary_expression "uVar9 * 8" identifier * number_literal)) ))))) ;) })) (expression_statement "iVar2 = (**(code **)(param_2 + 0xe0))(param_3);" (assignment_expression "iVar2 = (**(code **)(param_2 + 0xe0))(param_3)" identifier = (call_expression "(**(code **)(param_2 + 0xe0))(param_3)" (parenthesized_expression "(**(code **)(param_2 + 0xe0))" ( (pointer_expression "**(code **)(param_2 + 0xe0)" * (pointer_expression "*(code **)(param_2 + 0xe0)" * (cast_expression "(code **)(param_2 + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xe0)" ( (binary_expression "param_2 + 0xe0" identifier + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (iVar2 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "local_3c = local_3c + 1;" (assignment_expression "local_3c = local_3c + 1" identifier = (binary_expression "local_3c + 1" identifier + number_literal)) ;) (expression_statement "local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);" (assignment_expression "local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8)" identifier = (pointer_expression "*(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8)" * (cast_expression "(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8)" ( (binary_expression "*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8" (pointer_expression "*(long *)(*(long *)(param_4 + 4) + 0x18)" * (cast_expression "(long *)(*(long *)(param_4 + 4) + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_4 + 4) + 0x18)" ( (binary_expression "*(long *)(param_4 + 4) + 0x18" (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) )))) + number_literal) )))) + (binary_expression "(ulong)local_3c * 8" (cast_expression "(ulong)local_3c" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) ))))) ;) }) while (parenthesized_expression "(local_48 != (undefined8 *)0x0)" ( (binary_expression "local_48 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) })) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8)" identifier = (pointer_expression "*(code **)(param_2 + 0xe8)" * (cast_expression "(code **)(param_2 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xe8)" ( (binary_expression "param_2 + 0xe8" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0012bfcc;" goto statement_identifier ;)) (case_statement "case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;" case number_literal : (expression_statement "puVar14 = *(undefined8 **)(param_4 + 4);" (assignment_expression "puVar14 = *(undefined8 **)(param_4 + 4)" identifier = (pointer_expression "*(undefined8 **)(param_4 + 4)" * (cast_expression "(undefined8 **)(param_4 + 4)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }" if (parenthesized_expression "(puVar14 != (undefined8 *)0x0)" ( (binary_expression "puVar14 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }" { (expression_statement "uVar8 = puVar14[1];" (assignment_expression "uVar8 = puVar14[1]" identifier = (subscript_expression "puVar14[1]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = *puVar14;" (assignment_expression "uVar11 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) ;) })) comment comment (expression_statement "uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40))" identifier = (call_expression "(**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40))" (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,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40))" ( identifier , identifier , identifier , identifier , (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) )))) )))) ;) (return_statement "return uVar4;" return identifier ;)) (case_statement "case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;" case number_literal : (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" identifier (argument_list "(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" ( identifier , identifier , identifier , (pointer_expression "*(undefined8 *)(param_4 + 4)" * (cast_expression "(undefined8 *)(param_4 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 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_0012bfcc;" goto statement_identifier ;)) (case_statement "case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;" case number_literal : (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" identifier (argument_list "(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" ( identifier , identifier , identifier , (pointer_expression "**(undefined8 **)(param_4 + 4)" * (pointer_expression "*(undefined8 **)(param_4 + 4)" * (cast_expression "(undefined8 **)(param_4 + 4)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar3 = *(long *)(param_4 + 4);" (assignment_expression "lVar3 = *(long *)(param_4 + 4)" identifier = (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }" if (parenthesized_expression "(*(long **)(lVar3 + 8) == (long *)0x0)" ( (binary_expression "*(long **)(lVar3 + 8) == (long *)0x0" (pointer_expression "*(long **)(lVar3 + 8)" * (cast_expression "(long **)(lVar3 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar3 + 8)" ( (binary_expression "lVar3 + 8" identifier + number_literal) )))) == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar2 = -1;\n          }" { (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) }) (else_clause "else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }" else (compound_statement "{\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }" { (expression_statement "lVar7 = **(long **)(lVar3 + 8);" (assignment_expression "lVar7 = **(long **)(lVar3 + 8)" identifier = (pointer_expression "**(long **)(lVar3 + 8)" * (pointer_expression "*(long **)(lVar3 + 8)" * (cast_expression "(long **)(lVar3 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar3 + 8)" ( (binary_expression "lVar3 + 8" identifier + number_literal) )))))) ;) (if_statement "if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar2 = 0;\n            }" { (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }" else (compound_statement "{\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }" { (expression_statement "lVar13 = 0;" (assignment_expression "lVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);" do (compound_statement "{\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              }" { (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,lVar7,0)" identifier (argument_list "(param_1,param_2,param_3,lVar7,0)" ( identifier , identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar3 = *(long *)(param_4 + 4);" (assignment_expression "lVar3 = *(long *)(param_4 + 4)" identifier = (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = (int)lVar13 + 1;" (assignment_expression "iVar2 = (int)lVar13 + 1" identifier = (binary_expression "(int)lVar13 + 1" (cast_expression "(int)lVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "lVar13 = lVar13 + 1;" (assignment_expression "lVar13 = lVar13 + 1" identifier = (binary_expression "lVar13 + 1" identifier + number_literal)) ;) (expression_statement "lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);" (assignment_expression "lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8)" identifier = (pointer_expression "*(long *)(*(long *)(lVar3 + 8) + lVar13 * 8)" * (cast_expression "(long *)(*(long *)(lVar3 + 8) + lVar13 * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar3 + 8) + lVar13 * 8)" ( (binary_expression "*(long *)(lVar3 + 8) + lVar13 * 8" (pointer_expression "*(long *)(lVar3 + 8)" * (cast_expression "(long *)(lVar3 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 8)" ( (binary_expression "lVar3 + 8" identifier + number_literal) )))) + (binary_expression "lVar13 * 8" identifier * number_literal)) ))))) ;) }) while (parenthesized_expression "(lVar7 != 0)" ( (binary_expression "lVar7 != 0" identifier != number_literal) )) ;) }))) }))) (expression_statement "iVar1 = *(int *)(lVar3 + 0x10);" (assignment_expression "iVar1 = *(int *)(lVar3 + 0x10)" identifier = (pointer_expression "*(int *)(lVar3 + 0x10)" * (cast_expression "(int *)(lVar3 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x10)" ( (binary_expression "lVar3 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50)" identifier = (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) ))))) ;) (labeled_statement "LAB_0012c31a:\n                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);" statement_identifier : comment comment (expression_statement "uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);" (assignment_expression "uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1)" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE_00)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE_00" * identifier) )) (argument_list "(param_3,iVar2,iVar1)" ( identifier , identifier , identifier )))) ;)) (return_statement "return uVar4;" return identifier ;)) (case_statement "case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;" case number_literal : (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" identifier (argument_list "(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" ( identifier , identifier , identifier , (pointer_expression "*(undefined8 *)(param_4 + 4)" * (cast_expression "(undefined8 *)(param_4 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 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 + 0x58);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58)" identifier = (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) ))))) ;) (goto_statement "goto LAB_0012bfcc;" goto statement_identifier ;)) (case_statement "case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;" case number_literal : (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" identifier (argument_list "(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" ( identifier , identifier , identifier , (pointer_expression "**(undefined8 **)(param_4 + 4)" * (pointer_expression "*(undefined8 **)(param_4 + 4)" * (cast_expression "(undefined8 **)(param_4 + 4)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) comment comment (expression_statement "uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10))" identifier = (call_expression "(**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10))" (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,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10))" ( identifier , (pointer_expression "*(undefined8 *)(*(long *)(param_4 + 4) + 8)" * (cast_expression "(undefined8 *)(*(long *)(param_4 + 4) + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_4 + 4) + 8)" ( (binary_expression "*(long *)(param_4 + 4) + 8" (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) )))) + number_literal) )))) , (pointer_expression "*(undefined8 *)(*(long *)(param_4 + 4) + 0x10)" * (cast_expression "(undefined8 *)(*(long *)(param_4 + 4) + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_4 + 4) + 0x10)" ( (binary_expression "*(long *)(param_4 + 4) + 0x10" (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) )))) + number_literal) )))) )))) ;) (return_statement "return uVar4;" return identifier ;)) (case_statement "case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;" case number_literal : (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" identifier (argument_list "(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" ( identifier , identifier , identifier , (pointer_expression "**(undefined8 **)(param_4 + 4)" * (pointer_expression "*(undefined8 **)(param_4 + 4)" * (cast_expression "(undefined8 **)(param_4 + 4)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              )" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              )" identifier (argument_list "(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              )" ( identifier , identifier , identifier , (pointer_expression "*(undefined8 *)(*(long *)(param_4 + 4) + 8)" * (cast_expression "(undefined8 *)(*(long *)(param_4 + 4) + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_4 + 4) + 8)" ( (binary_expression "*(long *)(param_4 + 4) + 8" (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) )))) + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar3 = *(long *)(param_4 + 4);" (assignment_expression "lVar3 = *(long *)(param_4 + 4)" identifier = (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) comment comment (expression_statement "uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20))" identifier = (call_expression "(**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20))" (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,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20))" ( identifier , (pointer_expression "*(undefined8 *)(lVar3 + 0x10)" * (cast_expression "(undefined8 *)(lVar3 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x10)" ( (binary_expression "lVar3 + 0x10" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(lVar3 + 0x18)" * (cast_expression "(undefined8 *)(lVar3 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x18)" ( (binary_expression "lVar3 + 0x18" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(lVar3 + 0x20)" * (cast_expression "(undefined4 *)(lVar3 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x20)" ( (binary_expression "lVar3 + 0x20" identifier + number_literal) )))) )))) ;) (return_statement "return uVar4;" return identifier ;)) (case_statement "case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;" case number_literal : (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" identifier (argument_list "(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" ( identifier , identifier , identifier , (pointer_expression "**(undefined8 **)(param_4 + 4)" * (pointer_expression "*(undefined8 **)(param_4 + 4)" * (cast_expression "(undefined8 **)(param_4 + 4)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);" (assignment_expression "iVar2 = *(int *)(*(long *)(param_4 + 4) + 8)" identifier = (pointer_expression "*(int *)(*(long *)(param_4 + 4) + 8)" * (cast_expression "(int *)(*(long *)(param_4 + 4) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_4 + 4) + 8)" ( (binary_expression "*(long *)(param_4 + 4) + 8" (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70)" identifier = (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) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;" case number_literal : (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" identifier (argument_list "(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" ( identifier , identifier , identifier , (pointer_expression "**(undefined8 **)(param_4 + 4)" * (pointer_expression "*(undefined8 **)(param_4 + 4)" * (cast_expression "(undefined8 **)(param_4 + 4)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              )" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              )" identifier (argument_list "(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              )" ( identifier , identifier , identifier , (pointer_expression "*(undefined8 *)(*(long *)(param_4 + 4) + 8)" * (cast_expression "(undefined8 *)(*(long *)(param_4 + 4) + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_4 + 4) + 8)" ( (binary_expression "*(long *)(param_4 + 4) + 8" (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) )))) + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 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 + 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_0012bfcc;" goto statement_identifier ;)) (case_statement "case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;" case number_literal : (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" identifier (argument_list "(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" ( identifier , identifier , identifier , (pointer_expression "**(undefined8 **)(param_4 + 4)" * (pointer_expression "*(undefined8 **)(param_4 + 4)" * (cast_expression "(undefined8 **)(param_4 + 4)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar3 = *(long *)(param_4 + 4);" (assignment_expression "lVar3 = *(long *)(param_4 + 4)" identifier = (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }" if (parenthesized_expression "(*(long **)(lVar3 + 0x10) == (long *)0x0)" ( (binary_expression "*(long **)(lVar3 + 0x10) == (long *)0x0" (pointer_expression "*(long **)(lVar3 + 0x10)" * (cast_expression "(long **)(lVar3 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar3 + 0x10)" ( (binary_expression "lVar3 + 0x10" identifier + number_literal) )))) == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar2 = -1;\n          }" { (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) }) (else_clause "else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }" else (compound_statement "{\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }" { (expression_statement "lVar7 = **(long **)(lVar3 + 0x10);" (assignment_expression "lVar7 = **(long **)(lVar3 + 0x10)" identifier = (pointer_expression "**(long **)(lVar3 + 0x10)" * (pointer_expression "*(long **)(lVar3 + 0x10)" * (cast_expression "(long **)(lVar3 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar3 + 0x10)" ( (binary_expression "lVar3 + 0x10" identifier + number_literal) )))))) ;) (if_statement "if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar2 = 0;\n            }" { (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }" else (compound_statement "{\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }" { (expression_statement "lVar13 = 0;" (assignment_expression "lVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);" do (compound_statement "{\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              }" { (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,lVar7,0)" identifier (argument_list "(param_1,param_2,param_3,lVar7,0)" ( identifier , identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar3 = *(long *)(param_4 + 4);" (assignment_expression "lVar3 = *(long *)(param_4 + 4)" identifier = (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = (int)lVar13 + 1;" (assignment_expression "iVar2 = (int)lVar13 + 1" identifier = (binary_expression "(int)lVar13 + 1" (cast_expression "(int)lVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "lVar13 = lVar13 + 1;" (assignment_expression "lVar13 = lVar13 + 1" identifier = (binary_expression "lVar13 + 1" identifier + number_literal)) ;) (expression_statement "lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);" (assignment_expression "lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8)" identifier = (pointer_expression "*(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8)" * (cast_expression "(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar3 + 0x10) + lVar13 * 8)" ( (binary_expression "*(long *)(lVar3 + 0x10) + lVar13 * 8" (pointer_expression "*(long *)(lVar3 + 0x10)" * (cast_expression "(long *)(lVar3 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x10)" ( (binary_expression "lVar3 + 0x10" identifier + number_literal) )))) + (binary_expression "lVar13 * 8" identifier * number_literal)) ))))) ;) }) while (parenthesized_expression "(lVar7 != 0)" ( (binary_expression "lVar7 != 0" identifier != number_literal) )) ;) }))) }))) (expression_statement "lVar7 = *(long *)(lVar3 + 8);" (assignment_expression "lVar7 = *(long *)(lVar3 + 8)" identifier = (pointer_expression "*(long *)(lVar3 + 8)" * (cast_expression "(long *)(lVar3 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 8)" ( (binary_expression "lVar3 + 8" identifier + number_literal) ))))) ;) (if_statement "if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }" if (parenthesized_expression "(lVar7 != 0)" ( (binary_expression "lVar7 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }" { (expression_statement "iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);" (assignment_expression "iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,lVar7,0)" identifier (argument_list "(param_1,param_2,param_3,lVar7,0)" ( identifier , identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (iVar1 == 0) {\n              return 0;\n            }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar3 = *(long *)(param_4 + 4);" (assignment_expression "lVar3 = *(long *)(param_4 + 4)" identifier = (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (expression_statement "lVar7 = *(long *)(lVar3 + 8);" (assignment_expression "lVar7 = *(long *)(lVar3 + 8)" identifier = (pointer_expression "*(long *)(lVar3 + 8)" * (cast_expression "(long *)(lVar3 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 8)" ( (binary_expression "lVar3 + 8" identifier + number_literal) ))))) ;) })) comment comment (expression_statement "uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18))" identifier = (call_expression "(**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18))" (parenthesized_expression "(**(code **)(param_2 + 0x80))" ( (pointer_expression "**(code **)(param_2 + 0x80)" * (pointer_expression "*(code **)(param_2 + 0x80)" * (cast_expression "(code **)(param_2 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x80)" ( (binary_expression "param_2 + 0x80" identifier + number_literal) ))))) )) (argument_list "(param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18))" ( identifier , (binary_expression "lVar7 != 0" identifier != number_literal) , identifier , (pointer_expression "*(undefined4 *)(lVar3 + 0x18)" * (cast_expression "(undefined4 *)(lVar3 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x18)" ( (binary_expression "lVar3 + 0x18" identifier + number_literal) )))) )))) ;) (return_statement "return uVar4;" return identifier ;)) (case_statement "case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;" case number_literal : (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" identifier (argument_list "(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" ( identifier , identifier , identifier , (pointer_expression "*(undefined8 *)(param_4 + 4)" * (cast_expression "(undefined8 *)(param_4 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 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 + 0x88);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88)" identifier = (pointer_expression "*(code **)(param_2 + 0x88)" * (cast_expression "(code **)(param_2 + 0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x88)" ( (binary_expression "param_2 + 0x88" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0012bfcc;" goto statement_identifier ;)) (case_statement "case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;" case number_literal : (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" identifier (argument_list "(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" ( identifier , identifier , identifier , (pointer_expression "*(undefined8 *)(param_4 + 4)" * (cast_expression "(undefined8 *)(param_4 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 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 + 0x90);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90)" identifier = (pointer_expression "*(code **)(param_2 + 0x90)" * (cast_expression "(code **)(param_2 + 0x90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x90)" ( (binary_expression "param_2 + 0x90" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0012bfcc;" goto statement_identifier ;)) (case_statement "case 0x16:\n          goto switchD_0012bc67_caseD_16;" case number_literal : (goto_statement "goto switchD_0012bc67_caseD_16;" goto statement_identifier ;)) (case_statement "case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;" case number_literal : (labeled_statement "switchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);" statement_identifier : (expression_statement "plVar6 = *(long **)(param_4 + 4);" (assignment_expression "plVar6 = *(long **)(param_4 + 4)" identifier = (pointer_expression "*(long **)(param_4 + 4)" * (cast_expression "(long **)(param_4 + 4)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;)) (expression_statement "param_5 = *plVar6;" (assignment_expression "param_5 = *plVar6" identifier = (pointer_expression "*plVar6" * identifier)) ;) (goto_statement "goto LAB_0012bc96;" 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 "()" ( ))) ;)) }))) comment comment (expression_statement "uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);" (assignment_expression "uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2)" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE_00)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE_00" * identifier) )) (argument_list "(param_3,iVar2)" ( identifier , identifier )))) ;) (return_statement "return uVar4;" return identifier ;) }))) (expression_statement "*(undefined4 *)(param_5 + 0x10) = *(undefined4 *)(param_1 + 0x30);" (assignment_expression "*(undefined4 *)(param_5 + 0x10) = *(undefined4 *)(param_1 + 0x30)" (pointer_expression "*(undefined4 *)(param_5 + 0x10)" * (cast_expression "(undefined4 *)(param_5 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x10)" ( (binary_expression "param_5 + 0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x30)" * (cast_expression "(undefined4 *)(param_1 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 != 0x16) {\n        if (iVar2 != 0x17) {\n          if (*(int *)(param_5 + 0x14) != 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          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }" if (parenthesized_expression "(iVar2 != 0x16)" ( (binary_expression "iVar2 != 0x16" identifier != number_literal) )) (compound_statement "{\n        if (iVar2 != 0x17) {\n          if (*(int *)(param_5 + 0x14) != 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          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }" { (if_statement "if (iVar2 != 0x17) {\n          if (*(int *)(param_5 + 0x14) != 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          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }" if (parenthesized_expression "(iVar2 != 0x17)" ( (binary_expression "iVar2 != 0x17" identifier != number_literal) )) (compound_statement "{\n          if (*(int *)(param_5 + 0x14) != 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          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }" { (if_statement "if (*(int *)(param_5 + 0x14) != 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 + 0x14) != 1)" ( (binary_expression "*(int *)(param_5 + 0x14) != 1" (pointer_expression "*(int *)(param_5 + 0x14)" * (cast_expression "(int *)(param_5 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x14)" ( (binary_expression "param_5 + 0x14" 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 "uVar4 = *(undefined8 *)(param_5 + 8);" (assignment_expression "uVar4 = *(undefined8 *)(param_5 + 8)" identifier = (pointer_expression "*(undefined8 *)(param_5 + 8)" * (cast_expression "(undefined8 *)(param_5 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 8)" ( (binary_expression "param_5 + 8" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0012bc55;" goto statement_identifier ;) })) (goto_statement "goto switchD_0012bc67_caseD_17;" goto statement_identifier ;) })) (labeled_statement "switchD_0012bc67_caseD_16:\n      param_5 = 0;" statement_identifier : (expression_statement "param_5 = 0;" (assignment_expression "param_5 = 0" identifier = number_literal) ;)) })) (expression_statement "plVar6 = *(long **)(param_4 + 4);" (assignment_expression "plVar6 = *(long **)(param_4 + 4)" identifier = (pointer_expression "*(long **)(param_4 + 4)" * (cast_expression "(long **)(param_4 + 4)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (expression_statement "lVar3 = *plVar6;" (assignment_expression "lVar3 = *plVar6" identifier = (pointer_expression "*plVar6" * identifier)) ;) (if_statement "if (*(int *)(lVar3 + 0x10) == *(int *)(param_1 + 0x30)) {\n      if (iVar2 == 0x16) {\n                    /* WARNING: Could not recover jumptable at 0x0012c67f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));\n        return uVar4;\n      }\nLAB_0012c43d:\n      piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0);\n      if (piVar5 != (int *)0x0) {\n        iVar2 = *piVar5;\n        uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n        if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n        goto LAB_0012c3c5;\n      }\n      goto LAB_0012bff3;\n    }" if (parenthesized_expression "(*(int *)(lVar3 + 0x10) == *(int *)(param_1 + 0x30))" ( (binary_expression "*(int *)(lVar3 + 0x10) == *(int *)(param_1 + 0x30)" (pointer_expression "*(int *)(lVar3 + 0x10)" * (cast_expression "(int *)(lVar3 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x10)" ( (binary_expression "lVar3 + 0x10" identifier + number_literal) )))) == (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) )) (compound_statement "{\n      if (iVar2 == 0x16) {\n                    /* WARNING: Could not recover jumptable at 0x0012c67f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));\n        return uVar4;\n      }\nLAB_0012c43d:\n      piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0);\n      if (piVar5 != (int *)0x0) {\n        iVar2 = *piVar5;\n        uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n        if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n        goto LAB_0012c3c5;\n      }\n      goto LAB_0012bff3;\n    }" { (if_statement "if (iVar2 == 0x16) {\n                    /* WARNING: Could not recover jumptable at 0x0012c67f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));\n        return uVar4;\n      }" if (parenthesized_expression "(iVar2 == 0x16)" ( (binary_expression "iVar2 == 0x16" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0012c67f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));\n        return uVar4;\n      }" { comment comment (expression_statement "uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));" (assignment_expression "uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8))" identifier = (call_expression "(**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8))" (parenthesized_expression "(**(code **)(param_2 + 0xf0))" ( (pointer_expression "**(code **)(param_2 + 0xf0)" * (pointer_expression "*(code **)(param_2 + 0xf0)" * (cast_expression "(code **)(param_2 + 0xf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xf0)" ( (binary_expression "param_2 + 0xf0" identifier + number_literal) ))))) )) (argument_list "(param_3,*(undefined8 *)(lVar3 + 8))" ( identifier , (pointer_expression "*(undefined8 *)(lVar3 + 8)" * (cast_expression "(undefined8 *)(lVar3 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 8)" ( (binary_expression "lVar3 + 8" identifier + number_literal) )))) )))) ;) (return_statement "return uVar4;" return identifier ;) })) (labeled_statement "LAB_0012c43d:\n      piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0);" statement_identifier : (expression_statement "piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0);" (assignment_expression "piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0)" identifier = (cast_expression "(int *)FUN_0012b0d0(param_1,param_4,0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0012b0d0(param_1,param_4,0)" identifier (argument_list "(param_1,param_4,0)" ( identifier , identifier , number_literal ))))) ;)) (if_statement "if (piVar5 != (int *)0x0) {\n        iVar2 = *piVar5;\n        uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n        if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n        goto LAB_0012c3c5;\n      }" if (parenthesized_expression "(piVar5 != (int *)0x0)" ( (binary_expression "piVar5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar2 = *piVar5;\n        uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n        if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n        goto LAB_0012c3c5;\n      }" { (expression_statement "iVar2 = *piVar5;" (assignment_expression "iVar2 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);" (assignment_expression "uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8)" identifier = (pointer_expression "*(undefined8 *)(**(long **)(param_4 + 4) + 8)" * (cast_expression "(undefined8 *)(**(long **)(param_4 + 4) + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(long **)(param_4 + 4) + 8)" ( (binary_expression "**(long **)(param_4 + 4) + 8" (pointer_expression "**(long **)(param_4 + 4)" * (pointer_expression "*(long **)(param_4 + 4)" * (cast_expression "(long **)(param_4 + 4)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }\n        else {\n          uVar12 = 0;\n        }" if (parenthesized_expression "((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0))" ( (binary_expression "(iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)" (parenthesized_expression "(iVar2 - 7U < 4)" ( (binary_expression "iVar2 - 7U < 4" (binary_expression "iVar2 - 7U" identifier - number_literal) < number_literal) )) && (parenthesized_expression "(*(long *)(piVar5 + 4) != 0)" ( (binary_expression "*(long *)(piVar5 + 4) != 0" (pointer_expression "*(long *)(piVar5 + 4)" * (cast_expression "(long *)(piVar5 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 4)" ( (binary_expression "piVar5 + 4" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }" { (expression_statement "uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);" (assignment_expression "uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc)" identifier = (pointer_expression "*(uint *)(*(long *)(piVar5 + 4) + 0xc)" * (cast_expression "(uint *)(*(long *)(piVar5 + 4) + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(piVar5 + 4) + 0xc)" ( (binary_expression "*(long *)(piVar5 + 4) + 0xc" (pointer_expression "*(long *)(piVar5 + 4)" * (cast_expression "(long *)(piVar5 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 4)" ( (binary_expression "piVar5 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }" if (parenthesized_expression "(uVar12 <= *(uint *)(param_1 + 0x38))" ( (binary_expression "uVar12 <= *(uint *)(param_1 + 0x38)" identifier <= (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) )) (compound_statement "{\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }" { (expression_statement "iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);" (assignment_expression "iVar2 = FUN_0012bae0(param_1,uVar4,piVar5)" identifier = (call_expression "FUN_0012bae0(param_1,uVar4,piVar5)" identifier (argument_list "(param_1,uVar4,piVar5)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n              return 0;\n            }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar2 = *piVar5;" (assignment_expression "iVar2 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);" (assignment_expression "uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc)" identifier = (pointer_expression "*(uint *)(*(long *)(piVar5 + 4) + 0xc)" * (cast_expression "(uint *)(*(long *)(piVar5 + 4) + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(piVar5 + 4) + 0xc)" ( (binary_expression "*(long *)(piVar5 + 4) + 0xc" (pointer_expression "*(long *)(piVar5 + 4)" * (cast_expression "(long *)(piVar5 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 4)" ( (binary_expression "piVar5 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);" (assignment_expression "uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8)" identifier = (pointer_expression "*(undefined8 *)(**(long **)(param_4 + 4) + 8)" * (cast_expression "(undefined8 *)(**(long **)(param_4 + 4) + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(long **)(param_4 + 4) + 8)" ( (binary_expression "**(long **)(param_4 + 4) + 8" (pointer_expression "**(long **)(param_4 + 4)" * (pointer_expression "*(long **)(param_4 + 4)" * (cast_expression "(long **)(param_4 + 4)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) + number_literal) ))))) ;) })) }) (else_clause "else {\n          uVar12 = 0;\n        }" else (compound_statement "{\n          uVar12 = 0;\n        }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) }))) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8)" identifier = (pointer_expression "*(code **)(param_2 + 0xf8)" * (cast_expression "(code **)(param_2 + 0xf8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xf8)" ( (binary_expression "param_2 + 0xf8" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0012c3c5;" goto statement_identifier ;) })) (goto_statement "goto LAB_0012bff3;" goto statement_identifier ;) })) (if_statement "if (iVar2 != 0x17) goto LAB_0012bc2b;" if (parenthesized_expression "(iVar2 != 0x17)" ( (binary_expression "iVar2 != 0x17" identifier != number_literal) )) (goto_statement "goto LAB_0012bc2b;" goto statement_identifier ;)) (if_statement "if (lVar3 != param_5) goto LAB_0012c43d;" if (parenthesized_expression "(lVar3 != param_5)" ( (binary_expression "lVar3 != param_5" identifier != identifier) )) (goto_statement "goto LAB_0012c43d;" goto statement_identifier ;)) (expression_statement "*(int *)(param_5 + 0x10) = *(int *)(param_1 + 0x30);" (assignment_expression "*(int *)(param_5 + 0x10) = *(int *)(param_1 + 0x30)" (pointer_expression "*(int *)(param_5 + 0x10)" * (cast_expression "(int *)(param_5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x10)" ( (binary_expression "param_5 + 0x10" identifier + number_literal) )))) = (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0012bc96:\n    param_4 = (int *)plVar6[1];" statement_identifier : (expression_statement "param_4 = (int *)plVar6[1];" (assignment_expression "param_4 = (int *)plVar6[1]" identifier = (cast_expression "(int *)plVar6[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar6[1]" identifier [ number_literal ]))) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) (labeled_statement "switchD_0012bc67_caseD_1:\n  param_4 = *(int **)**(undefined8 **)(param_4 + 4);" statement_identifier : (expression_statement "param_4 = *(int **)**(undefined8 **)(param_4 + 4);" (assignment_expression "param_4 = *(int **)**(undefined8 **)(param_4 + 4)" identifier = (pointer_expression "*(int **)**(undefined8 **)(param_4 + 4)" * (cast_expression "(int **)**(undefined8 **)(param_4 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "**(undefined8 **)(param_4 + 4)" * (pointer_expression "*(undefined8 **)(param_4 + 4)" * (cast_expression "(undefined8 **)(param_4 + 4)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) )))))))) ;)) (if_statement "if (param_4 == (int *)0x0) {\nLAB_0012bff3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x10);\nLAB_0012bfcc:\n                    /* WARNING: Could not recover jumptable at 0x0012bfdd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3);\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_0012bff3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x10);\nLAB_0012bfcc:\n                    /* WARNING: Could not recover jumptable at 0x0012bfdd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3);\n    return uVar4;\n  }" { (labeled_statement "LAB_0012bff3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x10);" statement_identifier : (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x10);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x10)" identifier = (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) ))))) ;)) (labeled_statement "LAB_0012bfcc:\n                    /* WARNING: Could not recover jumptable at 0x0012bfdd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3);" statement_identifier : comment comment (expression_statement "uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3);" (assignment_expression "uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3)" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE_00)(param_3)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE_00)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE_00" * identifier) )) (argument_list "(param_3)" ( identifier )))) ;)) (return_statement "return uVar4;" return identifier ;) })) (goto_statement "goto LAB_0012bc21;" goto statement_identifier ;) })))
(translation_unit "bfd_boolean\ndebug_write_type(debug_handle *info,debug_write_fns *fns,void *fhandle,debug_type_s *type,\n                debug_name *name)\n\n{\n  debug_name *pdVar1;\n  debug_array_type *pdVar2;\n  debug_enum_type *pdVar3;\n  debug_field *ppdVar4;\n  debug_method_variant_s *pdVar5;\n  bfd_boolean bVar6;\n  debug_method_type *pdVar7;\n  debug_function_type *pdVar8;\n  _func_bfd_boolean_void_ptr *UNRECOVERED_JUMPTABLE_02;\n  undefined8 uVar9;\n  _func_bfd_boolean_void_ptr_uint *UNRECOVERED_JUMPTABLE_00;\n  _func_bfd_boolean_void_ptr_uint_bfd_boolean *UNRECOVERED_JUMPTABLE_01;\n  _func_bfd_boolean_void_ptr_char_ptr_uint_debug_type_kind *UNRECOVERED_JUMPTABLE;\n  debug_type_s *pdVar10;\n  debug_class_type *pdVar11;\n  uint uVar12;\n  debug_type_kind dVar13;\n  bfd_signed_vma *pbVar14;\n  ulong uVar15;\n  char **ppcVar16;\n  uint uVar17;\n  debug_type tag;\n  debug_named_type *pdVar18;\n  uint uVar19;\n  _func_bfd_boolean_void_ptr_char_ptr_uint_bfd_boolean_uint *p_Var20;\n  long lVar21;\n  debug_field pdVar22;\n  int iVar23;\n  debug_baseclass pdVar24;\n  debug_method local_48;\n  uint local_3c;\n  \nLAB_0012bc21:\n  do {\n    for (; dVar13 = type->kind, 1 < dVar13 - DEBUG_KIND_NAMED; type = ((type->u).karray)->range_type\n        ) {\nLAB_0012bc2b:\n      if (name == (debug_name *)0x0) {\n        tag = (debug_type)0x0;\nLAB_0012bc55:\n        switch(dVar13) {\n        case DEBUG_KIND_ILLEGAL:\n          uVar9 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar9);\n          return 0;\n        case DEBUG_KIND_INDIRECT:\n          goto switchD_0012bc67_caseD_1;\n        case DEBUG_KIND_VOID:\n          UNRECOVERED_JUMPTABLE_02 = fns->void_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_INT:\n          bVar6 = (type->u).kint;\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_01 = fns->int_type;\n          goto LAB_0012c31a;\n        case DEBUG_KIND_FLOAT:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->float_type;\n          break;\n        case DEBUG_KIND_COMPLEX:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->complex_type;\n          break;\n        case DEBUG_KIND_BOOL:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->bool_type;\n          break;\n        case DEBUG_KIND_STRUCT:\n        case DEBUG_KIND_UNION:\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 == (debug_class_type *)0x0) {\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            uVar17 = 0;\n          }\n          else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar12 = info->mark;\n              if (pdVar11->mark == uVar12) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                dVar13 = type->kind;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                bVar6 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)tag,uVar17,dVar13);\n                return bVar6;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar12 = info->mark;\n              if (uVar12 == pdVar11->mark) {\n                uVar17 = pdVar11->id;\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            pdVar11->mark = uVar12;\n            uVar17 = pdVar11->id;\n            dVar13 = type->kind;\n          }\n          bVar6 = (*p_Var20)(fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_STRUCT),uVar19);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          if ((((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar4 = ((type->u).kclass)->fields, ppdVar4 != (debug_field *)0x0)) &&\n             (pdVar22 = *ppdVar4, pdVar22 != (debug_field)0x0)) {\n            uVar15 = 0;\n            do {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              bVar6 = (*fns->struct_field)\n                                (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                 (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              uVar15 = (ulong)((int)uVar15 + 1);\n              pdVar22 = (debug_field)((type->u).kindirect)->slot[uVar15];\n            } while (pdVar22 != (debug_field)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->end_struct_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_CLASS:\n        case DEBUG_KIND_UNION_CLASS:\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 == (debug_class_type *)0x0) {\n            uVar19 = 0;\n            uVar17 = 0;\n            pdVar10 = (debug_type_s *)0x0;\n          }\n          else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar19 = info->mark;\n              if (uVar19 == pdVar11->mark) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar19 = info->mark;\n              uVar17 = pdVar11->id;\n              if (uVar19 == pdVar11->mark) {\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                dVar13 = type->kind;\n                goto LAB_0012c3b8;\n              }\n            }\n            pdVar11->mark = uVar19;\n            pdVar10 = pdVar11->vptrbase;\n            if ((type == pdVar10) || (pdVar10 == (debug_type_s *)0x0)) {\n              uVar19 = (uint)(pdVar10 != (debug_type_s *)0x0);\n              dVar13 = type->kind;\n            }\n            else {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              dVar13 = type->kind;\n              uVar19 = 1;\n            }\n          }\n          bVar6 = (*fns->start_class_type)\n                            (fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_CLASS),\n                             type->size,uVar19,(uint)(type == pdVar10));\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 != (debug_class_type *)0x0) {\n            if ((pdVar11->fields != (debug_field *)0x0) &&\n               (pdVar22 = *pdVar11->fields, pdVar22 != (debug_field)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                if (pdVar22->static_member == 0) {\n                  iVar23 = (*fns->struct_field)\n                                     (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                      (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n                }\n                else {\n                  iVar23 = (*fns->class_static_member)\n                                     (fhandle,pdVar22->name,(char *)pdVar22->u,pdVar22->visibility);\n                }\n                if (iVar23 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar22 = pdVar11->fields[uVar15];\n              } while (pdVar22 != (debug_field)0x0);\n            }\n            if ((pdVar11->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar24 = *pdVar11->baseclasses, pdVar24 != (debug_baseclass)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar24->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                bVar6 = (*fns->class_baseclass)\n                                  (fhandle,(ulong)pdVar24->bitpos,pdVar24->is_virtual,\n                                   pdVar24->visibility);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar24 = pdVar11->baseclasses[uVar15];\n              } while (pdVar24 != (debug_baseclass)0x0);\n            }\n            if ((pdVar11->methods != (debug_method *)0x0) &&\n               (local_48 = *pdVar11->methods, local_48 != (debug_method)0x0)) {\n              local_3c = 0;\n              do {\n                bVar6 = (*fns->class_start_method)(fhandle,local_48->name);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                uVar15 = 0;\n                pdVar5 = *local_48->variants;\n                while (pdVar5 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar5->context != (debug_type_s *)0x0) &&\n                     (bVar6 = debug_write_type(info,fns,fhandle,pdVar5->context,(debug_name *)0x0),\n                     bVar6 == 0)) {\n                    return 0;\n                  }\n                  bVar6 = debug_write_type(info,fns,fhandle,pdVar5->type,(debug_name *)0x0);\n                  if (bVar6 == 0) {\n                    return 0;\n                  }\n                  if (pdVar5->voffset == 0xffffffffffffffff) {\n                    iVar23 = (*fns->class_static_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep);\n                  }\n                  else {\n                    iVar23 = (*fns->class_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep,pdVar5->voffset,\n                                        (uint)(pdVar5->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar23 == 0) {\n                    return 0;\n                  }\n                  uVar15 = (ulong)((int)uVar15 + 1);\n                  pdVar5 = local_48->variants[uVar15];\n                }\n                bVar6 = (*fns->class_end_method)(fhandle);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = ((type->u).kclass)->methods[local_3c];\n              } while (local_48 != (debug_method)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->end_class_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_ENUM:\n          pdVar3 = (type->u).kenum;\n          pbVar14 = (bfd_signed_vma *)0x0;\n          ppcVar16 = (char **)0x0;\n          if (pdVar3 != (debug_enum_type *)0x0) {\n            pbVar14 = pdVar3->values;\n            ppcVar16 = pdVar3->names;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->enum_type)(fhandle,(char *)tag,ppcVar16,pbVar14);\n          return bVar6;\n        case DEBUG_KIND_POINTER:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->pointer_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_FUNCTION:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar8 = (type->u).kfunction;\n          if (pdVar8->arg_types == (debug_type_conflict *)0x0) {\n            uVar17 = 0xffffffff;\n          }\n          else {\n            pdVar10 = *pdVar8->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              uVar17 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar8 = (type->u).kfunction;\n                uVar17 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar8->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }\n          bVar6 = pdVar8->varargs;\n          UNRECOVERED_JUMPTABLE_01 =\n               (_func_bfd_boolean_void_ptr_uint_bfd_boolean *)fns->function_type;\nLAB_0012c31a:\n                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*UNRECOVERED_JUMPTABLE_01)(fhandle,uVar17,bVar6);\n          return bVar6;\n        case DEBUG_KIND_REFERENCE:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->reference_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_RANGE:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);\n          return bVar6;\n        case DEBUG_KIND_ARRAY:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)\n          ;\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar2 = (type->u).karray;\n                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->array_type)(fhandle,pdVar2->lower,pdVar2->upper,pdVar2->stringp);\n          return bVar6;\n        case DEBUG_KIND_SET:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          uVar17 = ((type->u).kclass)->mark;\n          UNRECOVERED_JUMPTABLE_00 = (_func_bfd_boolean_void_ptr_uint *)fns->set_type;\n          break;\n        case DEBUG_KIND_OFFSET:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)\n          ;\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->offset_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_METHOD:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar7 = (type->u).kmethod;\n          if (pdVar7->arg_types == (debug_type_conflict *)0x0) {\n            iVar23 = -1;\n          }\n          else {\n            pdVar10 = *pdVar7->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              iVar23 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar7 = (type->u).kmethod;\n                iVar23 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar7->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }\n          pdVar10 = pdVar7->domain_type;\n          if (pdVar10 != (debug_type_s *)0x0) {\n            bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar6 == 0) {\n              return 0;\n            }\n            pdVar7 = (type->u).kmethod;\n            pdVar10 = pdVar7->domain_type;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar23,\n                                      pdVar7->varargs);\n          return bVar6;\n        case DEBUG_KIND_CONST:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->const_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_VOLATILE:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->volatile_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_NAMED:\n          goto switchD_0012bc67_caseD_16;\n        case DEBUG_KIND_TAGGED:\nswitchD_0012bc67_caseD_17:\n          pdVar18 = (type->u).knamed;\n          name = pdVar18->name;\n          goto LAB_0012bc96;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n                    /* WARNING: Could not recover jumptable at 0x0012c2e8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        bVar6 = (*UNRECOVERED_JUMPTABLE_00)(fhandle,uVar17);\n        return bVar6;\n      }\n      name->mark = info->mark;\n      if (dVar13 != DEBUG_KIND_NAMED) {\n        if (dVar13 != 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          tag = (debug_type)name->name;\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }\nswitchD_0012bc67_caseD_16:\n      name = (debug_name *)0x0;\n    }\n    pdVar18 = (type->u).knamed;\n    pdVar1 = pdVar18->name;\n    if (pdVar1->mark == info->mark) {\n      if (dVar13 == DEBUG_KIND_NAMED) {\n                    /* WARNING: Could not recover jumptable at 0x0012c67f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        bVar6 = (*fns->typedef_type)(fhandle,pdVar1->name);\n        return bVar6;\n      }\nLAB_0012c43d:\n      pdVar10 = debug_get_real_type(info,type,(debug_type_real_list *)0x0);\n      if (pdVar10 != (debug_type_s *)0x0) {\n        dVar13 = pdVar10->kind;\n        tag = (debug_type)((type->u).knamed)->name->name;\n        if ((dVar13 - DEBUG_KIND_STRUCT < 4) && ((pdVar10->u).kclass != (debug_class_type *)0x0)) {\n          uVar17 = ((pdVar10->u).kclass)->id;\n          if (uVar17 <= info->base_id) {\n            bVar6 = debug_set_class_id(info,(char *)tag,pdVar10);\n            if (bVar6 == 0) {\n              return 0;\n            }\n            dVar13 = pdVar10->kind;\n            uVar17 = ((pdVar10->u).kclass)->id;\n            tag = ((type->u).kfunction)->return_type->pointer;\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        UNRECOVERED_JUMPTABLE = fns->tag_type;\n        goto LAB_0012c3c5;\n      }\n      goto LAB_0012bff3;\n    }\n    if (dVar13 != DEBUG_KIND_TAGGED) goto LAB_0012bc2b;\n    if (pdVar1 != name) goto LAB_0012c43d;\n    name->mark = info->mark;\nLAB_0012bc96:\n    type = pdVar18->type;\n  } while( true );\nswitchD_0012bc67_caseD_1:\n  type = *((type->u).kindirect)->slot;\n  if (type == (debug_type_conflict)0x0) {\nLAB_0012bff3:\n    UNRECOVERED_JUMPTABLE_02 = fns->empty_type;\nLAB_0012bfcc:\n                    /* WARNING: Could not recover jumptable at 0x0012bfdd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    bVar6 = (*UNRECOVERED_JUMPTABLE_02)(fhandle);\n    return bVar6;\n  }\n  goto LAB_0012bc21;\n}\n\n" (function_definition "bfd_boolean\ndebug_write_type(debug_handle *info,debug_write_fns *fns,void *fhandle,debug_type_s *type,\n                debug_name *name)\n\n{\n  debug_name *pdVar1;\n  debug_array_type *pdVar2;\n  debug_enum_type *pdVar3;\n  debug_field *ppdVar4;\n  debug_method_variant_s *pdVar5;\n  bfd_boolean bVar6;\n  debug_method_type *pdVar7;\n  debug_function_type *pdVar8;\n  _func_bfd_boolean_void_ptr *UNRECOVERED_JUMPTABLE_02;\n  undefined8 uVar9;\n  _func_bfd_boolean_void_ptr_uint *UNRECOVERED_JUMPTABLE_00;\n  _func_bfd_boolean_void_ptr_uint_bfd_boolean *UNRECOVERED_JUMPTABLE_01;\n  _func_bfd_boolean_void_ptr_char_ptr_uint_debug_type_kind *UNRECOVERED_JUMPTABLE;\n  debug_type_s *pdVar10;\n  debug_class_type *pdVar11;\n  uint uVar12;\n  debug_type_kind dVar13;\n  bfd_signed_vma *pbVar14;\n  ulong uVar15;\n  char **ppcVar16;\n  uint uVar17;\n  debug_type tag;\n  debug_named_type *pdVar18;\n  uint uVar19;\n  _func_bfd_boolean_void_ptr_char_ptr_uint_bfd_boolean_uint *p_Var20;\n  long lVar21;\n  debug_field pdVar22;\n  int iVar23;\n  debug_baseclass pdVar24;\n  debug_method local_48;\n  uint local_3c;\n  \nLAB_0012bc21:\n  do {\n    for (; dVar13 = type->kind, 1 < dVar13 - DEBUG_KIND_NAMED; type = ((type->u).karray)->range_type\n        ) {\nLAB_0012bc2b:\n      if (name == (debug_name *)0x0) {\n        tag = (debug_type)0x0;\nLAB_0012bc55:\n        switch(dVar13) {\n        case DEBUG_KIND_ILLEGAL:\n          uVar9 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar9);\n          return 0;\n        case DEBUG_KIND_INDIRECT:\n          goto switchD_0012bc67_caseD_1;\n        case DEBUG_KIND_VOID:\n          UNRECOVERED_JUMPTABLE_02 = fns->void_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_INT:\n          bVar6 = (type->u).kint;\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_01 = fns->int_type;\n          goto LAB_0012c31a;\n        case DEBUG_KIND_FLOAT:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->float_type;\n          break;\n        case DEBUG_KIND_COMPLEX:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->complex_type;\n          break;\n        case DEBUG_KIND_BOOL:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->bool_type;\n          break;\n        case DEBUG_KIND_STRUCT:\n        case DEBUG_KIND_UNION:\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 == (debug_class_type *)0x0) {\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            uVar17 = 0;\n          }\n          else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar12 = info->mark;\n              if (pdVar11->mark == uVar12) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                dVar13 = type->kind;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                bVar6 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)tag,uVar17,dVar13);\n                return bVar6;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar12 = info->mark;\n              if (uVar12 == pdVar11->mark) {\n                uVar17 = pdVar11->id;\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            pdVar11->mark = uVar12;\n            uVar17 = pdVar11->id;\n            dVar13 = type->kind;\n          }\n          bVar6 = (*p_Var20)(fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_STRUCT),uVar19);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          if ((((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar4 = ((type->u).kclass)->fields, ppdVar4 != (debug_field *)0x0)) &&\n             (pdVar22 = *ppdVar4, pdVar22 != (debug_field)0x0)) {\n            uVar15 = 0;\n            do {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              bVar6 = (*fns->struct_field)\n                                (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                 (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              uVar15 = (ulong)((int)uVar15 + 1);\n              pdVar22 = (debug_field)((type->u).kindirect)->slot[uVar15];\n            } while (pdVar22 != (debug_field)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->end_struct_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_CLASS:\n        case DEBUG_KIND_UNION_CLASS:\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 == (debug_class_type *)0x0) {\n            uVar19 = 0;\n            uVar17 = 0;\n            pdVar10 = (debug_type_s *)0x0;\n          }\n          else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar19 = info->mark;\n              if (uVar19 == pdVar11->mark) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar19 = info->mark;\n              uVar17 = pdVar11->id;\n              if (uVar19 == pdVar11->mark) {\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                dVar13 = type->kind;\n                goto LAB_0012c3b8;\n              }\n            }\n            pdVar11->mark = uVar19;\n            pdVar10 = pdVar11->vptrbase;\n            if ((type == pdVar10) || (pdVar10 == (debug_type_s *)0x0)) {\n              uVar19 = (uint)(pdVar10 != (debug_type_s *)0x0);\n              dVar13 = type->kind;\n            }\n            else {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              dVar13 = type->kind;\n              uVar19 = 1;\n            }\n          }\n          bVar6 = (*fns->start_class_type)\n                            (fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_CLASS),\n                             type->size,uVar19,(uint)(type == pdVar10));\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 != (debug_class_type *)0x0) {\n            if ((pdVar11->fields != (debug_field *)0x0) &&\n               (pdVar22 = *pdVar11->fields, pdVar22 != (debug_field)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                if (pdVar22->static_member == 0) {\n                  iVar23 = (*fns->struct_field)\n                                     (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                      (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n                }\n                else {\n                  iVar23 = (*fns->class_static_member)\n                                     (fhandle,pdVar22->name,(char *)pdVar22->u,pdVar22->visibility);\n                }\n                if (iVar23 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar22 = pdVar11->fields[uVar15];\n              } while (pdVar22 != (debug_field)0x0);\n            }\n            if ((pdVar11->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar24 = *pdVar11->baseclasses, pdVar24 != (debug_baseclass)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar24->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                bVar6 = (*fns->class_baseclass)\n                                  (fhandle,(ulong)pdVar24->bitpos,pdVar24->is_virtual,\n                                   pdVar24->visibility);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar24 = pdVar11->baseclasses[uVar15];\n              } while (pdVar24 != (debug_baseclass)0x0);\n            }\n            if ((pdVar11->methods != (debug_method *)0x0) &&\n               (local_48 = *pdVar11->methods, local_48 != (debug_method)0x0)) {\n              local_3c = 0;\n              do {\n                bVar6 = (*fns->class_start_method)(fhandle,local_48->name);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                uVar15 = 0;\n                pdVar5 = *local_48->variants;\n                while (pdVar5 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar5->context != (debug_type_s *)0x0) &&\n                     (bVar6 = debug_write_type(info,fns,fhandle,pdVar5->context,(debug_name *)0x0),\n                     bVar6 == 0)) {\n                    return 0;\n                  }\n                  bVar6 = debug_write_type(info,fns,fhandle,pdVar5->type,(debug_name *)0x0);\n                  if (bVar6 == 0) {\n                    return 0;\n                  }\n                  if (pdVar5->voffset == 0xffffffffffffffff) {\n                    iVar23 = (*fns->class_static_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep);\n                  }\n                  else {\n                    iVar23 = (*fns->class_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep,pdVar5->voffset,\n                                        (uint)(pdVar5->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar23 == 0) {\n                    return 0;\n                  }\n                  uVar15 = (ulong)((int)uVar15 + 1);\n                  pdVar5 = local_48->variants[uVar15];\n                }\n                bVar6 = (*fns->class_end_method)(fhandle);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = ((type->u).kclass)->methods[local_3c];\n              } while (local_48 != (debug_method)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->end_class_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_ENUM:\n          pdVar3 = (type->u).kenum;\n          pbVar14 = (bfd_signed_vma *)0x0;\n          ppcVar16 = (char **)0x0;\n          if (pdVar3 != (debug_enum_type *)0x0) {\n            pbVar14 = pdVar3->values;\n            ppcVar16 = pdVar3->names;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->enum_type)(fhandle,(char *)tag,ppcVar16,pbVar14);\n          return bVar6;\n        case DEBUG_KIND_POINTER:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->pointer_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_FUNCTION:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar8 = (type->u).kfunction;\n          if (pdVar8->arg_types == (debug_type_conflict *)0x0) {\n            uVar17 = 0xffffffff;\n          }\n          else {\n            pdVar10 = *pdVar8->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              uVar17 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar8 = (type->u).kfunction;\n                uVar17 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar8->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }\n          bVar6 = pdVar8->varargs;\n          UNRECOVERED_JUMPTABLE_01 =\n               (_func_bfd_boolean_void_ptr_uint_bfd_boolean *)fns->function_type;\nLAB_0012c31a:\n                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*UNRECOVERED_JUMPTABLE_01)(fhandle,uVar17,bVar6);\n          return bVar6;\n        case DEBUG_KIND_REFERENCE:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->reference_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_RANGE:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);\n          return bVar6;\n        case DEBUG_KIND_ARRAY:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)\n          ;\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar2 = (type->u).karray;\n                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->array_type)(fhandle,pdVar2->lower,pdVar2->upper,pdVar2->stringp);\n          return bVar6;\n        case DEBUG_KIND_SET:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          uVar17 = ((type->u).kclass)->mark;\n          UNRECOVERED_JUMPTABLE_00 = (_func_bfd_boolean_void_ptr_uint *)fns->set_type;\n          break;\n        case DEBUG_KIND_OFFSET:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)\n          ;\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->offset_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_METHOD:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar7 = (type->u).kmethod;\n          if (pdVar7->arg_types == (debug_type_conflict *)0x0) {\n            iVar23 = -1;\n          }\n          else {\n            pdVar10 = *pdVar7->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              iVar23 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar7 = (type->u).kmethod;\n                iVar23 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar7->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }\n          pdVar10 = pdVar7->domain_type;\n          if (pdVar10 != (debug_type_s *)0x0) {\n            bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar6 == 0) {\n              return 0;\n            }\n            pdVar7 = (type->u).kmethod;\n            pdVar10 = pdVar7->domain_type;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar23,\n                                      pdVar7->varargs);\n          return bVar6;\n        case DEBUG_KIND_CONST:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->const_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_VOLATILE:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->volatile_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_NAMED:\n          goto switchD_0012bc67_caseD_16;\n        case DEBUG_KIND_TAGGED:\nswitchD_0012bc67_caseD_17:\n          pdVar18 = (type->u).knamed;\n          name = pdVar18->name;\n          goto LAB_0012bc96;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n                    /* WARNING: Could not recover jumptable at 0x0012c2e8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        bVar6 = (*UNRECOVERED_JUMPTABLE_00)(fhandle,uVar17);\n        return bVar6;\n      }\n      name->mark = info->mark;\n      if (dVar13 != DEBUG_KIND_NAMED) {\n        if (dVar13 != 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          tag = (debug_type)name->name;\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }\nswitchD_0012bc67_caseD_16:\n      name = (debug_name *)0x0;\n    }\n    pdVar18 = (type->u).knamed;\n    pdVar1 = pdVar18->name;\n    if (pdVar1->mark == info->mark) {\n      if (dVar13 == DEBUG_KIND_NAMED) {\n                    /* WARNING: Could not recover jumptable at 0x0012c67f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        bVar6 = (*fns->typedef_type)(fhandle,pdVar1->name);\n        return bVar6;\n      }\nLAB_0012c43d:\n      pdVar10 = debug_get_real_type(info,type,(debug_type_real_list *)0x0);\n      if (pdVar10 != (debug_type_s *)0x0) {\n        dVar13 = pdVar10->kind;\n        tag = (debug_type)((type->u).knamed)->name->name;\n        if ((dVar13 - DEBUG_KIND_STRUCT < 4) && ((pdVar10->u).kclass != (debug_class_type *)0x0)) {\n          uVar17 = ((pdVar10->u).kclass)->id;\n          if (uVar17 <= info->base_id) {\n            bVar6 = debug_set_class_id(info,(char *)tag,pdVar10);\n            if (bVar6 == 0) {\n              return 0;\n            }\n            dVar13 = pdVar10->kind;\n            uVar17 = ((pdVar10->u).kclass)->id;\n            tag = ((type->u).kfunction)->return_type->pointer;\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        UNRECOVERED_JUMPTABLE = fns->tag_type;\n        goto LAB_0012c3c5;\n      }\n      goto LAB_0012bff3;\n    }\n    if (dVar13 != DEBUG_KIND_TAGGED) goto LAB_0012bc2b;\n    if (pdVar1 != name) goto LAB_0012c43d;\n    name->mark = info->mark;\nLAB_0012bc96:\n    type = pdVar18->type;\n  } while( true );\nswitchD_0012bc67_caseD_1:\n  type = *((type->u).kindirect)->slot;\n  if (type == (debug_type_conflict)0x0) {\nLAB_0012bff3:\n    UNRECOVERED_JUMPTABLE_02 = fns->empty_type;\nLAB_0012bfcc:\n                    /* WARNING: Could not recover jumptable at 0x0012bfdd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    bVar6 = (*UNRECOVERED_JUMPTABLE_02)(fhandle);\n    return bVar6;\n  }\n  goto LAB_0012bc21;\n}" type_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  debug_name *pdVar1;\n  debug_array_type *pdVar2;\n  debug_enum_type *pdVar3;\n  debug_field *ppdVar4;\n  debug_method_variant_s *pdVar5;\n  bfd_boolean bVar6;\n  debug_method_type *pdVar7;\n  debug_function_type *pdVar8;\n  _func_bfd_boolean_void_ptr *UNRECOVERED_JUMPTABLE_02;\n  undefined8 uVar9;\n  _func_bfd_boolean_void_ptr_uint *UNRECOVERED_JUMPTABLE_00;\n  _func_bfd_boolean_void_ptr_uint_bfd_boolean *UNRECOVERED_JUMPTABLE_01;\n  _func_bfd_boolean_void_ptr_char_ptr_uint_debug_type_kind *UNRECOVERED_JUMPTABLE;\n  debug_type_s *pdVar10;\n  debug_class_type *pdVar11;\n  uint uVar12;\n  debug_type_kind dVar13;\n  bfd_signed_vma *pbVar14;\n  ulong uVar15;\n  char **ppcVar16;\n  uint uVar17;\n  debug_type tag;\n  debug_named_type *pdVar18;\n  uint uVar19;\n  _func_bfd_boolean_void_ptr_char_ptr_uint_bfd_boolean_uint *p_Var20;\n  long lVar21;\n  debug_field pdVar22;\n  int iVar23;\n  debug_baseclass pdVar24;\n  debug_method local_48;\n  uint local_3c;\n  \nLAB_0012bc21:\n  do {\n    for (; dVar13 = type->kind, 1 < dVar13 - DEBUG_KIND_NAMED; type = ((type->u).karray)->range_type\n        ) {\nLAB_0012bc2b:\n      if (name == (debug_name *)0x0) {\n        tag = (debug_type)0x0;\nLAB_0012bc55:\n        switch(dVar13) {\n        case DEBUG_KIND_ILLEGAL:\n          uVar9 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar9);\n          return 0;\n        case DEBUG_KIND_INDIRECT:\n          goto switchD_0012bc67_caseD_1;\n        case DEBUG_KIND_VOID:\n          UNRECOVERED_JUMPTABLE_02 = fns->void_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_INT:\n          bVar6 = (type->u).kint;\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_01 = fns->int_type;\n          goto LAB_0012c31a;\n        case DEBUG_KIND_FLOAT:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->float_type;\n          break;\n        case DEBUG_KIND_COMPLEX:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->complex_type;\n          break;\n        case DEBUG_KIND_BOOL:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->bool_type;\n          break;\n        case DEBUG_KIND_STRUCT:\n        case DEBUG_KIND_UNION:\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 == (debug_class_type *)0x0) {\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            uVar17 = 0;\n          }\n          else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar12 = info->mark;\n              if (pdVar11->mark == uVar12) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                dVar13 = type->kind;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                bVar6 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)tag,uVar17,dVar13);\n                return bVar6;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar12 = info->mark;\n              if (uVar12 == pdVar11->mark) {\n                uVar17 = pdVar11->id;\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            pdVar11->mark = uVar12;\n            uVar17 = pdVar11->id;\n            dVar13 = type->kind;\n          }\n          bVar6 = (*p_Var20)(fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_STRUCT),uVar19);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          if ((((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar4 = ((type->u).kclass)->fields, ppdVar4 != (debug_field *)0x0)) &&\n             (pdVar22 = *ppdVar4, pdVar22 != (debug_field)0x0)) {\n            uVar15 = 0;\n            do {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              bVar6 = (*fns->struct_field)\n                                (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                 (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              uVar15 = (ulong)((int)uVar15 + 1);\n              pdVar22 = (debug_field)((type->u).kindirect)->slot[uVar15];\n            } while (pdVar22 != (debug_field)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->end_struct_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_CLASS:\n        case DEBUG_KIND_UNION_CLASS:\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 == (debug_class_type *)0x0) {\n            uVar19 = 0;\n            uVar17 = 0;\n            pdVar10 = (debug_type_s *)0x0;\n          }\n          else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar19 = info->mark;\n              if (uVar19 == pdVar11->mark) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar19 = info->mark;\n              uVar17 = pdVar11->id;\n              if (uVar19 == pdVar11->mark) {\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                dVar13 = type->kind;\n                goto LAB_0012c3b8;\n              }\n            }\n            pdVar11->mark = uVar19;\n            pdVar10 = pdVar11->vptrbase;\n            if ((type == pdVar10) || (pdVar10 == (debug_type_s *)0x0)) {\n              uVar19 = (uint)(pdVar10 != (debug_type_s *)0x0);\n              dVar13 = type->kind;\n            }\n            else {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              dVar13 = type->kind;\n              uVar19 = 1;\n            }\n          }\n          bVar6 = (*fns->start_class_type)\n                            (fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_CLASS),\n                             type->size,uVar19,(uint)(type == pdVar10));\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 != (debug_class_type *)0x0) {\n            if ((pdVar11->fields != (debug_field *)0x0) &&\n               (pdVar22 = *pdVar11->fields, pdVar22 != (debug_field)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                if (pdVar22->static_member == 0) {\n                  iVar23 = (*fns->struct_field)\n                                     (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                      (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n                }\n                else {\n                  iVar23 = (*fns->class_static_member)\n                                     (fhandle,pdVar22->name,(char *)pdVar22->u,pdVar22->visibility);\n                }\n                if (iVar23 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar22 = pdVar11->fields[uVar15];\n              } while (pdVar22 != (debug_field)0x0);\n            }\n            if ((pdVar11->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar24 = *pdVar11->baseclasses, pdVar24 != (debug_baseclass)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar24->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                bVar6 = (*fns->class_baseclass)\n                                  (fhandle,(ulong)pdVar24->bitpos,pdVar24->is_virtual,\n                                   pdVar24->visibility);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar24 = pdVar11->baseclasses[uVar15];\n              } while (pdVar24 != (debug_baseclass)0x0);\n            }\n            if ((pdVar11->methods != (debug_method *)0x0) &&\n               (local_48 = *pdVar11->methods, local_48 != (debug_method)0x0)) {\n              local_3c = 0;\n              do {\n                bVar6 = (*fns->class_start_method)(fhandle,local_48->name);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                uVar15 = 0;\n                pdVar5 = *local_48->variants;\n                while (pdVar5 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar5->context != (debug_type_s *)0x0) &&\n                     (bVar6 = debug_write_type(info,fns,fhandle,pdVar5->context,(debug_name *)0x0),\n                     bVar6 == 0)) {\n                    return 0;\n                  }\n                  bVar6 = debug_write_type(info,fns,fhandle,pdVar5->type,(debug_name *)0x0);\n                  if (bVar6 == 0) {\n                    return 0;\n                  }\n                  if (pdVar5->voffset == 0xffffffffffffffff) {\n                    iVar23 = (*fns->class_static_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep);\n                  }\n                  else {\n                    iVar23 = (*fns->class_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep,pdVar5->voffset,\n                                        (uint)(pdVar5->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar23 == 0) {\n                    return 0;\n                  }\n                  uVar15 = (ulong)((int)uVar15 + 1);\n                  pdVar5 = local_48->variants[uVar15];\n                }\n                bVar6 = (*fns->class_end_method)(fhandle);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = ((type->u).kclass)->methods[local_3c];\n              } while (local_48 != (debug_method)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->end_class_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_ENUM:\n          pdVar3 = (type->u).kenum;\n          pbVar14 = (bfd_signed_vma *)0x0;\n          ppcVar16 = (char **)0x0;\n          if (pdVar3 != (debug_enum_type *)0x0) {\n            pbVar14 = pdVar3->values;\n            ppcVar16 = pdVar3->names;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->enum_type)(fhandle,(char *)tag,ppcVar16,pbVar14);\n          return bVar6;\n        case DEBUG_KIND_POINTER:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->pointer_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_FUNCTION:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar8 = (type->u).kfunction;\n          if (pdVar8->arg_types == (debug_type_conflict *)0x0) {\n            uVar17 = 0xffffffff;\n          }\n          else {\n            pdVar10 = *pdVar8->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              uVar17 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar8 = (type->u).kfunction;\n                uVar17 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar8->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }\n          bVar6 = pdVar8->varargs;\n          UNRECOVERED_JUMPTABLE_01 =\n               (_func_bfd_boolean_void_ptr_uint_bfd_boolean *)fns->function_type;\nLAB_0012c31a:\n                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*UNRECOVERED_JUMPTABLE_01)(fhandle,uVar17,bVar6);\n          return bVar6;\n        case DEBUG_KIND_REFERENCE:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->reference_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_RANGE:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);\n          return bVar6;\n        case DEBUG_KIND_ARRAY:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)\n          ;\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar2 = (type->u).karray;\n                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->array_type)(fhandle,pdVar2->lower,pdVar2->upper,pdVar2->stringp);\n          return bVar6;\n        case DEBUG_KIND_SET:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          uVar17 = ((type->u).kclass)->mark;\n          UNRECOVERED_JUMPTABLE_00 = (_func_bfd_boolean_void_ptr_uint *)fns->set_type;\n          break;\n        case DEBUG_KIND_OFFSET:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)\n          ;\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->offset_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_METHOD:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar7 = (type->u).kmethod;\n          if (pdVar7->arg_types == (debug_type_conflict *)0x0) {\n            iVar23 = -1;\n          }\n          else {\n            pdVar10 = *pdVar7->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              iVar23 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar7 = (type->u).kmethod;\n                iVar23 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar7->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }\n          pdVar10 = pdVar7->domain_type;\n          if (pdVar10 != (debug_type_s *)0x0) {\n            bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar6 == 0) {\n              return 0;\n            }\n            pdVar7 = (type->u).kmethod;\n            pdVar10 = pdVar7->domain_type;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar23,\n                                      pdVar7->varargs);\n          return bVar6;\n        case DEBUG_KIND_CONST:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->const_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_VOLATILE:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->volatile_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_NAMED:\n          goto switchD_0012bc67_caseD_16;\n        case DEBUG_KIND_TAGGED:\nswitchD_0012bc67_caseD_17:\n          pdVar18 = (type->u).knamed;\n          name = pdVar18->name;\n          goto LAB_0012bc96;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n                    /* WARNING: Could not recover jumptable at 0x0012c2e8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        bVar6 = (*UNRECOVERED_JUMPTABLE_00)(fhandle,uVar17);\n        return bVar6;\n      }\n      name->mark = info->mark;\n      if (dVar13 != DEBUG_KIND_NAMED) {\n        if (dVar13 != 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          tag = (debug_type)name->name;\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }\nswitchD_0012bc67_caseD_16:\n      name = (debug_name *)0x0;\n    }\n    pdVar18 = (type->u).knamed;\n    pdVar1 = pdVar18->name;\n    if (pdVar1->mark == info->mark) {\n      if (dVar13 == DEBUG_KIND_NAMED) {\n                    /* WARNING: Could not recover jumptable at 0x0012c67f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        bVar6 = (*fns->typedef_type)(fhandle,pdVar1->name);\n        return bVar6;\n      }\nLAB_0012c43d:\n      pdVar10 = debug_get_real_type(info,type,(debug_type_real_list *)0x0);\n      if (pdVar10 != (debug_type_s *)0x0) {\n        dVar13 = pdVar10->kind;\n        tag = (debug_type)((type->u).knamed)->name->name;\n        if ((dVar13 - DEBUG_KIND_STRUCT < 4) && ((pdVar10->u).kclass != (debug_class_type *)0x0)) {\n          uVar17 = ((pdVar10->u).kclass)->id;\n          if (uVar17 <= info->base_id) {\n            bVar6 = debug_set_class_id(info,(char *)tag,pdVar10);\n            if (bVar6 == 0) {\n              return 0;\n            }\n            dVar13 = pdVar10->kind;\n            uVar17 = ((pdVar10->u).kclass)->id;\n            tag = ((type->u).kfunction)->return_type->pointer;\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        UNRECOVERED_JUMPTABLE = fns->tag_type;\n        goto LAB_0012c3c5;\n      }\n      goto LAB_0012bff3;\n    }\n    if (dVar13 != DEBUG_KIND_TAGGED) goto LAB_0012bc2b;\n    if (pdVar1 != name) goto LAB_0012c43d;\n    name->mark = info->mark;\nLAB_0012bc96:\n    type = pdVar18->type;\n  } while( true );\nswitchD_0012bc67_caseD_1:\n  type = *((type->u).kindirect)->slot;\n  if (type == (debug_type_conflict)0x0) {\nLAB_0012bff3:\n    UNRECOVERED_JUMPTABLE_02 = fns->empty_type;\nLAB_0012bfcc:\n                    /* WARNING: Could not recover jumptable at 0x0012bfdd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    bVar6 = (*UNRECOVERED_JUMPTABLE_02)(fhandle);\n    return bVar6;\n  }\n  goto LAB_0012bc21;\n}" { (declaration "debug_name *pdVar1;" type_identifier (pointer_declarator "*pdVar1" * identifier) ;) (declaration "debug_array_type *pdVar2;" type_identifier (pointer_declarator "*pdVar2" * identifier) ;) (declaration "debug_enum_type *pdVar3;" type_identifier (pointer_declarator "*pdVar3" * identifier) ;) (declaration "debug_field *ppdVar4;" type_identifier (pointer_declarator "*ppdVar4" * identifier) ;) (declaration "debug_method_variant_s *pdVar5;" type_identifier (pointer_declarator "*pdVar5" * identifier) ;) (declaration "bfd_boolean bVar6;" type_identifier identifier ;) (declaration "debug_method_type *pdVar7;" type_identifier (pointer_declarator "*pdVar7" * identifier) ;) (declaration "debug_function_type *pdVar8;" type_identifier (pointer_declarator "*pdVar8" * identifier) ;) (declaration "_func_bfd_boolean_void_ptr *UNRECOVERED_JUMPTABLE_02;" type_identifier (pointer_declarator "*UNRECOVERED_JUMPTABLE_02" * identifier) ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (declaration "_func_bfd_boolean_void_ptr_uint *UNRECOVERED_JUMPTABLE_00;" type_identifier (pointer_declarator "*UNRECOVERED_JUMPTABLE_00" * identifier) ;) (declaration "_func_bfd_boolean_void_ptr_uint_bfd_boolean *UNRECOVERED_JUMPTABLE_01;" type_identifier (pointer_declarator "*UNRECOVERED_JUMPTABLE_01" * identifier) ;) (declaration "_func_bfd_boolean_void_ptr_char_ptr_uint_debug_type_kind *UNRECOVERED_JUMPTABLE;" type_identifier (pointer_declarator "*UNRECOVERED_JUMPTABLE" * identifier) ;) (declaration "debug_type_s *pdVar10;" type_identifier (pointer_declarator "*pdVar10" * identifier) ;) (declaration "debug_class_type *pdVar11;" type_identifier (pointer_declarator "*pdVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "debug_type_kind dVar13;" type_identifier identifier ;) (declaration "bfd_signed_vma *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "ulong uVar15;" type_identifier identifier ;) (declaration "char **ppcVar16;" primitive_type (pointer_declarator "**ppcVar16" * (pointer_declarator "*ppcVar16" * identifier)) ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "debug_type tag;" type_identifier identifier ;) (declaration "debug_named_type *pdVar18;" type_identifier (pointer_declarator "*pdVar18" * identifier) ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "_func_bfd_boolean_void_ptr_char_ptr_uint_bfd_boolean_uint *p_Var20;" type_identifier (pointer_declarator "*p_Var20" * identifier) ;) (declaration "long lVar21;" (sized_type_specifier "long" long) identifier ;) (declaration "debug_field pdVar22;" type_identifier identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "debug_baseclass pdVar24;" type_identifier identifier ;) (declaration "debug_method local_48;" type_identifier identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (labeled_statement "LAB_0012bc21:\n  do {\n    for (; dVar13 = type->kind, 1 < dVar13 - DEBUG_KIND_NAMED; type = ((type->u).karray)->range_type\n        ) {\nLAB_0012bc2b:\n      if (name == (debug_name *)0x0) {\n        tag = (debug_type)0x0;\nLAB_0012bc55:\n        switch(dVar13) {\n        case DEBUG_KIND_ILLEGAL:\n          uVar9 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar9);\n          return 0;\n        case DEBUG_KIND_INDIRECT:\n          goto switchD_0012bc67_caseD_1;\n        case DEBUG_KIND_VOID:\n          UNRECOVERED_JUMPTABLE_02 = fns->void_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_INT:\n          bVar6 = (type->u).kint;\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_01 = fns->int_type;\n          goto LAB_0012c31a;\n        case DEBUG_KIND_FLOAT:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->float_type;\n          break;\n        case DEBUG_KIND_COMPLEX:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->complex_type;\n          break;\n        case DEBUG_KIND_BOOL:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->bool_type;\n          break;\n        case DEBUG_KIND_STRUCT:\n        case DEBUG_KIND_UNION:\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 == (debug_class_type *)0x0) {\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            uVar17 = 0;\n          }\n          else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar12 = info->mark;\n              if (pdVar11->mark == uVar12) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                dVar13 = type->kind;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                bVar6 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)tag,uVar17,dVar13);\n                return bVar6;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar12 = info->mark;\n              if (uVar12 == pdVar11->mark) {\n                uVar17 = pdVar11->id;\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            pdVar11->mark = uVar12;\n            uVar17 = pdVar11->id;\n            dVar13 = type->kind;\n          }\n          bVar6 = (*p_Var20)(fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_STRUCT),uVar19);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          if ((((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar4 = ((type->u).kclass)->fields, ppdVar4 != (debug_field *)0x0)) &&\n             (pdVar22 = *ppdVar4, pdVar22 != (debug_field)0x0)) {\n            uVar15 = 0;\n            do {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              bVar6 = (*fns->struct_field)\n                                (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                 (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              uVar15 = (ulong)((int)uVar15 + 1);\n              pdVar22 = (debug_field)((type->u).kindirect)->slot[uVar15];\n            } while (pdVar22 != (debug_field)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->end_struct_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_CLASS:\n        case DEBUG_KIND_UNION_CLASS:\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 == (debug_class_type *)0x0) {\n            uVar19 = 0;\n            uVar17 = 0;\n            pdVar10 = (debug_type_s *)0x0;\n          }\n          else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar19 = info->mark;\n              if (uVar19 == pdVar11->mark) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar19 = info->mark;\n              uVar17 = pdVar11->id;\n              if (uVar19 == pdVar11->mark) {\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                dVar13 = type->kind;\n                goto LAB_0012c3b8;\n              }\n            }\n            pdVar11->mark = uVar19;\n            pdVar10 = pdVar11->vptrbase;\n            if ((type == pdVar10) || (pdVar10 == (debug_type_s *)0x0)) {\n              uVar19 = (uint)(pdVar10 != (debug_type_s *)0x0);\n              dVar13 = type->kind;\n            }\n            else {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              dVar13 = type->kind;\n              uVar19 = 1;\n            }\n          }\n          bVar6 = (*fns->start_class_type)\n                            (fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_CLASS),\n                             type->size,uVar19,(uint)(type == pdVar10));\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 != (debug_class_type *)0x0) {\n            if ((pdVar11->fields != (debug_field *)0x0) &&\n               (pdVar22 = *pdVar11->fields, pdVar22 != (debug_field)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                if (pdVar22->static_member == 0) {\n                  iVar23 = (*fns->struct_field)\n                                     (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                      (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n                }\n                else {\n                  iVar23 = (*fns->class_static_member)\n                                     (fhandle,pdVar22->name,(char *)pdVar22->u,pdVar22->visibility);\n                }\n                if (iVar23 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar22 = pdVar11->fields[uVar15];\n              } while (pdVar22 != (debug_field)0x0);\n            }\n            if ((pdVar11->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar24 = *pdVar11->baseclasses, pdVar24 != (debug_baseclass)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar24->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                bVar6 = (*fns->class_baseclass)\n                                  (fhandle,(ulong)pdVar24->bitpos,pdVar24->is_virtual,\n                                   pdVar24->visibility);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar24 = pdVar11->baseclasses[uVar15];\n              } while (pdVar24 != (debug_baseclass)0x0);\n            }\n            if ((pdVar11->methods != (debug_method *)0x0) &&\n               (local_48 = *pdVar11->methods, local_48 != (debug_method)0x0)) {\n              local_3c = 0;\n              do {\n                bVar6 = (*fns->class_start_method)(fhandle,local_48->name);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                uVar15 = 0;\n                pdVar5 = *local_48->variants;\n                while (pdVar5 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar5->context != (debug_type_s *)0x0) &&\n                     (bVar6 = debug_write_type(info,fns,fhandle,pdVar5->context,(debug_name *)0x0),\n                     bVar6 == 0)) {\n                    return 0;\n                  }\n                  bVar6 = debug_write_type(info,fns,fhandle,pdVar5->type,(debug_name *)0x0);\n                  if (bVar6 == 0) {\n                    return 0;\n                  }\n                  if (pdVar5->voffset == 0xffffffffffffffff) {\n                    iVar23 = (*fns->class_static_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep);\n                  }\n                  else {\n                    iVar23 = (*fns->class_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep,pdVar5->voffset,\n                                        (uint)(pdVar5->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar23 == 0) {\n                    return 0;\n                  }\n                  uVar15 = (ulong)((int)uVar15 + 1);\n                  pdVar5 = local_48->variants[uVar15];\n                }\n                bVar6 = (*fns->class_end_method)(fhandle);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = ((type->u).kclass)->methods[local_3c];\n              } while (local_48 != (debug_method)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->end_class_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_ENUM:\n          pdVar3 = (type->u).kenum;\n          pbVar14 = (bfd_signed_vma *)0x0;\n          ppcVar16 = (char **)0x0;\n          if (pdVar3 != (debug_enum_type *)0x0) {\n            pbVar14 = pdVar3->values;\n            ppcVar16 = pdVar3->names;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->enum_type)(fhandle,(char *)tag,ppcVar16,pbVar14);\n          return bVar6;\n        case DEBUG_KIND_POINTER:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->pointer_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_FUNCTION:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar8 = (type->u).kfunction;\n          if (pdVar8->arg_types == (debug_type_conflict *)0x0) {\n            uVar17 = 0xffffffff;\n          }\n          else {\n            pdVar10 = *pdVar8->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              uVar17 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar8 = (type->u).kfunction;\n                uVar17 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar8->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }\n          bVar6 = pdVar8->varargs;\n          UNRECOVERED_JUMPTABLE_01 =\n               (_func_bfd_boolean_void_ptr_uint_bfd_boolean *)fns->function_type;\nLAB_0012c31a:\n                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*UNRECOVERED_JUMPTABLE_01)(fhandle,uVar17,bVar6);\n          return bVar6;\n        case DEBUG_KIND_REFERENCE:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->reference_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_RANGE:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);\n          return bVar6;\n        case DEBUG_KIND_ARRAY:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)\n          ;\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar2 = (type->u).karray;\n                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->array_type)(fhandle,pdVar2->lower,pdVar2->upper,pdVar2->stringp);\n          return bVar6;\n        case DEBUG_KIND_SET:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          uVar17 = ((type->u).kclass)->mark;\n          UNRECOVERED_JUMPTABLE_00 = (_func_bfd_boolean_void_ptr_uint *)fns->set_type;\n          break;\n        case DEBUG_KIND_OFFSET:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)\n          ;\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->offset_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_METHOD:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar7 = (type->u).kmethod;\n          if (pdVar7->arg_types == (debug_type_conflict *)0x0) {\n            iVar23 = -1;\n          }\n          else {\n            pdVar10 = *pdVar7->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              iVar23 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar7 = (type->u).kmethod;\n                iVar23 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar7->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }\n          pdVar10 = pdVar7->domain_type;\n          if (pdVar10 != (debug_type_s *)0x0) {\n            bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar6 == 0) {\n              return 0;\n            }\n            pdVar7 = (type->u).kmethod;\n            pdVar10 = pdVar7->domain_type;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar23,\n                                      pdVar7->varargs);\n          return bVar6;\n        case DEBUG_KIND_CONST:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->const_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_VOLATILE:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->volatile_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_NAMED:\n          goto switchD_0012bc67_caseD_16;\n        case DEBUG_KIND_TAGGED:\nswitchD_0012bc67_caseD_17:\n          pdVar18 = (type->u).knamed;\n          name = pdVar18->name;\n          goto LAB_0012bc96;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n                    /* WARNING: Could not recover jumptable at 0x0012c2e8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        bVar6 = (*UNRECOVERED_JUMPTABLE_00)(fhandle,uVar17);\n        return bVar6;\n      }\n      name->mark = info->mark;\n      if (dVar13 != DEBUG_KIND_NAMED) {\n        if (dVar13 != 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          tag = (debug_type)name->name;\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }\nswitchD_0012bc67_caseD_16:\n      name = (debug_name *)0x0;\n    }\n    pdVar18 = (type->u).knamed;\n    pdVar1 = pdVar18->name;\n    if (pdVar1->mark == info->mark) {\n      if (dVar13 == DEBUG_KIND_NAMED) {\n                    /* WARNING: Could not recover jumptable at 0x0012c67f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        bVar6 = (*fns->typedef_type)(fhandle,pdVar1->name);\n        return bVar6;\n      }\nLAB_0012c43d:\n      pdVar10 = debug_get_real_type(info,type,(debug_type_real_list *)0x0);\n      if (pdVar10 != (debug_type_s *)0x0) {\n        dVar13 = pdVar10->kind;\n        tag = (debug_type)((type->u).knamed)->name->name;\n        if ((dVar13 - DEBUG_KIND_STRUCT < 4) && ((pdVar10->u).kclass != (debug_class_type *)0x0)) {\n          uVar17 = ((pdVar10->u).kclass)->id;\n          if (uVar17 <= info->base_id) {\n            bVar6 = debug_set_class_id(info,(char *)tag,pdVar10);\n            if (bVar6 == 0) {\n              return 0;\n            }\n            dVar13 = pdVar10->kind;\n            uVar17 = ((pdVar10->u).kclass)->id;\n            tag = ((type->u).kfunction)->return_type->pointer;\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        UNRECOVERED_JUMPTABLE = fns->tag_type;\n        goto LAB_0012c3c5;\n      }\n      goto LAB_0012bff3;\n    }\n    if (dVar13 != DEBUG_KIND_TAGGED) goto LAB_0012bc2b;\n    if (pdVar1 != name) goto LAB_0012c43d;\n    name->mark = info->mark;\nLAB_0012bc96:\n    type = pdVar18->type;\n  } while( true );" statement_identifier : (do_statement "do {\n    for (; dVar13 = type->kind, 1 < dVar13 - DEBUG_KIND_NAMED; type = ((type->u).karray)->range_type\n        ) {\nLAB_0012bc2b:\n      if (name == (debug_name *)0x0) {\n        tag = (debug_type)0x0;\nLAB_0012bc55:\n        switch(dVar13) {\n        case DEBUG_KIND_ILLEGAL:\n          uVar9 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar9);\n          return 0;\n        case DEBUG_KIND_INDIRECT:\n          goto switchD_0012bc67_caseD_1;\n        case DEBUG_KIND_VOID:\n          UNRECOVERED_JUMPTABLE_02 = fns->void_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_INT:\n          bVar6 = (type->u).kint;\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_01 = fns->int_type;\n          goto LAB_0012c31a;\n        case DEBUG_KIND_FLOAT:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->float_type;\n          break;\n        case DEBUG_KIND_COMPLEX:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->complex_type;\n          break;\n        case DEBUG_KIND_BOOL:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->bool_type;\n          break;\n        case DEBUG_KIND_STRUCT:\n        case DEBUG_KIND_UNION:\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 == (debug_class_type *)0x0) {\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            uVar17 = 0;\n          }\n          else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar12 = info->mark;\n              if (pdVar11->mark == uVar12) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                dVar13 = type->kind;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                bVar6 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)tag,uVar17,dVar13);\n                return bVar6;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar12 = info->mark;\n              if (uVar12 == pdVar11->mark) {\n                uVar17 = pdVar11->id;\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            pdVar11->mark = uVar12;\n            uVar17 = pdVar11->id;\n            dVar13 = type->kind;\n          }\n          bVar6 = (*p_Var20)(fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_STRUCT),uVar19);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          if ((((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar4 = ((type->u).kclass)->fields, ppdVar4 != (debug_field *)0x0)) &&\n             (pdVar22 = *ppdVar4, pdVar22 != (debug_field)0x0)) {\n            uVar15 = 0;\n            do {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              bVar6 = (*fns->struct_field)\n                                (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                 (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              uVar15 = (ulong)((int)uVar15 + 1);\n              pdVar22 = (debug_field)((type->u).kindirect)->slot[uVar15];\n            } while (pdVar22 != (debug_field)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->end_struct_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_CLASS:\n        case DEBUG_KIND_UNION_CLASS:\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 == (debug_class_type *)0x0) {\n            uVar19 = 0;\n            uVar17 = 0;\n            pdVar10 = (debug_type_s *)0x0;\n          }\n          else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar19 = info->mark;\n              if (uVar19 == pdVar11->mark) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar19 = info->mark;\n              uVar17 = pdVar11->id;\n              if (uVar19 == pdVar11->mark) {\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                dVar13 = type->kind;\n                goto LAB_0012c3b8;\n              }\n            }\n            pdVar11->mark = uVar19;\n            pdVar10 = pdVar11->vptrbase;\n            if ((type == pdVar10) || (pdVar10 == (debug_type_s *)0x0)) {\n              uVar19 = (uint)(pdVar10 != (debug_type_s *)0x0);\n              dVar13 = type->kind;\n            }\n            else {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              dVar13 = type->kind;\n              uVar19 = 1;\n            }\n          }\n          bVar6 = (*fns->start_class_type)\n                            (fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_CLASS),\n                             type->size,uVar19,(uint)(type == pdVar10));\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 != (debug_class_type *)0x0) {\n            if ((pdVar11->fields != (debug_field *)0x0) &&\n               (pdVar22 = *pdVar11->fields, pdVar22 != (debug_field)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                if (pdVar22->static_member == 0) {\n                  iVar23 = (*fns->struct_field)\n                                     (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                      (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n                }\n                else {\n                  iVar23 = (*fns->class_static_member)\n                                     (fhandle,pdVar22->name,(char *)pdVar22->u,pdVar22->visibility);\n                }\n                if (iVar23 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar22 = pdVar11->fields[uVar15];\n              } while (pdVar22 != (debug_field)0x0);\n            }\n            if ((pdVar11->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar24 = *pdVar11->baseclasses, pdVar24 != (debug_baseclass)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar24->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                bVar6 = (*fns->class_baseclass)\n                                  (fhandle,(ulong)pdVar24->bitpos,pdVar24->is_virtual,\n                                   pdVar24->visibility);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar24 = pdVar11->baseclasses[uVar15];\n              } while (pdVar24 != (debug_baseclass)0x0);\n            }\n            if ((pdVar11->methods != (debug_method *)0x0) &&\n               (local_48 = *pdVar11->methods, local_48 != (debug_method)0x0)) {\n              local_3c = 0;\n              do {\n                bVar6 = (*fns->class_start_method)(fhandle,local_48->name);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                uVar15 = 0;\n                pdVar5 = *local_48->variants;\n                while (pdVar5 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar5->context != (debug_type_s *)0x0) &&\n                     (bVar6 = debug_write_type(info,fns,fhandle,pdVar5->context,(debug_name *)0x0),\n                     bVar6 == 0)) {\n                    return 0;\n                  }\n                  bVar6 = debug_write_type(info,fns,fhandle,pdVar5->type,(debug_name *)0x0);\n                  if (bVar6 == 0) {\n                    return 0;\n                  }\n                  if (pdVar5->voffset == 0xffffffffffffffff) {\n                    iVar23 = (*fns->class_static_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep);\n                  }\n                  else {\n                    iVar23 = (*fns->class_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep,pdVar5->voffset,\n                                        (uint)(pdVar5->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar23 == 0) {\n                    return 0;\n                  }\n                  uVar15 = (ulong)((int)uVar15 + 1);\n                  pdVar5 = local_48->variants[uVar15];\n                }\n                bVar6 = (*fns->class_end_method)(fhandle);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = ((type->u).kclass)->methods[local_3c];\n              } while (local_48 != (debug_method)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->end_class_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_ENUM:\n          pdVar3 = (type->u).kenum;\n          pbVar14 = (bfd_signed_vma *)0x0;\n          ppcVar16 = (char **)0x0;\n          if (pdVar3 != (debug_enum_type *)0x0) {\n            pbVar14 = pdVar3->values;\n            ppcVar16 = pdVar3->names;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->enum_type)(fhandle,(char *)tag,ppcVar16,pbVar14);\n          return bVar6;\n        case DEBUG_KIND_POINTER:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->pointer_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_FUNCTION:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar8 = (type->u).kfunction;\n          if (pdVar8->arg_types == (debug_type_conflict *)0x0) {\n            uVar17 = 0xffffffff;\n          }\n          else {\n            pdVar10 = *pdVar8->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              uVar17 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar8 = (type->u).kfunction;\n                uVar17 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar8->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }\n          bVar6 = pdVar8->varargs;\n          UNRECOVERED_JUMPTABLE_01 =\n               (_func_bfd_boolean_void_ptr_uint_bfd_boolean *)fns->function_type;\nLAB_0012c31a:\n                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*UNRECOVERED_JUMPTABLE_01)(fhandle,uVar17,bVar6);\n          return bVar6;\n        case DEBUG_KIND_REFERENCE:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->reference_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_RANGE:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);\n          return bVar6;\n        case DEBUG_KIND_ARRAY:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)\n          ;\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar2 = (type->u).karray;\n                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->array_type)(fhandle,pdVar2->lower,pdVar2->upper,pdVar2->stringp);\n          return bVar6;\n        case DEBUG_KIND_SET:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          uVar17 = ((type->u).kclass)->mark;\n          UNRECOVERED_JUMPTABLE_00 = (_func_bfd_boolean_void_ptr_uint *)fns->set_type;\n          break;\n        case DEBUG_KIND_OFFSET:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)\n          ;\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->offset_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_METHOD:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar7 = (type->u).kmethod;\n          if (pdVar7->arg_types == (debug_type_conflict *)0x0) {\n            iVar23 = -1;\n          }\n          else {\n            pdVar10 = *pdVar7->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              iVar23 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar7 = (type->u).kmethod;\n                iVar23 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar7->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }\n          pdVar10 = pdVar7->domain_type;\n          if (pdVar10 != (debug_type_s *)0x0) {\n            bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar6 == 0) {\n              return 0;\n            }\n            pdVar7 = (type->u).kmethod;\n            pdVar10 = pdVar7->domain_type;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar23,\n                                      pdVar7->varargs);\n          return bVar6;\n        case DEBUG_KIND_CONST:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->const_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_VOLATILE:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->volatile_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_NAMED:\n          goto switchD_0012bc67_caseD_16;\n        case DEBUG_KIND_TAGGED:\nswitchD_0012bc67_caseD_17:\n          pdVar18 = (type->u).knamed;\n          name = pdVar18->name;\n          goto LAB_0012bc96;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n                    /* WARNING: Could not recover jumptable at 0x0012c2e8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        bVar6 = (*UNRECOVERED_JUMPTABLE_00)(fhandle,uVar17);\n        return bVar6;\n      }\n      name->mark = info->mark;\n      if (dVar13 != DEBUG_KIND_NAMED) {\n        if (dVar13 != 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          tag = (debug_type)name->name;\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }\nswitchD_0012bc67_caseD_16:\n      name = (debug_name *)0x0;\n    }\n    pdVar18 = (type->u).knamed;\n    pdVar1 = pdVar18->name;\n    if (pdVar1->mark == info->mark) {\n      if (dVar13 == DEBUG_KIND_NAMED) {\n                    /* WARNING: Could not recover jumptable at 0x0012c67f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        bVar6 = (*fns->typedef_type)(fhandle,pdVar1->name);\n        return bVar6;\n      }\nLAB_0012c43d:\n      pdVar10 = debug_get_real_type(info,type,(debug_type_real_list *)0x0);\n      if (pdVar10 != (debug_type_s *)0x0) {\n        dVar13 = pdVar10->kind;\n        tag = (debug_type)((type->u).knamed)->name->name;\n        if ((dVar13 - DEBUG_KIND_STRUCT < 4) && ((pdVar10->u).kclass != (debug_class_type *)0x0)) {\n          uVar17 = ((pdVar10->u).kclass)->id;\n          if (uVar17 <= info->base_id) {\n            bVar6 = debug_set_class_id(info,(char *)tag,pdVar10);\n            if (bVar6 == 0) {\n              return 0;\n            }\n            dVar13 = pdVar10->kind;\n            uVar17 = ((pdVar10->u).kclass)->id;\n            tag = ((type->u).kfunction)->return_type->pointer;\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        UNRECOVERED_JUMPTABLE = fns->tag_type;\n        goto LAB_0012c3c5;\n      }\n      goto LAB_0012bff3;\n    }\n    if (dVar13 != DEBUG_KIND_TAGGED) goto LAB_0012bc2b;\n    if (pdVar1 != name) goto LAB_0012c43d;\n    name->mark = info->mark;\nLAB_0012bc96:\n    type = pdVar18->type;\n  } while( true );" do (compound_statement "{\n    for (; dVar13 = type->kind, 1 < dVar13 - DEBUG_KIND_NAMED; type = ((type->u).karray)->range_type\n        ) {\nLAB_0012bc2b:\n      if (name == (debug_name *)0x0) {\n        tag = (debug_type)0x0;\nLAB_0012bc55:\n        switch(dVar13) {\n        case DEBUG_KIND_ILLEGAL:\n          uVar9 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar9);\n          return 0;\n        case DEBUG_KIND_INDIRECT:\n          goto switchD_0012bc67_caseD_1;\n        case DEBUG_KIND_VOID:\n          UNRECOVERED_JUMPTABLE_02 = fns->void_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_INT:\n          bVar6 = (type->u).kint;\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_01 = fns->int_type;\n          goto LAB_0012c31a;\n        case DEBUG_KIND_FLOAT:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->float_type;\n          break;\n        case DEBUG_KIND_COMPLEX:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->complex_type;\n          break;\n        case DEBUG_KIND_BOOL:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->bool_type;\n          break;\n        case DEBUG_KIND_STRUCT:\n        case DEBUG_KIND_UNION:\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 == (debug_class_type *)0x0) {\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            uVar17 = 0;\n          }\n          else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar12 = info->mark;\n              if (pdVar11->mark == uVar12) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                dVar13 = type->kind;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                bVar6 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)tag,uVar17,dVar13);\n                return bVar6;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar12 = info->mark;\n              if (uVar12 == pdVar11->mark) {\n                uVar17 = pdVar11->id;\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            pdVar11->mark = uVar12;\n            uVar17 = pdVar11->id;\n            dVar13 = type->kind;\n          }\n          bVar6 = (*p_Var20)(fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_STRUCT),uVar19);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          if ((((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar4 = ((type->u).kclass)->fields, ppdVar4 != (debug_field *)0x0)) &&\n             (pdVar22 = *ppdVar4, pdVar22 != (debug_field)0x0)) {\n            uVar15 = 0;\n            do {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              bVar6 = (*fns->struct_field)\n                                (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                 (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              uVar15 = (ulong)((int)uVar15 + 1);\n              pdVar22 = (debug_field)((type->u).kindirect)->slot[uVar15];\n            } while (pdVar22 != (debug_field)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->end_struct_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_CLASS:\n        case DEBUG_KIND_UNION_CLASS:\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 == (debug_class_type *)0x0) {\n            uVar19 = 0;\n            uVar17 = 0;\n            pdVar10 = (debug_type_s *)0x0;\n          }\n          else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar19 = info->mark;\n              if (uVar19 == pdVar11->mark) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar19 = info->mark;\n              uVar17 = pdVar11->id;\n              if (uVar19 == pdVar11->mark) {\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                dVar13 = type->kind;\n                goto LAB_0012c3b8;\n              }\n            }\n            pdVar11->mark = uVar19;\n            pdVar10 = pdVar11->vptrbase;\n            if ((type == pdVar10) || (pdVar10 == (debug_type_s *)0x0)) {\n              uVar19 = (uint)(pdVar10 != (debug_type_s *)0x0);\n              dVar13 = type->kind;\n            }\n            else {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              dVar13 = type->kind;\n              uVar19 = 1;\n            }\n          }\n          bVar6 = (*fns->start_class_type)\n                            (fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_CLASS),\n                             type->size,uVar19,(uint)(type == pdVar10));\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 != (debug_class_type *)0x0) {\n            if ((pdVar11->fields != (debug_field *)0x0) &&\n               (pdVar22 = *pdVar11->fields, pdVar22 != (debug_field)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                if (pdVar22->static_member == 0) {\n                  iVar23 = (*fns->struct_field)\n                                     (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                      (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n                }\n                else {\n                  iVar23 = (*fns->class_static_member)\n                                     (fhandle,pdVar22->name,(char *)pdVar22->u,pdVar22->visibility);\n                }\n                if (iVar23 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar22 = pdVar11->fields[uVar15];\n              } while (pdVar22 != (debug_field)0x0);\n            }\n            if ((pdVar11->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar24 = *pdVar11->baseclasses, pdVar24 != (debug_baseclass)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar24->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                bVar6 = (*fns->class_baseclass)\n                                  (fhandle,(ulong)pdVar24->bitpos,pdVar24->is_virtual,\n                                   pdVar24->visibility);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar24 = pdVar11->baseclasses[uVar15];\n              } while (pdVar24 != (debug_baseclass)0x0);\n            }\n            if ((pdVar11->methods != (debug_method *)0x0) &&\n               (local_48 = *pdVar11->methods, local_48 != (debug_method)0x0)) {\n              local_3c = 0;\n              do {\n                bVar6 = (*fns->class_start_method)(fhandle,local_48->name);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                uVar15 = 0;\n                pdVar5 = *local_48->variants;\n                while (pdVar5 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar5->context != (debug_type_s *)0x0) &&\n                     (bVar6 = debug_write_type(info,fns,fhandle,pdVar5->context,(debug_name *)0x0),\n                     bVar6 == 0)) {\n                    return 0;\n                  }\n                  bVar6 = debug_write_type(info,fns,fhandle,pdVar5->type,(debug_name *)0x0);\n                  if (bVar6 == 0) {\n                    return 0;\n                  }\n                  if (pdVar5->voffset == 0xffffffffffffffff) {\n                    iVar23 = (*fns->class_static_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep);\n                  }\n                  else {\n                    iVar23 = (*fns->class_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep,pdVar5->voffset,\n                                        (uint)(pdVar5->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar23 == 0) {\n                    return 0;\n                  }\n                  uVar15 = (ulong)((int)uVar15 + 1);\n                  pdVar5 = local_48->variants[uVar15];\n                }\n                bVar6 = (*fns->class_end_method)(fhandle);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = ((type->u).kclass)->methods[local_3c];\n              } while (local_48 != (debug_method)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->end_class_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_ENUM:\n          pdVar3 = (type->u).kenum;\n          pbVar14 = (bfd_signed_vma *)0x0;\n          ppcVar16 = (char **)0x0;\n          if (pdVar3 != (debug_enum_type *)0x0) {\n            pbVar14 = pdVar3->values;\n            ppcVar16 = pdVar3->names;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->enum_type)(fhandle,(char *)tag,ppcVar16,pbVar14);\n          return bVar6;\n        case DEBUG_KIND_POINTER:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->pointer_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_FUNCTION:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar8 = (type->u).kfunction;\n          if (pdVar8->arg_types == (debug_type_conflict *)0x0) {\n            uVar17 = 0xffffffff;\n          }\n          else {\n            pdVar10 = *pdVar8->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              uVar17 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar8 = (type->u).kfunction;\n                uVar17 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar8->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }\n          bVar6 = pdVar8->varargs;\n          UNRECOVERED_JUMPTABLE_01 =\n               (_func_bfd_boolean_void_ptr_uint_bfd_boolean *)fns->function_type;\nLAB_0012c31a:\n                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*UNRECOVERED_JUMPTABLE_01)(fhandle,uVar17,bVar6);\n          return bVar6;\n        case DEBUG_KIND_REFERENCE:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->reference_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_RANGE:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);\n          return bVar6;\n        case DEBUG_KIND_ARRAY:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)\n          ;\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar2 = (type->u).karray;\n                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->array_type)(fhandle,pdVar2->lower,pdVar2->upper,pdVar2->stringp);\n          return bVar6;\n        case DEBUG_KIND_SET:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          uVar17 = ((type->u).kclass)->mark;\n          UNRECOVERED_JUMPTABLE_00 = (_func_bfd_boolean_void_ptr_uint *)fns->set_type;\n          break;\n        case DEBUG_KIND_OFFSET:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)\n          ;\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->offset_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_METHOD:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar7 = (type->u).kmethod;\n          if (pdVar7->arg_types == (debug_type_conflict *)0x0) {\n            iVar23 = -1;\n          }\n          else {\n            pdVar10 = *pdVar7->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              iVar23 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar7 = (type->u).kmethod;\n                iVar23 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar7->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }\n          pdVar10 = pdVar7->domain_type;\n          if (pdVar10 != (debug_type_s *)0x0) {\n            bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar6 == 0) {\n              return 0;\n            }\n            pdVar7 = (type->u).kmethod;\n            pdVar10 = pdVar7->domain_type;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar23,\n                                      pdVar7->varargs);\n          return bVar6;\n        case DEBUG_KIND_CONST:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->const_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_VOLATILE:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->volatile_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_NAMED:\n          goto switchD_0012bc67_caseD_16;\n        case DEBUG_KIND_TAGGED:\nswitchD_0012bc67_caseD_17:\n          pdVar18 = (type->u).knamed;\n          name = pdVar18->name;\n          goto LAB_0012bc96;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n                    /* WARNING: Could not recover jumptable at 0x0012c2e8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        bVar6 = (*UNRECOVERED_JUMPTABLE_00)(fhandle,uVar17);\n        return bVar6;\n      }\n      name->mark = info->mark;\n      if (dVar13 != DEBUG_KIND_NAMED) {\n        if (dVar13 != 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          tag = (debug_type)name->name;\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }\nswitchD_0012bc67_caseD_16:\n      name = (debug_name *)0x0;\n    }\n    pdVar18 = (type->u).knamed;\n    pdVar1 = pdVar18->name;\n    if (pdVar1->mark == info->mark) {\n      if (dVar13 == DEBUG_KIND_NAMED) {\n                    /* WARNING: Could not recover jumptable at 0x0012c67f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        bVar6 = (*fns->typedef_type)(fhandle,pdVar1->name);\n        return bVar6;\n      }\nLAB_0012c43d:\n      pdVar10 = debug_get_real_type(info,type,(debug_type_real_list *)0x0);\n      if (pdVar10 != (debug_type_s *)0x0) {\n        dVar13 = pdVar10->kind;\n        tag = (debug_type)((type->u).knamed)->name->name;\n        if ((dVar13 - DEBUG_KIND_STRUCT < 4) && ((pdVar10->u).kclass != (debug_class_type *)0x0)) {\n          uVar17 = ((pdVar10->u).kclass)->id;\n          if (uVar17 <= info->base_id) {\n            bVar6 = debug_set_class_id(info,(char *)tag,pdVar10);\n            if (bVar6 == 0) {\n              return 0;\n            }\n            dVar13 = pdVar10->kind;\n            uVar17 = ((pdVar10->u).kclass)->id;\n            tag = ((type->u).kfunction)->return_type->pointer;\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        UNRECOVERED_JUMPTABLE = fns->tag_type;\n        goto LAB_0012c3c5;\n      }\n      goto LAB_0012bff3;\n    }\n    if (dVar13 != DEBUG_KIND_TAGGED) goto LAB_0012bc2b;\n    if (pdVar1 != name) goto LAB_0012c43d;\n    name->mark = info->mark;\nLAB_0012bc96:\n    type = pdVar18->type;\n  }" { (for_statement "for (; dVar13 = type->kind, 1 < dVar13 - DEBUG_KIND_NAMED; type = ((type->u).karray)->range_type\n        ) {\nLAB_0012bc2b:\n      if (name == (debug_name *)0x0) {\n        tag = (debug_type)0x0;\nLAB_0012bc55:\n        switch(dVar13) {\n        case DEBUG_KIND_ILLEGAL:\n          uVar9 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar9);\n          return 0;\n        case DEBUG_KIND_INDIRECT:\n          goto switchD_0012bc67_caseD_1;\n        case DEBUG_KIND_VOID:\n          UNRECOVERED_JUMPTABLE_02 = fns->void_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_INT:\n          bVar6 = (type->u).kint;\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_01 = fns->int_type;\n          goto LAB_0012c31a;\n        case DEBUG_KIND_FLOAT:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->float_type;\n          break;\n        case DEBUG_KIND_COMPLEX:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->complex_type;\n          break;\n        case DEBUG_KIND_BOOL:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->bool_type;\n          break;\n        case DEBUG_KIND_STRUCT:\n        case DEBUG_KIND_UNION:\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 == (debug_class_type *)0x0) {\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            uVar17 = 0;\n          }\n          else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar12 = info->mark;\n              if (pdVar11->mark == uVar12) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                dVar13 = type->kind;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                bVar6 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)tag,uVar17,dVar13);\n                return bVar6;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar12 = info->mark;\n              if (uVar12 == pdVar11->mark) {\n                uVar17 = pdVar11->id;\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            pdVar11->mark = uVar12;\n            uVar17 = pdVar11->id;\n            dVar13 = type->kind;\n          }\n          bVar6 = (*p_Var20)(fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_STRUCT),uVar19);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          if ((((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar4 = ((type->u).kclass)->fields, ppdVar4 != (debug_field *)0x0)) &&\n             (pdVar22 = *ppdVar4, pdVar22 != (debug_field)0x0)) {\n            uVar15 = 0;\n            do {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              bVar6 = (*fns->struct_field)\n                                (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                 (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              uVar15 = (ulong)((int)uVar15 + 1);\n              pdVar22 = (debug_field)((type->u).kindirect)->slot[uVar15];\n            } while (pdVar22 != (debug_field)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->end_struct_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_CLASS:\n        case DEBUG_KIND_UNION_CLASS:\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 == (debug_class_type *)0x0) {\n            uVar19 = 0;\n            uVar17 = 0;\n            pdVar10 = (debug_type_s *)0x0;\n          }\n          else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar19 = info->mark;\n              if (uVar19 == pdVar11->mark) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar19 = info->mark;\n              uVar17 = pdVar11->id;\n              if (uVar19 == pdVar11->mark) {\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                dVar13 = type->kind;\n                goto LAB_0012c3b8;\n              }\n            }\n            pdVar11->mark = uVar19;\n            pdVar10 = pdVar11->vptrbase;\n            if ((type == pdVar10) || (pdVar10 == (debug_type_s *)0x0)) {\n              uVar19 = (uint)(pdVar10 != (debug_type_s *)0x0);\n              dVar13 = type->kind;\n            }\n            else {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              dVar13 = type->kind;\n              uVar19 = 1;\n            }\n          }\n          bVar6 = (*fns->start_class_type)\n                            (fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_CLASS),\n                             type->size,uVar19,(uint)(type == pdVar10));\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 != (debug_class_type *)0x0) {\n            if ((pdVar11->fields != (debug_field *)0x0) &&\n               (pdVar22 = *pdVar11->fields, pdVar22 != (debug_field)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                if (pdVar22->static_member == 0) {\n                  iVar23 = (*fns->struct_field)\n                                     (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                      (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n                }\n                else {\n                  iVar23 = (*fns->class_static_member)\n                                     (fhandle,pdVar22->name,(char *)pdVar22->u,pdVar22->visibility);\n                }\n                if (iVar23 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar22 = pdVar11->fields[uVar15];\n              } while (pdVar22 != (debug_field)0x0);\n            }\n            if ((pdVar11->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar24 = *pdVar11->baseclasses, pdVar24 != (debug_baseclass)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar24->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                bVar6 = (*fns->class_baseclass)\n                                  (fhandle,(ulong)pdVar24->bitpos,pdVar24->is_virtual,\n                                   pdVar24->visibility);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar24 = pdVar11->baseclasses[uVar15];\n              } while (pdVar24 != (debug_baseclass)0x0);\n            }\n            if ((pdVar11->methods != (debug_method *)0x0) &&\n               (local_48 = *pdVar11->methods, local_48 != (debug_method)0x0)) {\n              local_3c = 0;\n              do {\n                bVar6 = (*fns->class_start_method)(fhandle,local_48->name);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                uVar15 = 0;\n                pdVar5 = *local_48->variants;\n                while (pdVar5 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar5->context != (debug_type_s *)0x0) &&\n                     (bVar6 = debug_write_type(info,fns,fhandle,pdVar5->context,(debug_name *)0x0),\n                     bVar6 == 0)) {\n                    return 0;\n                  }\n                  bVar6 = debug_write_type(info,fns,fhandle,pdVar5->type,(debug_name *)0x0);\n                  if (bVar6 == 0) {\n                    return 0;\n                  }\n                  if (pdVar5->voffset == 0xffffffffffffffff) {\n                    iVar23 = (*fns->class_static_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep);\n                  }\n                  else {\n                    iVar23 = (*fns->class_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep,pdVar5->voffset,\n                                        (uint)(pdVar5->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar23 == 0) {\n                    return 0;\n                  }\n                  uVar15 = (ulong)((int)uVar15 + 1);\n                  pdVar5 = local_48->variants[uVar15];\n                }\n                bVar6 = (*fns->class_end_method)(fhandle);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = ((type->u).kclass)->methods[local_3c];\n              } while (local_48 != (debug_method)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->end_class_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_ENUM:\n          pdVar3 = (type->u).kenum;\n          pbVar14 = (bfd_signed_vma *)0x0;\n          ppcVar16 = (char **)0x0;\n          if (pdVar3 != (debug_enum_type *)0x0) {\n            pbVar14 = pdVar3->values;\n            ppcVar16 = pdVar3->names;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->enum_type)(fhandle,(char *)tag,ppcVar16,pbVar14);\n          return bVar6;\n        case DEBUG_KIND_POINTER:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->pointer_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_FUNCTION:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar8 = (type->u).kfunction;\n          if (pdVar8->arg_types == (debug_type_conflict *)0x0) {\n            uVar17 = 0xffffffff;\n          }\n          else {\n            pdVar10 = *pdVar8->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              uVar17 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar8 = (type->u).kfunction;\n                uVar17 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar8->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }\n          bVar6 = pdVar8->varargs;\n          UNRECOVERED_JUMPTABLE_01 =\n               (_func_bfd_boolean_void_ptr_uint_bfd_boolean *)fns->function_type;\nLAB_0012c31a:\n                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*UNRECOVERED_JUMPTABLE_01)(fhandle,uVar17,bVar6);\n          return bVar6;\n        case DEBUG_KIND_REFERENCE:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->reference_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_RANGE:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);\n          return bVar6;\n        case DEBUG_KIND_ARRAY:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)\n          ;\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar2 = (type->u).karray;\n                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->array_type)(fhandle,pdVar2->lower,pdVar2->upper,pdVar2->stringp);\n          return bVar6;\n        case DEBUG_KIND_SET:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          uVar17 = ((type->u).kclass)->mark;\n          UNRECOVERED_JUMPTABLE_00 = (_func_bfd_boolean_void_ptr_uint *)fns->set_type;\n          break;\n        case DEBUG_KIND_OFFSET:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)\n          ;\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->offset_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_METHOD:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar7 = (type->u).kmethod;\n          if (pdVar7->arg_types == (debug_type_conflict *)0x0) {\n            iVar23 = -1;\n          }\n          else {\n            pdVar10 = *pdVar7->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              iVar23 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar7 = (type->u).kmethod;\n                iVar23 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar7->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }\n          pdVar10 = pdVar7->domain_type;\n          if (pdVar10 != (debug_type_s *)0x0) {\n            bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar6 == 0) {\n              return 0;\n            }\n            pdVar7 = (type->u).kmethod;\n            pdVar10 = pdVar7->domain_type;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar23,\n                                      pdVar7->varargs);\n          return bVar6;\n        case DEBUG_KIND_CONST:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->const_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_VOLATILE:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->volatile_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_NAMED:\n          goto switchD_0012bc67_caseD_16;\n        case DEBUG_KIND_TAGGED:\nswitchD_0012bc67_caseD_17:\n          pdVar18 = (type->u).knamed;\n          name = pdVar18->name;\n          goto LAB_0012bc96;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n                    /* WARNING: Could not recover jumptable at 0x0012c2e8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        bVar6 = (*UNRECOVERED_JUMPTABLE_00)(fhandle,uVar17);\n        return bVar6;\n      }\n      name->mark = info->mark;\n      if (dVar13 != DEBUG_KIND_NAMED) {\n        if (dVar13 != 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          tag = (debug_type)name->name;\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }\nswitchD_0012bc67_caseD_16:\n      name = (debug_name *)0x0;\n    }" for ( ; (comma_expression "dVar13 = type->kind, 1 < dVar13 - DEBUG_KIND_NAMED" (assignment_expression "dVar13 = type->kind" identifier = (field_expression "type->kind" identifier -> field_identifier)) , (binary_expression "1 < dVar13 - DEBUG_KIND_NAMED" number_literal < (binary_expression "dVar13 - 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_0012bc2b:\n      if (name == (debug_name *)0x0) {\n        tag = (debug_type)0x0;\nLAB_0012bc55:\n        switch(dVar13) {\n        case DEBUG_KIND_ILLEGAL:\n          uVar9 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar9);\n          return 0;\n        case DEBUG_KIND_INDIRECT:\n          goto switchD_0012bc67_caseD_1;\n        case DEBUG_KIND_VOID:\n          UNRECOVERED_JUMPTABLE_02 = fns->void_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_INT:\n          bVar6 = (type->u).kint;\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_01 = fns->int_type;\n          goto LAB_0012c31a;\n        case DEBUG_KIND_FLOAT:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->float_type;\n          break;\n        case DEBUG_KIND_COMPLEX:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->complex_type;\n          break;\n        case DEBUG_KIND_BOOL:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->bool_type;\n          break;\n        case DEBUG_KIND_STRUCT:\n        case DEBUG_KIND_UNION:\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 == (debug_class_type *)0x0) {\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            uVar17 = 0;\n          }\n          else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar12 = info->mark;\n              if (pdVar11->mark == uVar12) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                dVar13 = type->kind;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                bVar6 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)tag,uVar17,dVar13);\n                return bVar6;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar12 = info->mark;\n              if (uVar12 == pdVar11->mark) {\n                uVar17 = pdVar11->id;\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            pdVar11->mark = uVar12;\n            uVar17 = pdVar11->id;\n            dVar13 = type->kind;\n          }\n          bVar6 = (*p_Var20)(fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_STRUCT),uVar19);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          if ((((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar4 = ((type->u).kclass)->fields, ppdVar4 != (debug_field *)0x0)) &&\n             (pdVar22 = *ppdVar4, pdVar22 != (debug_field)0x0)) {\n            uVar15 = 0;\n            do {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              bVar6 = (*fns->struct_field)\n                                (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                 (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              uVar15 = (ulong)((int)uVar15 + 1);\n              pdVar22 = (debug_field)((type->u).kindirect)->slot[uVar15];\n            } while (pdVar22 != (debug_field)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->end_struct_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_CLASS:\n        case DEBUG_KIND_UNION_CLASS:\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 == (debug_class_type *)0x0) {\n            uVar19 = 0;\n            uVar17 = 0;\n            pdVar10 = (debug_type_s *)0x0;\n          }\n          else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar19 = info->mark;\n              if (uVar19 == pdVar11->mark) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar19 = info->mark;\n              uVar17 = pdVar11->id;\n              if (uVar19 == pdVar11->mark) {\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                dVar13 = type->kind;\n                goto LAB_0012c3b8;\n              }\n            }\n            pdVar11->mark = uVar19;\n            pdVar10 = pdVar11->vptrbase;\n            if ((type == pdVar10) || (pdVar10 == (debug_type_s *)0x0)) {\n              uVar19 = (uint)(pdVar10 != (debug_type_s *)0x0);\n              dVar13 = type->kind;\n            }\n            else {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              dVar13 = type->kind;\n              uVar19 = 1;\n            }\n          }\n          bVar6 = (*fns->start_class_type)\n                            (fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_CLASS),\n                             type->size,uVar19,(uint)(type == pdVar10));\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 != (debug_class_type *)0x0) {\n            if ((pdVar11->fields != (debug_field *)0x0) &&\n               (pdVar22 = *pdVar11->fields, pdVar22 != (debug_field)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                if (pdVar22->static_member == 0) {\n                  iVar23 = (*fns->struct_field)\n                                     (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                      (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n                }\n                else {\n                  iVar23 = (*fns->class_static_member)\n                                     (fhandle,pdVar22->name,(char *)pdVar22->u,pdVar22->visibility);\n                }\n                if (iVar23 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar22 = pdVar11->fields[uVar15];\n              } while (pdVar22 != (debug_field)0x0);\n            }\n            if ((pdVar11->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar24 = *pdVar11->baseclasses, pdVar24 != (debug_baseclass)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar24->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                bVar6 = (*fns->class_baseclass)\n                                  (fhandle,(ulong)pdVar24->bitpos,pdVar24->is_virtual,\n                                   pdVar24->visibility);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar24 = pdVar11->baseclasses[uVar15];\n              } while (pdVar24 != (debug_baseclass)0x0);\n            }\n            if ((pdVar11->methods != (debug_method *)0x0) &&\n               (local_48 = *pdVar11->methods, local_48 != (debug_method)0x0)) {\n              local_3c = 0;\n              do {\n                bVar6 = (*fns->class_start_method)(fhandle,local_48->name);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                uVar15 = 0;\n                pdVar5 = *local_48->variants;\n                while (pdVar5 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar5->context != (debug_type_s *)0x0) &&\n                     (bVar6 = debug_write_type(info,fns,fhandle,pdVar5->context,(debug_name *)0x0),\n                     bVar6 == 0)) {\n                    return 0;\n                  }\n                  bVar6 = debug_write_type(info,fns,fhandle,pdVar5->type,(debug_name *)0x0);\n                  if (bVar6 == 0) {\n                    return 0;\n                  }\n                  if (pdVar5->voffset == 0xffffffffffffffff) {\n                    iVar23 = (*fns->class_static_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep);\n                  }\n                  else {\n                    iVar23 = (*fns->class_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep,pdVar5->voffset,\n                                        (uint)(pdVar5->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar23 == 0) {\n                    return 0;\n                  }\n                  uVar15 = (ulong)((int)uVar15 + 1);\n                  pdVar5 = local_48->variants[uVar15];\n                }\n                bVar6 = (*fns->class_end_method)(fhandle);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = ((type->u).kclass)->methods[local_3c];\n              } while (local_48 != (debug_method)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->end_class_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_ENUM:\n          pdVar3 = (type->u).kenum;\n          pbVar14 = (bfd_signed_vma *)0x0;\n          ppcVar16 = (char **)0x0;\n          if (pdVar3 != (debug_enum_type *)0x0) {\n            pbVar14 = pdVar3->values;\n            ppcVar16 = pdVar3->names;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->enum_type)(fhandle,(char *)tag,ppcVar16,pbVar14);\n          return bVar6;\n        case DEBUG_KIND_POINTER:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->pointer_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_FUNCTION:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar8 = (type->u).kfunction;\n          if (pdVar8->arg_types == (debug_type_conflict *)0x0) {\n            uVar17 = 0xffffffff;\n          }\n          else {\n            pdVar10 = *pdVar8->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              uVar17 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar8 = (type->u).kfunction;\n                uVar17 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar8->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }\n          bVar6 = pdVar8->varargs;\n          UNRECOVERED_JUMPTABLE_01 =\n               (_func_bfd_boolean_void_ptr_uint_bfd_boolean *)fns->function_type;\nLAB_0012c31a:\n                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*UNRECOVERED_JUMPTABLE_01)(fhandle,uVar17,bVar6);\n          return bVar6;\n        case DEBUG_KIND_REFERENCE:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->reference_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_RANGE:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);\n          return bVar6;\n        case DEBUG_KIND_ARRAY:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)\n          ;\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar2 = (type->u).karray;\n                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->array_type)(fhandle,pdVar2->lower,pdVar2->upper,pdVar2->stringp);\n          return bVar6;\n        case DEBUG_KIND_SET:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          uVar17 = ((type->u).kclass)->mark;\n          UNRECOVERED_JUMPTABLE_00 = (_func_bfd_boolean_void_ptr_uint *)fns->set_type;\n          break;\n        case DEBUG_KIND_OFFSET:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)\n          ;\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->offset_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_METHOD:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar7 = (type->u).kmethod;\n          if (pdVar7->arg_types == (debug_type_conflict *)0x0) {\n            iVar23 = -1;\n          }\n          else {\n            pdVar10 = *pdVar7->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              iVar23 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar7 = (type->u).kmethod;\n                iVar23 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar7->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }\n          pdVar10 = pdVar7->domain_type;\n          if (pdVar10 != (debug_type_s *)0x0) {\n            bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar6 == 0) {\n              return 0;\n            }\n            pdVar7 = (type->u).kmethod;\n            pdVar10 = pdVar7->domain_type;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar23,\n                                      pdVar7->varargs);\n          return bVar6;\n        case DEBUG_KIND_CONST:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->const_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_VOLATILE:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->volatile_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_NAMED:\n          goto switchD_0012bc67_caseD_16;\n        case DEBUG_KIND_TAGGED:\nswitchD_0012bc67_caseD_17:\n          pdVar18 = (type->u).knamed;\n          name = pdVar18->name;\n          goto LAB_0012bc96;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n                    /* WARNING: Could not recover jumptable at 0x0012c2e8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        bVar6 = (*UNRECOVERED_JUMPTABLE_00)(fhandle,uVar17);\n        return bVar6;\n      }\n      name->mark = info->mark;\n      if (dVar13 != DEBUG_KIND_NAMED) {\n        if (dVar13 != 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          tag = (debug_type)name->name;\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }\nswitchD_0012bc67_caseD_16:\n      name = (debug_name *)0x0;\n    }" { (labeled_statement "LAB_0012bc2b:\n      if (name == (debug_name *)0x0) {\n        tag = (debug_type)0x0;\nLAB_0012bc55:\n        switch(dVar13) {\n        case DEBUG_KIND_ILLEGAL:\n          uVar9 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar9);\n          return 0;\n        case DEBUG_KIND_INDIRECT:\n          goto switchD_0012bc67_caseD_1;\n        case DEBUG_KIND_VOID:\n          UNRECOVERED_JUMPTABLE_02 = fns->void_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_INT:\n          bVar6 = (type->u).kint;\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_01 = fns->int_type;\n          goto LAB_0012c31a;\n        case DEBUG_KIND_FLOAT:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->float_type;\n          break;\n        case DEBUG_KIND_COMPLEX:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->complex_type;\n          break;\n        case DEBUG_KIND_BOOL:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->bool_type;\n          break;\n        case DEBUG_KIND_STRUCT:\n        case DEBUG_KIND_UNION:\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 == (debug_class_type *)0x0) {\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            uVar17 = 0;\n          }\n          else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar12 = info->mark;\n              if (pdVar11->mark == uVar12) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                dVar13 = type->kind;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                bVar6 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)tag,uVar17,dVar13);\n                return bVar6;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar12 = info->mark;\n              if (uVar12 == pdVar11->mark) {\n                uVar17 = pdVar11->id;\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            pdVar11->mark = uVar12;\n            uVar17 = pdVar11->id;\n            dVar13 = type->kind;\n          }\n          bVar6 = (*p_Var20)(fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_STRUCT),uVar19);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          if ((((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar4 = ((type->u).kclass)->fields, ppdVar4 != (debug_field *)0x0)) &&\n             (pdVar22 = *ppdVar4, pdVar22 != (debug_field)0x0)) {\n            uVar15 = 0;\n            do {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              bVar6 = (*fns->struct_field)\n                                (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                 (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              uVar15 = (ulong)((int)uVar15 + 1);\n              pdVar22 = (debug_field)((type->u).kindirect)->slot[uVar15];\n            } while (pdVar22 != (debug_field)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->end_struct_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_CLASS:\n        case DEBUG_KIND_UNION_CLASS:\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 == (debug_class_type *)0x0) {\n            uVar19 = 0;\n            uVar17 = 0;\n            pdVar10 = (debug_type_s *)0x0;\n          }\n          else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar19 = info->mark;\n              if (uVar19 == pdVar11->mark) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar19 = info->mark;\n              uVar17 = pdVar11->id;\n              if (uVar19 == pdVar11->mark) {\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                dVar13 = type->kind;\n                goto LAB_0012c3b8;\n              }\n            }\n            pdVar11->mark = uVar19;\n            pdVar10 = pdVar11->vptrbase;\n            if ((type == pdVar10) || (pdVar10 == (debug_type_s *)0x0)) {\n              uVar19 = (uint)(pdVar10 != (debug_type_s *)0x0);\n              dVar13 = type->kind;\n            }\n            else {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              dVar13 = type->kind;\n              uVar19 = 1;\n            }\n          }\n          bVar6 = (*fns->start_class_type)\n                            (fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_CLASS),\n                             type->size,uVar19,(uint)(type == pdVar10));\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 != (debug_class_type *)0x0) {\n            if ((pdVar11->fields != (debug_field *)0x0) &&\n               (pdVar22 = *pdVar11->fields, pdVar22 != (debug_field)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                if (pdVar22->static_member == 0) {\n                  iVar23 = (*fns->struct_field)\n                                     (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                      (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n                }\n                else {\n                  iVar23 = (*fns->class_static_member)\n                                     (fhandle,pdVar22->name,(char *)pdVar22->u,pdVar22->visibility);\n                }\n                if (iVar23 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar22 = pdVar11->fields[uVar15];\n              } while (pdVar22 != (debug_field)0x0);\n            }\n            if ((pdVar11->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar24 = *pdVar11->baseclasses, pdVar24 != (debug_baseclass)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar24->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                bVar6 = (*fns->class_baseclass)\n                                  (fhandle,(ulong)pdVar24->bitpos,pdVar24->is_virtual,\n                                   pdVar24->visibility);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar24 = pdVar11->baseclasses[uVar15];\n              } while (pdVar24 != (debug_baseclass)0x0);\n            }\n            if ((pdVar11->methods != (debug_method *)0x0) &&\n               (local_48 = *pdVar11->methods, local_48 != (debug_method)0x0)) {\n              local_3c = 0;\n              do {\n                bVar6 = (*fns->class_start_method)(fhandle,local_48->name);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                uVar15 = 0;\n                pdVar5 = *local_48->variants;\n                while (pdVar5 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar5->context != (debug_type_s *)0x0) &&\n                     (bVar6 = debug_write_type(info,fns,fhandle,pdVar5->context,(debug_name *)0x0),\n                     bVar6 == 0)) {\n                    return 0;\n                  }\n                  bVar6 = debug_write_type(info,fns,fhandle,pdVar5->type,(debug_name *)0x0);\n                  if (bVar6 == 0) {\n                    return 0;\n                  }\n                  if (pdVar5->voffset == 0xffffffffffffffff) {\n                    iVar23 = (*fns->class_static_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep);\n                  }\n                  else {\n                    iVar23 = (*fns->class_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep,pdVar5->voffset,\n                                        (uint)(pdVar5->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar23 == 0) {\n                    return 0;\n                  }\n                  uVar15 = (ulong)((int)uVar15 + 1);\n                  pdVar5 = local_48->variants[uVar15];\n                }\n                bVar6 = (*fns->class_end_method)(fhandle);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = ((type->u).kclass)->methods[local_3c];\n              } while (local_48 != (debug_method)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->end_class_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_ENUM:\n          pdVar3 = (type->u).kenum;\n          pbVar14 = (bfd_signed_vma *)0x0;\n          ppcVar16 = (char **)0x0;\n          if (pdVar3 != (debug_enum_type *)0x0) {\n            pbVar14 = pdVar3->values;\n            ppcVar16 = pdVar3->names;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->enum_type)(fhandle,(char *)tag,ppcVar16,pbVar14);\n          return bVar6;\n        case DEBUG_KIND_POINTER:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->pointer_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_FUNCTION:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar8 = (type->u).kfunction;\n          if (pdVar8->arg_types == (debug_type_conflict *)0x0) {\n            uVar17 = 0xffffffff;\n          }\n          else {\n            pdVar10 = *pdVar8->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              uVar17 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar8 = (type->u).kfunction;\n                uVar17 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar8->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }\n          bVar6 = pdVar8->varargs;\n          UNRECOVERED_JUMPTABLE_01 =\n               (_func_bfd_boolean_void_ptr_uint_bfd_boolean *)fns->function_type;\nLAB_0012c31a:\n                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*UNRECOVERED_JUMPTABLE_01)(fhandle,uVar17,bVar6);\n          return bVar6;\n        case DEBUG_KIND_REFERENCE:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->reference_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_RANGE:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);\n          return bVar6;\n        case DEBUG_KIND_ARRAY:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)\n          ;\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar2 = (type->u).karray;\n                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->array_type)(fhandle,pdVar2->lower,pdVar2->upper,pdVar2->stringp);\n          return bVar6;\n        case DEBUG_KIND_SET:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          uVar17 = ((type->u).kclass)->mark;\n          UNRECOVERED_JUMPTABLE_00 = (_func_bfd_boolean_void_ptr_uint *)fns->set_type;\n          break;\n        case DEBUG_KIND_OFFSET:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)\n          ;\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->offset_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_METHOD:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar7 = (type->u).kmethod;\n          if (pdVar7->arg_types == (debug_type_conflict *)0x0) {\n            iVar23 = -1;\n          }\n          else {\n            pdVar10 = *pdVar7->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              iVar23 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar7 = (type->u).kmethod;\n                iVar23 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar7->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }\n          pdVar10 = pdVar7->domain_type;\n          if (pdVar10 != (debug_type_s *)0x0) {\n            bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar6 == 0) {\n              return 0;\n            }\n            pdVar7 = (type->u).kmethod;\n            pdVar10 = pdVar7->domain_type;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar23,\n                                      pdVar7->varargs);\n          return bVar6;\n        case DEBUG_KIND_CONST:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->const_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_VOLATILE:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->volatile_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_NAMED:\n          goto switchD_0012bc67_caseD_16;\n        case DEBUG_KIND_TAGGED:\nswitchD_0012bc67_caseD_17:\n          pdVar18 = (type->u).knamed;\n          name = pdVar18->name;\n          goto LAB_0012bc96;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n                    /* WARNING: Could not recover jumptable at 0x0012c2e8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        bVar6 = (*UNRECOVERED_JUMPTABLE_00)(fhandle,uVar17);\n        return bVar6;\n      }" statement_identifier : (if_statement "if (name == (debug_name *)0x0) {\n        tag = (debug_type)0x0;\nLAB_0012bc55:\n        switch(dVar13) {\n        case DEBUG_KIND_ILLEGAL:\n          uVar9 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar9);\n          return 0;\n        case DEBUG_KIND_INDIRECT:\n          goto switchD_0012bc67_caseD_1;\n        case DEBUG_KIND_VOID:\n          UNRECOVERED_JUMPTABLE_02 = fns->void_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_INT:\n          bVar6 = (type->u).kint;\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_01 = fns->int_type;\n          goto LAB_0012c31a;\n        case DEBUG_KIND_FLOAT:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->float_type;\n          break;\n        case DEBUG_KIND_COMPLEX:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->complex_type;\n          break;\n        case DEBUG_KIND_BOOL:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->bool_type;\n          break;\n        case DEBUG_KIND_STRUCT:\n        case DEBUG_KIND_UNION:\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 == (debug_class_type *)0x0) {\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            uVar17 = 0;\n          }\n          else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar12 = info->mark;\n              if (pdVar11->mark == uVar12) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                dVar13 = type->kind;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                bVar6 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)tag,uVar17,dVar13);\n                return bVar6;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar12 = info->mark;\n              if (uVar12 == pdVar11->mark) {\n                uVar17 = pdVar11->id;\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            pdVar11->mark = uVar12;\n            uVar17 = pdVar11->id;\n            dVar13 = type->kind;\n          }\n          bVar6 = (*p_Var20)(fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_STRUCT),uVar19);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          if ((((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar4 = ((type->u).kclass)->fields, ppdVar4 != (debug_field *)0x0)) &&\n             (pdVar22 = *ppdVar4, pdVar22 != (debug_field)0x0)) {\n            uVar15 = 0;\n            do {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              bVar6 = (*fns->struct_field)\n                                (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                 (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              uVar15 = (ulong)((int)uVar15 + 1);\n              pdVar22 = (debug_field)((type->u).kindirect)->slot[uVar15];\n            } while (pdVar22 != (debug_field)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->end_struct_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_CLASS:\n        case DEBUG_KIND_UNION_CLASS:\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 == (debug_class_type *)0x0) {\n            uVar19 = 0;\n            uVar17 = 0;\n            pdVar10 = (debug_type_s *)0x0;\n          }\n          else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar19 = info->mark;\n              if (uVar19 == pdVar11->mark) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar19 = info->mark;\n              uVar17 = pdVar11->id;\n              if (uVar19 == pdVar11->mark) {\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                dVar13 = type->kind;\n                goto LAB_0012c3b8;\n              }\n            }\n            pdVar11->mark = uVar19;\n            pdVar10 = pdVar11->vptrbase;\n            if ((type == pdVar10) || (pdVar10 == (debug_type_s *)0x0)) {\n              uVar19 = (uint)(pdVar10 != (debug_type_s *)0x0);\n              dVar13 = type->kind;\n            }\n            else {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              dVar13 = type->kind;\n              uVar19 = 1;\n            }\n          }\n          bVar6 = (*fns->start_class_type)\n                            (fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_CLASS),\n                             type->size,uVar19,(uint)(type == pdVar10));\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 != (debug_class_type *)0x0) {\n            if ((pdVar11->fields != (debug_field *)0x0) &&\n               (pdVar22 = *pdVar11->fields, pdVar22 != (debug_field)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                if (pdVar22->static_member == 0) {\n                  iVar23 = (*fns->struct_field)\n                                     (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                      (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n                }\n                else {\n                  iVar23 = (*fns->class_static_member)\n                                     (fhandle,pdVar22->name,(char *)pdVar22->u,pdVar22->visibility);\n                }\n                if (iVar23 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar22 = pdVar11->fields[uVar15];\n              } while (pdVar22 != (debug_field)0x0);\n            }\n            if ((pdVar11->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar24 = *pdVar11->baseclasses, pdVar24 != (debug_baseclass)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar24->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                bVar6 = (*fns->class_baseclass)\n                                  (fhandle,(ulong)pdVar24->bitpos,pdVar24->is_virtual,\n                                   pdVar24->visibility);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar24 = pdVar11->baseclasses[uVar15];\n              } while (pdVar24 != (debug_baseclass)0x0);\n            }\n            if ((pdVar11->methods != (debug_method *)0x0) &&\n               (local_48 = *pdVar11->methods, local_48 != (debug_method)0x0)) {\n              local_3c = 0;\n              do {\n                bVar6 = (*fns->class_start_method)(fhandle,local_48->name);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                uVar15 = 0;\n                pdVar5 = *local_48->variants;\n                while (pdVar5 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar5->context != (debug_type_s *)0x0) &&\n                     (bVar6 = debug_write_type(info,fns,fhandle,pdVar5->context,(debug_name *)0x0),\n                     bVar6 == 0)) {\n                    return 0;\n                  }\n                  bVar6 = debug_write_type(info,fns,fhandle,pdVar5->type,(debug_name *)0x0);\n                  if (bVar6 == 0) {\n                    return 0;\n                  }\n                  if (pdVar5->voffset == 0xffffffffffffffff) {\n                    iVar23 = (*fns->class_static_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep);\n                  }\n                  else {\n                    iVar23 = (*fns->class_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep,pdVar5->voffset,\n                                        (uint)(pdVar5->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar23 == 0) {\n                    return 0;\n                  }\n                  uVar15 = (ulong)((int)uVar15 + 1);\n                  pdVar5 = local_48->variants[uVar15];\n                }\n                bVar6 = (*fns->class_end_method)(fhandle);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = ((type->u).kclass)->methods[local_3c];\n              } while (local_48 != (debug_method)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->end_class_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_ENUM:\n          pdVar3 = (type->u).kenum;\n          pbVar14 = (bfd_signed_vma *)0x0;\n          ppcVar16 = (char **)0x0;\n          if (pdVar3 != (debug_enum_type *)0x0) {\n            pbVar14 = pdVar3->values;\n            ppcVar16 = pdVar3->names;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->enum_type)(fhandle,(char *)tag,ppcVar16,pbVar14);\n          return bVar6;\n        case DEBUG_KIND_POINTER:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->pointer_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_FUNCTION:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar8 = (type->u).kfunction;\n          if (pdVar8->arg_types == (debug_type_conflict *)0x0) {\n            uVar17 = 0xffffffff;\n          }\n          else {\n            pdVar10 = *pdVar8->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              uVar17 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar8 = (type->u).kfunction;\n                uVar17 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar8->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }\n          bVar6 = pdVar8->varargs;\n          UNRECOVERED_JUMPTABLE_01 =\n               (_func_bfd_boolean_void_ptr_uint_bfd_boolean *)fns->function_type;\nLAB_0012c31a:\n                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*UNRECOVERED_JUMPTABLE_01)(fhandle,uVar17,bVar6);\n          return bVar6;\n        case DEBUG_KIND_REFERENCE:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->reference_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_RANGE:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);\n          return bVar6;\n        case DEBUG_KIND_ARRAY:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)\n          ;\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar2 = (type->u).karray;\n                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->array_type)(fhandle,pdVar2->lower,pdVar2->upper,pdVar2->stringp);\n          return bVar6;\n        case DEBUG_KIND_SET:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          uVar17 = ((type->u).kclass)->mark;\n          UNRECOVERED_JUMPTABLE_00 = (_func_bfd_boolean_void_ptr_uint *)fns->set_type;\n          break;\n        case DEBUG_KIND_OFFSET:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)\n          ;\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->offset_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_METHOD:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar7 = (type->u).kmethod;\n          if (pdVar7->arg_types == (debug_type_conflict *)0x0) {\n            iVar23 = -1;\n          }\n          else {\n            pdVar10 = *pdVar7->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              iVar23 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar7 = (type->u).kmethod;\n                iVar23 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar7->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }\n          pdVar10 = pdVar7->domain_type;\n          if (pdVar10 != (debug_type_s *)0x0) {\n            bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar6 == 0) {\n              return 0;\n            }\n            pdVar7 = (type->u).kmethod;\n            pdVar10 = pdVar7->domain_type;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar23,\n                                      pdVar7->varargs);\n          return bVar6;\n        case DEBUG_KIND_CONST:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->const_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_VOLATILE:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->volatile_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_NAMED:\n          goto switchD_0012bc67_caseD_16;\n        case DEBUG_KIND_TAGGED:\nswitchD_0012bc67_caseD_17:\n          pdVar18 = (type->u).knamed;\n          name = pdVar18->name;\n          goto LAB_0012bc96;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n                    /* WARNING: Could not recover jumptable at 0x0012c2e8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        bVar6 = (*UNRECOVERED_JUMPTABLE_00)(fhandle,uVar17);\n        return bVar6;\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        tag = (debug_type)0x0;\nLAB_0012bc55:\n        switch(dVar13) {\n        case DEBUG_KIND_ILLEGAL:\n          uVar9 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar9);\n          return 0;\n        case DEBUG_KIND_INDIRECT:\n          goto switchD_0012bc67_caseD_1;\n        case DEBUG_KIND_VOID:\n          UNRECOVERED_JUMPTABLE_02 = fns->void_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_INT:\n          bVar6 = (type->u).kint;\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_01 = fns->int_type;\n          goto LAB_0012c31a;\n        case DEBUG_KIND_FLOAT:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->float_type;\n          break;\n        case DEBUG_KIND_COMPLEX:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->complex_type;\n          break;\n        case DEBUG_KIND_BOOL:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->bool_type;\n          break;\n        case DEBUG_KIND_STRUCT:\n        case DEBUG_KIND_UNION:\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 == (debug_class_type *)0x0) {\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            uVar17 = 0;\n          }\n          else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar12 = info->mark;\n              if (pdVar11->mark == uVar12) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                dVar13 = type->kind;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                bVar6 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)tag,uVar17,dVar13);\n                return bVar6;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar12 = info->mark;\n              if (uVar12 == pdVar11->mark) {\n                uVar17 = pdVar11->id;\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            pdVar11->mark = uVar12;\n            uVar17 = pdVar11->id;\n            dVar13 = type->kind;\n          }\n          bVar6 = (*p_Var20)(fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_STRUCT),uVar19);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          if ((((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar4 = ((type->u).kclass)->fields, ppdVar4 != (debug_field *)0x0)) &&\n             (pdVar22 = *ppdVar4, pdVar22 != (debug_field)0x0)) {\n            uVar15 = 0;\n            do {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              bVar6 = (*fns->struct_field)\n                                (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                 (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              uVar15 = (ulong)((int)uVar15 + 1);\n              pdVar22 = (debug_field)((type->u).kindirect)->slot[uVar15];\n            } while (pdVar22 != (debug_field)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->end_struct_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_CLASS:\n        case DEBUG_KIND_UNION_CLASS:\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 == (debug_class_type *)0x0) {\n            uVar19 = 0;\n            uVar17 = 0;\n            pdVar10 = (debug_type_s *)0x0;\n          }\n          else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar19 = info->mark;\n              if (uVar19 == pdVar11->mark) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar19 = info->mark;\n              uVar17 = pdVar11->id;\n              if (uVar19 == pdVar11->mark) {\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                dVar13 = type->kind;\n                goto LAB_0012c3b8;\n              }\n            }\n            pdVar11->mark = uVar19;\n            pdVar10 = pdVar11->vptrbase;\n            if ((type == pdVar10) || (pdVar10 == (debug_type_s *)0x0)) {\n              uVar19 = (uint)(pdVar10 != (debug_type_s *)0x0);\n              dVar13 = type->kind;\n            }\n            else {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              dVar13 = type->kind;\n              uVar19 = 1;\n            }\n          }\n          bVar6 = (*fns->start_class_type)\n                            (fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_CLASS),\n                             type->size,uVar19,(uint)(type == pdVar10));\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 != (debug_class_type *)0x0) {\n            if ((pdVar11->fields != (debug_field *)0x0) &&\n               (pdVar22 = *pdVar11->fields, pdVar22 != (debug_field)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                if (pdVar22->static_member == 0) {\n                  iVar23 = (*fns->struct_field)\n                                     (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                      (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n                }\n                else {\n                  iVar23 = (*fns->class_static_member)\n                                     (fhandle,pdVar22->name,(char *)pdVar22->u,pdVar22->visibility);\n                }\n                if (iVar23 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar22 = pdVar11->fields[uVar15];\n              } while (pdVar22 != (debug_field)0x0);\n            }\n            if ((pdVar11->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar24 = *pdVar11->baseclasses, pdVar24 != (debug_baseclass)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar24->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                bVar6 = (*fns->class_baseclass)\n                                  (fhandle,(ulong)pdVar24->bitpos,pdVar24->is_virtual,\n                                   pdVar24->visibility);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar24 = pdVar11->baseclasses[uVar15];\n              } while (pdVar24 != (debug_baseclass)0x0);\n            }\n            if ((pdVar11->methods != (debug_method *)0x0) &&\n               (local_48 = *pdVar11->methods, local_48 != (debug_method)0x0)) {\n              local_3c = 0;\n              do {\n                bVar6 = (*fns->class_start_method)(fhandle,local_48->name);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                uVar15 = 0;\n                pdVar5 = *local_48->variants;\n                while (pdVar5 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar5->context != (debug_type_s *)0x0) &&\n                     (bVar6 = debug_write_type(info,fns,fhandle,pdVar5->context,(debug_name *)0x0),\n                     bVar6 == 0)) {\n                    return 0;\n                  }\n                  bVar6 = debug_write_type(info,fns,fhandle,pdVar5->type,(debug_name *)0x0);\n                  if (bVar6 == 0) {\n                    return 0;\n                  }\n                  if (pdVar5->voffset == 0xffffffffffffffff) {\n                    iVar23 = (*fns->class_static_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep);\n                  }\n                  else {\n                    iVar23 = (*fns->class_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep,pdVar5->voffset,\n                                        (uint)(pdVar5->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar23 == 0) {\n                    return 0;\n                  }\n                  uVar15 = (ulong)((int)uVar15 + 1);\n                  pdVar5 = local_48->variants[uVar15];\n                }\n                bVar6 = (*fns->class_end_method)(fhandle);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = ((type->u).kclass)->methods[local_3c];\n              } while (local_48 != (debug_method)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->end_class_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_ENUM:\n          pdVar3 = (type->u).kenum;\n          pbVar14 = (bfd_signed_vma *)0x0;\n          ppcVar16 = (char **)0x0;\n          if (pdVar3 != (debug_enum_type *)0x0) {\n            pbVar14 = pdVar3->values;\n            ppcVar16 = pdVar3->names;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->enum_type)(fhandle,(char *)tag,ppcVar16,pbVar14);\n          return bVar6;\n        case DEBUG_KIND_POINTER:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->pointer_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_FUNCTION:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar8 = (type->u).kfunction;\n          if (pdVar8->arg_types == (debug_type_conflict *)0x0) {\n            uVar17 = 0xffffffff;\n          }\n          else {\n            pdVar10 = *pdVar8->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              uVar17 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar8 = (type->u).kfunction;\n                uVar17 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar8->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }\n          bVar6 = pdVar8->varargs;\n          UNRECOVERED_JUMPTABLE_01 =\n               (_func_bfd_boolean_void_ptr_uint_bfd_boolean *)fns->function_type;\nLAB_0012c31a:\n                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*UNRECOVERED_JUMPTABLE_01)(fhandle,uVar17,bVar6);\n          return bVar6;\n        case DEBUG_KIND_REFERENCE:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->reference_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_RANGE:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);\n          return bVar6;\n        case DEBUG_KIND_ARRAY:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)\n          ;\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar2 = (type->u).karray;\n                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->array_type)(fhandle,pdVar2->lower,pdVar2->upper,pdVar2->stringp);\n          return bVar6;\n        case DEBUG_KIND_SET:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          uVar17 = ((type->u).kclass)->mark;\n          UNRECOVERED_JUMPTABLE_00 = (_func_bfd_boolean_void_ptr_uint *)fns->set_type;\n          break;\n        case DEBUG_KIND_OFFSET:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)\n          ;\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->offset_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_METHOD:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar7 = (type->u).kmethod;\n          if (pdVar7->arg_types == (debug_type_conflict *)0x0) {\n            iVar23 = -1;\n          }\n          else {\n            pdVar10 = *pdVar7->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              iVar23 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar7 = (type->u).kmethod;\n                iVar23 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar7->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }\n          pdVar10 = pdVar7->domain_type;\n          if (pdVar10 != (debug_type_s *)0x0) {\n            bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar6 == 0) {\n              return 0;\n            }\n            pdVar7 = (type->u).kmethod;\n            pdVar10 = pdVar7->domain_type;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar23,\n                                      pdVar7->varargs);\n          return bVar6;\n        case DEBUG_KIND_CONST:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->const_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_VOLATILE:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->volatile_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_NAMED:\n          goto switchD_0012bc67_caseD_16;\n        case DEBUG_KIND_TAGGED:\nswitchD_0012bc67_caseD_17:\n          pdVar18 = (type->u).knamed;\n          name = pdVar18->name;\n          goto LAB_0012bc96;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n                    /* WARNING: Could not recover jumptable at 0x0012c2e8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        bVar6 = (*UNRECOVERED_JUMPTABLE_00)(fhandle,uVar17);\n        return bVar6;\n      }" { (expression_statement "tag = (debug_type)0x0;" (assignment_expression "tag = (debug_type)0x0" identifier = (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) ;) (labeled_statement "LAB_0012bc55:\n        switch(dVar13) {\n        case DEBUG_KIND_ILLEGAL:\n          uVar9 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar9);\n          return 0;\n        case DEBUG_KIND_INDIRECT:\n          goto switchD_0012bc67_caseD_1;\n        case DEBUG_KIND_VOID:\n          UNRECOVERED_JUMPTABLE_02 = fns->void_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_INT:\n          bVar6 = (type->u).kint;\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_01 = fns->int_type;\n          goto LAB_0012c31a;\n        case DEBUG_KIND_FLOAT:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->float_type;\n          break;\n        case DEBUG_KIND_COMPLEX:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->complex_type;\n          break;\n        case DEBUG_KIND_BOOL:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->bool_type;\n          break;\n        case DEBUG_KIND_STRUCT:\n        case DEBUG_KIND_UNION:\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 == (debug_class_type *)0x0) {\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            uVar17 = 0;\n          }\n          else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar12 = info->mark;\n              if (pdVar11->mark == uVar12) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                dVar13 = type->kind;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                bVar6 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)tag,uVar17,dVar13);\n                return bVar6;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar12 = info->mark;\n              if (uVar12 == pdVar11->mark) {\n                uVar17 = pdVar11->id;\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            pdVar11->mark = uVar12;\n            uVar17 = pdVar11->id;\n            dVar13 = type->kind;\n          }\n          bVar6 = (*p_Var20)(fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_STRUCT),uVar19);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          if ((((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar4 = ((type->u).kclass)->fields, ppdVar4 != (debug_field *)0x0)) &&\n             (pdVar22 = *ppdVar4, pdVar22 != (debug_field)0x0)) {\n            uVar15 = 0;\n            do {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              bVar6 = (*fns->struct_field)\n                                (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                 (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              uVar15 = (ulong)((int)uVar15 + 1);\n              pdVar22 = (debug_field)((type->u).kindirect)->slot[uVar15];\n            } while (pdVar22 != (debug_field)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->end_struct_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_CLASS:\n        case DEBUG_KIND_UNION_CLASS:\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 == (debug_class_type *)0x0) {\n            uVar19 = 0;\n            uVar17 = 0;\n            pdVar10 = (debug_type_s *)0x0;\n          }\n          else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar19 = info->mark;\n              if (uVar19 == pdVar11->mark) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar19 = info->mark;\n              uVar17 = pdVar11->id;\n              if (uVar19 == pdVar11->mark) {\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                dVar13 = type->kind;\n                goto LAB_0012c3b8;\n              }\n            }\n            pdVar11->mark = uVar19;\n            pdVar10 = pdVar11->vptrbase;\n            if ((type == pdVar10) || (pdVar10 == (debug_type_s *)0x0)) {\n              uVar19 = (uint)(pdVar10 != (debug_type_s *)0x0);\n              dVar13 = type->kind;\n            }\n            else {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              dVar13 = type->kind;\n              uVar19 = 1;\n            }\n          }\n          bVar6 = (*fns->start_class_type)\n                            (fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_CLASS),\n                             type->size,uVar19,(uint)(type == pdVar10));\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 != (debug_class_type *)0x0) {\n            if ((pdVar11->fields != (debug_field *)0x0) &&\n               (pdVar22 = *pdVar11->fields, pdVar22 != (debug_field)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                if (pdVar22->static_member == 0) {\n                  iVar23 = (*fns->struct_field)\n                                     (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                      (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n                }\n                else {\n                  iVar23 = (*fns->class_static_member)\n                                     (fhandle,pdVar22->name,(char *)pdVar22->u,pdVar22->visibility);\n                }\n                if (iVar23 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar22 = pdVar11->fields[uVar15];\n              } while (pdVar22 != (debug_field)0x0);\n            }\n            if ((pdVar11->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar24 = *pdVar11->baseclasses, pdVar24 != (debug_baseclass)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar24->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                bVar6 = (*fns->class_baseclass)\n                                  (fhandle,(ulong)pdVar24->bitpos,pdVar24->is_virtual,\n                                   pdVar24->visibility);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar24 = pdVar11->baseclasses[uVar15];\n              } while (pdVar24 != (debug_baseclass)0x0);\n            }\n            if ((pdVar11->methods != (debug_method *)0x0) &&\n               (local_48 = *pdVar11->methods, local_48 != (debug_method)0x0)) {\n              local_3c = 0;\n              do {\n                bVar6 = (*fns->class_start_method)(fhandle,local_48->name);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                uVar15 = 0;\n                pdVar5 = *local_48->variants;\n                while (pdVar5 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar5->context != (debug_type_s *)0x0) &&\n                     (bVar6 = debug_write_type(info,fns,fhandle,pdVar5->context,(debug_name *)0x0),\n                     bVar6 == 0)) {\n                    return 0;\n                  }\n                  bVar6 = debug_write_type(info,fns,fhandle,pdVar5->type,(debug_name *)0x0);\n                  if (bVar6 == 0) {\n                    return 0;\n                  }\n                  if (pdVar5->voffset == 0xffffffffffffffff) {\n                    iVar23 = (*fns->class_static_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep);\n                  }\n                  else {\n                    iVar23 = (*fns->class_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep,pdVar5->voffset,\n                                        (uint)(pdVar5->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar23 == 0) {\n                    return 0;\n                  }\n                  uVar15 = (ulong)((int)uVar15 + 1);\n                  pdVar5 = local_48->variants[uVar15];\n                }\n                bVar6 = (*fns->class_end_method)(fhandle);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = ((type->u).kclass)->methods[local_3c];\n              } while (local_48 != (debug_method)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->end_class_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_ENUM:\n          pdVar3 = (type->u).kenum;\n          pbVar14 = (bfd_signed_vma *)0x0;\n          ppcVar16 = (char **)0x0;\n          if (pdVar3 != (debug_enum_type *)0x0) {\n            pbVar14 = pdVar3->values;\n            ppcVar16 = pdVar3->names;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->enum_type)(fhandle,(char *)tag,ppcVar16,pbVar14);\n          return bVar6;\n        case DEBUG_KIND_POINTER:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->pointer_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_FUNCTION:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar8 = (type->u).kfunction;\n          if (pdVar8->arg_types == (debug_type_conflict *)0x0) {\n            uVar17 = 0xffffffff;\n          }\n          else {\n            pdVar10 = *pdVar8->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              uVar17 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar8 = (type->u).kfunction;\n                uVar17 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar8->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }\n          bVar6 = pdVar8->varargs;\n          UNRECOVERED_JUMPTABLE_01 =\n               (_func_bfd_boolean_void_ptr_uint_bfd_boolean *)fns->function_type;\nLAB_0012c31a:\n                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*UNRECOVERED_JUMPTABLE_01)(fhandle,uVar17,bVar6);\n          return bVar6;\n        case DEBUG_KIND_REFERENCE:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->reference_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_RANGE:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);\n          return bVar6;\n        case DEBUG_KIND_ARRAY:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)\n          ;\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar2 = (type->u).karray;\n                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->array_type)(fhandle,pdVar2->lower,pdVar2->upper,pdVar2->stringp);\n          return bVar6;\n        case DEBUG_KIND_SET:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          uVar17 = ((type->u).kclass)->mark;\n          UNRECOVERED_JUMPTABLE_00 = (_func_bfd_boolean_void_ptr_uint *)fns->set_type;\n          break;\n        case DEBUG_KIND_OFFSET:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)\n          ;\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->offset_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_METHOD:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar7 = (type->u).kmethod;\n          if (pdVar7->arg_types == (debug_type_conflict *)0x0) {\n            iVar23 = -1;\n          }\n          else {\n            pdVar10 = *pdVar7->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              iVar23 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar7 = (type->u).kmethod;\n                iVar23 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar7->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }\n          pdVar10 = pdVar7->domain_type;\n          if (pdVar10 != (debug_type_s *)0x0) {\n            bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar6 == 0) {\n              return 0;\n            }\n            pdVar7 = (type->u).kmethod;\n            pdVar10 = pdVar7->domain_type;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar23,\n                                      pdVar7->varargs);\n          return bVar6;\n        case DEBUG_KIND_CONST:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->const_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_VOLATILE:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->volatile_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_NAMED:\n          goto switchD_0012bc67_caseD_16;\n        case DEBUG_KIND_TAGGED:\nswitchD_0012bc67_caseD_17:\n          pdVar18 = (type->u).knamed;\n          name = pdVar18->name;\n          goto LAB_0012bc96;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }" statement_identifier : (switch_statement "switch(dVar13) {\n        case DEBUG_KIND_ILLEGAL:\n          uVar9 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar9);\n          return 0;\n        case DEBUG_KIND_INDIRECT:\n          goto switchD_0012bc67_caseD_1;\n        case DEBUG_KIND_VOID:\n          UNRECOVERED_JUMPTABLE_02 = fns->void_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_INT:\n          bVar6 = (type->u).kint;\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_01 = fns->int_type;\n          goto LAB_0012c31a;\n        case DEBUG_KIND_FLOAT:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->float_type;\n          break;\n        case DEBUG_KIND_COMPLEX:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->complex_type;\n          break;\n        case DEBUG_KIND_BOOL:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->bool_type;\n          break;\n        case DEBUG_KIND_STRUCT:\n        case DEBUG_KIND_UNION:\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 == (debug_class_type *)0x0) {\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            uVar17 = 0;\n          }\n          else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar12 = info->mark;\n              if (pdVar11->mark == uVar12) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                dVar13 = type->kind;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                bVar6 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)tag,uVar17,dVar13);\n                return bVar6;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar12 = info->mark;\n              if (uVar12 == pdVar11->mark) {\n                uVar17 = pdVar11->id;\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            pdVar11->mark = uVar12;\n            uVar17 = pdVar11->id;\n            dVar13 = type->kind;\n          }\n          bVar6 = (*p_Var20)(fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_STRUCT),uVar19);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          if ((((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar4 = ((type->u).kclass)->fields, ppdVar4 != (debug_field *)0x0)) &&\n             (pdVar22 = *ppdVar4, pdVar22 != (debug_field)0x0)) {\n            uVar15 = 0;\n            do {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              bVar6 = (*fns->struct_field)\n                                (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                 (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              uVar15 = (ulong)((int)uVar15 + 1);\n              pdVar22 = (debug_field)((type->u).kindirect)->slot[uVar15];\n            } while (pdVar22 != (debug_field)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->end_struct_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_CLASS:\n        case DEBUG_KIND_UNION_CLASS:\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 == (debug_class_type *)0x0) {\n            uVar19 = 0;\n            uVar17 = 0;\n            pdVar10 = (debug_type_s *)0x0;\n          }\n          else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar19 = info->mark;\n              if (uVar19 == pdVar11->mark) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar19 = info->mark;\n              uVar17 = pdVar11->id;\n              if (uVar19 == pdVar11->mark) {\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                dVar13 = type->kind;\n                goto LAB_0012c3b8;\n              }\n            }\n            pdVar11->mark = uVar19;\n            pdVar10 = pdVar11->vptrbase;\n            if ((type == pdVar10) || (pdVar10 == (debug_type_s *)0x0)) {\n              uVar19 = (uint)(pdVar10 != (debug_type_s *)0x0);\n              dVar13 = type->kind;\n            }\n            else {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              dVar13 = type->kind;\n              uVar19 = 1;\n            }\n          }\n          bVar6 = (*fns->start_class_type)\n                            (fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_CLASS),\n                             type->size,uVar19,(uint)(type == pdVar10));\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 != (debug_class_type *)0x0) {\n            if ((pdVar11->fields != (debug_field *)0x0) &&\n               (pdVar22 = *pdVar11->fields, pdVar22 != (debug_field)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                if (pdVar22->static_member == 0) {\n                  iVar23 = (*fns->struct_field)\n                                     (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                      (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n                }\n                else {\n                  iVar23 = (*fns->class_static_member)\n                                     (fhandle,pdVar22->name,(char *)pdVar22->u,pdVar22->visibility);\n                }\n                if (iVar23 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar22 = pdVar11->fields[uVar15];\n              } while (pdVar22 != (debug_field)0x0);\n            }\n            if ((pdVar11->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar24 = *pdVar11->baseclasses, pdVar24 != (debug_baseclass)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar24->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                bVar6 = (*fns->class_baseclass)\n                                  (fhandle,(ulong)pdVar24->bitpos,pdVar24->is_virtual,\n                                   pdVar24->visibility);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar24 = pdVar11->baseclasses[uVar15];\n              } while (pdVar24 != (debug_baseclass)0x0);\n            }\n            if ((pdVar11->methods != (debug_method *)0x0) &&\n               (local_48 = *pdVar11->methods, local_48 != (debug_method)0x0)) {\n              local_3c = 0;\n              do {\n                bVar6 = (*fns->class_start_method)(fhandle,local_48->name);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                uVar15 = 0;\n                pdVar5 = *local_48->variants;\n                while (pdVar5 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar5->context != (debug_type_s *)0x0) &&\n                     (bVar6 = debug_write_type(info,fns,fhandle,pdVar5->context,(debug_name *)0x0),\n                     bVar6 == 0)) {\n                    return 0;\n                  }\n                  bVar6 = debug_write_type(info,fns,fhandle,pdVar5->type,(debug_name *)0x0);\n                  if (bVar6 == 0) {\n                    return 0;\n                  }\n                  if (pdVar5->voffset == 0xffffffffffffffff) {\n                    iVar23 = (*fns->class_static_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep);\n                  }\n                  else {\n                    iVar23 = (*fns->class_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep,pdVar5->voffset,\n                                        (uint)(pdVar5->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar23 == 0) {\n                    return 0;\n                  }\n                  uVar15 = (ulong)((int)uVar15 + 1);\n                  pdVar5 = local_48->variants[uVar15];\n                }\n                bVar6 = (*fns->class_end_method)(fhandle);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = ((type->u).kclass)->methods[local_3c];\n              } while (local_48 != (debug_method)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->end_class_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_ENUM:\n          pdVar3 = (type->u).kenum;\n          pbVar14 = (bfd_signed_vma *)0x0;\n          ppcVar16 = (char **)0x0;\n          if (pdVar3 != (debug_enum_type *)0x0) {\n            pbVar14 = pdVar3->values;\n            ppcVar16 = pdVar3->names;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->enum_type)(fhandle,(char *)tag,ppcVar16,pbVar14);\n          return bVar6;\n        case DEBUG_KIND_POINTER:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->pointer_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_FUNCTION:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar8 = (type->u).kfunction;\n          if (pdVar8->arg_types == (debug_type_conflict *)0x0) {\n            uVar17 = 0xffffffff;\n          }\n          else {\n            pdVar10 = *pdVar8->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              uVar17 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar8 = (type->u).kfunction;\n                uVar17 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar8->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }\n          bVar6 = pdVar8->varargs;\n          UNRECOVERED_JUMPTABLE_01 =\n               (_func_bfd_boolean_void_ptr_uint_bfd_boolean *)fns->function_type;\nLAB_0012c31a:\n                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*UNRECOVERED_JUMPTABLE_01)(fhandle,uVar17,bVar6);\n          return bVar6;\n        case DEBUG_KIND_REFERENCE:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->reference_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_RANGE:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);\n          return bVar6;\n        case DEBUG_KIND_ARRAY:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)\n          ;\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar2 = (type->u).karray;\n                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->array_type)(fhandle,pdVar2->lower,pdVar2->upper,pdVar2->stringp);\n          return bVar6;\n        case DEBUG_KIND_SET:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          uVar17 = ((type->u).kclass)->mark;\n          UNRECOVERED_JUMPTABLE_00 = (_func_bfd_boolean_void_ptr_uint *)fns->set_type;\n          break;\n        case DEBUG_KIND_OFFSET:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)\n          ;\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->offset_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_METHOD:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar7 = (type->u).kmethod;\n          if (pdVar7->arg_types == (debug_type_conflict *)0x0) {\n            iVar23 = -1;\n          }\n          else {\n            pdVar10 = *pdVar7->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              iVar23 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar7 = (type->u).kmethod;\n                iVar23 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar7->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }\n          pdVar10 = pdVar7->domain_type;\n          if (pdVar10 != (debug_type_s *)0x0) {\n            bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar6 == 0) {\n              return 0;\n            }\n            pdVar7 = (type->u).kmethod;\n            pdVar10 = pdVar7->domain_type;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar23,\n                                      pdVar7->varargs);\n          return bVar6;\n        case DEBUG_KIND_CONST:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->const_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_VOLATILE:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->volatile_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_NAMED:\n          goto switchD_0012bc67_caseD_16;\n        case DEBUG_KIND_TAGGED:\nswitchD_0012bc67_caseD_17:\n          pdVar18 = (type->u).knamed;\n          name = pdVar18->name;\n          goto LAB_0012bc96;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }" switch (parenthesized_expression "(dVar13)" ( identifier )) (compound_statement "{\n        case DEBUG_KIND_ILLEGAL:\n          uVar9 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar9);\n          return 0;\n        case DEBUG_KIND_INDIRECT:\n          goto switchD_0012bc67_caseD_1;\n        case DEBUG_KIND_VOID:\n          UNRECOVERED_JUMPTABLE_02 = fns->void_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_INT:\n          bVar6 = (type->u).kint;\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_01 = fns->int_type;\n          goto LAB_0012c31a;\n        case DEBUG_KIND_FLOAT:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->float_type;\n          break;\n        case DEBUG_KIND_COMPLEX:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->complex_type;\n          break;\n        case DEBUG_KIND_BOOL:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->bool_type;\n          break;\n        case DEBUG_KIND_STRUCT:\n        case DEBUG_KIND_UNION:\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 == (debug_class_type *)0x0) {\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            uVar17 = 0;\n          }\n          else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar12 = info->mark;\n              if (pdVar11->mark == uVar12) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                dVar13 = type->kind;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                bVar6 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)tag,uVar17,dVar13);\n                return bVar6;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar12 = info->mark;\n              if (uVar12 == pdVar11->mark) {\n                uVar17 = pdVar11->id;\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            pdVar11->mark = uVar12;\n            uVar17 = pdVar11->id;\n            dVar13 = type->kind;\n          }\n          bVar6 = (*p_Var20)(fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_STRUCT),uVar19);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          if ((((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar4 = ((type->u).kclass)->fields, ppdVar4 != (debug_field *)0x0)) &&\n             (pdVar22 = *ppdVar4, pdVar22 != (debug_field)0x0)) {\n            uVar15 = 0;\n            do {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              bVar6 = (*fns->struct_field)\n                                (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                 (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              uVar15 = (ulong)((int)uVar15 + 1);\n              pdVar22 = (debug_field)((type->u).kindirect)->slot[uVar15];\n            } while (pdVar22 != (debug_field)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->end_struct_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_CLASS:\n        case DEBUG_KIND_UNION_CLASS:\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 == (debug_class_type *)0x0) {\n            uVar19 = 0;\n            uVar17 = 0;\n            pdVar10 = (debug_type_s *)0x0;\n          }\n          else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar19 = info->mark;\n              if (uVar19 == pdVar11->mark) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar19 = info->mark;\n              uVar17 = pdVar11->id;\n              if (uVar19 == pdVar11->mark) {\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                dVar13 = type->kind;\n                goto LAB_0012c3b8;\n              }\n            }\n            pdVar11->mark = uVar19;\n            pdVar10 = pdVar11->vptrbase;\n            if ((type == pdVar10) || (pdVar10 == (debug_type_s *)0x0)) {\n              uVar19 = (uint)(pdVar10 != (debug_type_s *)0x0);\n              dVar13 = type->kind;\n            }\n            else {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              dVar13 = type->kind;\n              uVar19 = 1;\n            }\n          }\n          bVar6 = (*fns->start_class_type)\n                            (fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_CLASS),\n                             type->size,uVar19,(uint)(type == pdVar10));\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 != (debug_class_type *)0x0) {\n            if ((pdVar11->fields != (debug_field *)0x0) &&\n               (pdVar22 = *pdVar11->fields, pdVar22 != (debug_field)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                if (pdVar22->static_member == 0) {\n                  iVar23 = (*fns->struct_field)\n                                     (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                      (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n                }\n                else {\n                  iVar23 = (*fns->class_static_member)\n                                     (fhandle,pdVar22->name,(char *)pdVar22->u,pdVar22->visibility);\n                }\n                if (iVar23 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar22 = pdVar11->fields[uVar15];\n              } while (pdVar22 != (debug_field)0x0);\n            }\n            if ((pdVar11->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar24 = *pdVar11->baseclasses, pdVar24 != (debug_baseclass)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar24->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                bVar6 = (*fns->class_baseclass)\n                                  (fhandle,(ulong)pdVar24->bitpos,pdVar24->is_virtual,\n                                   pdVar24->visibility);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar24 = pdVar11->baseclasses[uVar15];\n              } while (pdVar24 != (debug_baseclass)0x0);\n            }\n            if ((pdVar11->methods != (debug_method *)0x0) &&\n               (local_48 = *pdVar11->methods, local_48 != (debug_method)0x0)) {\n              local_3c = 0;\n              do {\n                bVar6 = (*fns->class_start_method)(fhandle,local_48->name);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                uVar15 = 0;\n                pdVar5 = *local_48->variants;\n                while (pdVar5 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar5->context != (debug_type_s *)0x0) &&\n                     (bVar6 = debug_write_type(info,fns,fhandle,pdVar5->context,(debug_name *)0x0),\n                     bVar6 == 0)) {\n                    return 0;\n                  }\n                  bVar6 = debug_write_type(info,fns,fhandle,pdVar5->type,(debug_name *)0x0);\n                  if (bVar6 == 0) {\n                    return 0;\n                  }\n                  if (pdVar5->voffset == 0xffffffffffffffff) {\n                    iVar23 = (*fns->class_static_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep);\n                  }\n                  else {\n                    iVar23 = (*fns->class_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep,pdVar5->voffset,\n                                        (uint)(pdVar5->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar23 == 0) {\n                    return 0;\n                  }\n                  uVar15 = (ulong)((int)uVar15 + 1);\n                  pdVar5 = local_48->variants[uVar15];\n                }\n                bVar6 = (*fns->class_end_method)(fhandle);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = ((type->u).kclass)->methods[local_3c];\n              } while (local_48 != (debug_method)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->end_class_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_ENUM:\n          pdVar3 = (type->u).kenum;\n          pbVar14 = (bfd_signed_vma *)0x0;\n          ppcVar16 = (char **)0x0;\n          if (pdVar3 != (debug_enum_type *)0x0) {\n            pbVar14 = pdVar3->values;\n            ppcVar16 = pdVar3->names;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->enum_type)(fhandle,(char *)tag,ppcVar16,pbVar14);\n          return bVar6;\n        case DEBUG_KIND_POINTER:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->pointer_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_FUNCTION:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar8 = (type->u).kfunction;\n          if (pdVar8->arg_types == (debug_type_conflict *)0x0) {\n            uVar17 = 0xffffffff;\n          }\n          else {\n            pdVar10 = *pdVar8->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              uVar17 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar8 = (type->u).kfunction;\n                uVar17 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar8->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }\n          bVar6 = pdVar8->varargs;\n          UNRECOVERED_JUMPTABLE_01 =\n               (_func_bfd_boolean_void_ptr_uint_bfd_boolean *)fns->function_type;\nLAB_0012c31a:\n                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*UNRECOVERED_JUMPTABLE_01)(fhandle,uVar17,bVar6);\n          return bVar6;\n        case DEBUG_KIND_REFERENCE:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->reference_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_RANGE:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);\n          return bVar6;\n        case DEBUG_KIND_ARRAY:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)\n          ;\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar2 = (type->u).karray;\n                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->array_type)(fhandle,pdVar2->lower,pdVar2->upper,pdVar2->stringp);\n          return bVar6;\n        case DEBUG_KIND_SET:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          uVar17 = ((type->u).kclass)->mark;\n          UNRECOVERED_JUMPTABLE_00 = (_func_bfd_boolean_void_ptr_uint *)fns->set_type;\n          break;\n        case DEBUG_KIND_OFFSET:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)\n          ;\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->offset_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_METHOD:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar7 = (type->u).kmethod;\n          if (pdVar7->arg_types == (debug_type_conflict *)0x0) {\n            iVar23 = -1;\n          }\n          else {\n            pdVar10 = *pdVar7->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              iVar23 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar7 = (type->u).kmethod;\n                iVar23 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar7->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }\n          pdVar10 = pdVar7->domain_type;\n          if (pdVar10 != (debug_type_s *)0x0) {\n            bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar6 == 0) {\n              return 0;\n            }\n            pdVar7 = (type->u).kmethod;\n            pdVar10 = pdVar7->domain_type;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar23,\n                                      pdVar7->varargs);\n          return bVar6;\n        case DEBUG_KIND_CONST:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->const_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_VOLATILE:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->volatile_type;\n          goto LAB_0012bfcc;\n        case DEBUG_KIND_NAMED:\n          goto switchD_0012bc67_caseD_16;\n        case DEBUG_KIND_TAGGED:\nswitchD_0012bc67_caseD_17:\n          pdVar18 = (type->u).knamed;\n          name = pdVar18->name;\n          goto LAB_0012bc96;\n        default:\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }" { (case_statement "case DEBUG_KIND_ILLEGAL:\n          uVar9 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar9);\n          return 0;" case identifier : (expression_statement "uVar9 = dcgettext(0,"debug_write_type: illegal type encountered",5);" (assignment_expression "uVar9 = 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(stderr,"%s\n",uVar9);" (call_expression "fprintf(stderr,"%s\n",uVar9)" identifier (argument_list "(stderr,"%s\n",uVar9)" ( 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 switchD_0012bc67_caseD_1;" case identifier : (goto_statement "goto switchD_0012bc67_caseD_1;" goto statement_identifier ;)) (case_statement "case DEBUG_KIND_VOID:\n          UNRECOVERED_JUMPTABLE_02 = fns->void_type;\n          goto LAB_0012bfcc;" case identifier : (expression_statement "UNRECOVERED_JUMPTABLE_02 = fns->void_type;" (assignment_expression "UNRECOVERED_JUMPTABLE_02 = fns->void_type" identifier = (field_expression "fns->void_type" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0012bfcc;" goto statement_identifier ;)) (case_statement "case DEBUG_KIND_INT:\n          bVar6 = (type->u).kint;\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_01 = fns->int_type;\n          goto LAB_0012c31a;" case identifier : (expression_statement "bVar6 = (type->u).kint;" (assignment_expression "bVar6 = (type->u).kint" identifier = (field_expression "(type->u).kint" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar17 = type->size;" (assignment_expression "uVar17 = type->size" identifier = (field_expression "type->size" identifier -> field_identifier)) ;) (expression_statement "UNRECOVERED_JUMPTABLE_01 = fns->int_type;" (assignment_expression "UNRECOVERED_JUMPTABLE_01 = fns->int_type" identifier = (field_expression "fns->int_type" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0012c31a;" goto statement_identifier ;)) (case_statement "case DEBUG_KIND_FLOAT:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->float_type;\n          break;" case identifier : (expression_statement "uVar17 = type->size;" (assignment_expression "uVar17 = type->size" identifier = (field_expression "type->size" identifier -> field_identifier)) ;) (expression_statement "UNRECOVERED_JUMPTABLE_00 = fns->float_type;" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = fns->float_type" identifier = (field_expression "fns->float_type" identifier -> field_identifier)) ;) (break_statement "break;" break ;)) (case_statement "case DEBUG_KIND_COMPLEX:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->complex_type;\n          break;" case identifier : (expression_statement "uVar17 = type->size;" (assignment_expression "uVar17 = type->size" identifier = (field_expression "type->size" identifier -> field_identifier)) ;) (expression_statement "UNRECOVERED_JUMPTABLE_00 = fns->complex_type;" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = fns->complex_type" identifier = (field_expression "fns->complex_type" identifier -> field_identifier)) ;) (break_statement "break;" break ;)) (case_statement "case DEBUG_KIND_BOOL:\n          uVar17 = type->size;\n          UNRECOVERED_JUMPTABLE_00 = fns->bool_type;\n          break;" case identifier : (expression_statement "uVar17 = type->size;" (assignment_expression "uVar17 = type->size" identifier = (field_expression "type->size" identifier -> field_identifier)) ;) (expression_statement "UNRECOVERED_JUMPTABLE_00 = fns->bool_type;" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = fns->bool_type" identifier = (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          pdVar11 = (type->u).kclass;\n          if (pdVar11 == (debug_class_type *)0x0) {\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            uVar17 = 0;\n          }\n          else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar12 = info->mark;\n              if (pdVar11->mark == uVar12) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                dVar13 = type->kind;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                bVar6 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)tag,uVar17,dVar13);\n                return bVar6;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar12 = info->mark;\n              if (uVar12 == pdVar11->mark) {\n                uVar17 = pdVar11->id;\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            pdVar11->mark = uVar12;\n            uVar17 = pdVar11->id;\n            dVar13 = type->kind;\n          }\n          bVar6 = (*p_Var20)(fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_STRUCT),uVar19);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          if ((((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar4 = ((type->u).kclass)->fields, ppdVar4 != (debug_field *)0x0)) &&\n             (pdVar22 = *ppdVar4, pdVar22 != (debug_field)0x0)) {\n            uVar15 = 0;\n            do {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              bVar6 = (*fns->struct_field)\n                                (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                 (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              uVar15 = (ulong)((int)uVar15 + 1);\n              pdVar22 = (debug_field)((type->u).kindirect)->slot[uVar15];\n            } while (pdVar22 != (debug_field)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->end_struct_type;\n          goto LAB_0012bfcc;" case identifier : (expression_statement "pdVar11 = (type->u).kclass;" (assignment_expression "pdVar11 = (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 (pdVar11 == (debug_class_type *)0x0) {\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            uVar17 = 0;\n          }\n          else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar12 = info->mark;\n              if (pdVar11->mark == uVar12) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                dVar13 = type->kind;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                bVar6 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)tag,uVar17,dVar13);\n                return bVar6;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar12 = info->mark;\n              if (uVar12 == pdVar11->mark) {\n                uVar17 = pdVar11->id;\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            pdVar11->mark = uVar12;\n            uVar17 = pdVar11->id;\n            dVar13 = type->kind;\n          }" if (parenthesized_expression "(pdVar11 == (debug_class_type *)0x0)" ( (binary_expression "pdVar11 == (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_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            uVar17 = 0;\n          }" { (expression_statement "p_Var20 = fns->start_struct_type;" (assignment_expression "p_Var20 = fns->start_struct_type" identifier = (field_expression "fns->start_struct_type" identifier -> field_identifier)) ;) (expression_statement "uVar19 = type->size;" (assignment_expression "uVar19 = type->size" identifier = (field_expression "type->size" identifier -> field_identifier)) ;) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar12 = info->mark;\n              if (pdVar11->mark == uVar12) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                dVar13 = type->kind;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                bVar6 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)tag,uVar17,dVar13);\n                return bVar6;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar12 = info->mark;\n              if (uVar12 == pdVar11->mark) {\n                uVar17 = pdVar11->id;\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            pdVar11->mark = uVar12;\n            uVar17 = pdVar11->id;\n            dVar13 = type->kind;\n          }" else (compound_statement "{\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar12 = info->mark;\n              if (pdVar11->mark == uVar12) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                dVar13 = type->kind;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                bVar6 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)tag,uVar17,dVar13);\n                return bVar6;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar12 = info->mark;\n              if (uVar12 == pdVar11->mark) {\n                uVar17 = pdVar11->id;\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            p_Var20 = fns->start_struct_type;\n            uVar19 = type->size;\n            pdVar11->mark = uVar12;\n            uVar17 = pdVar11->id;\n            dVar13 = type->kind;\n          }" { (expression_statement "uVar17 = pdVar11->id;" (assignment_expression "uVar17 = pdVar11->id" identifier = (field_expression "pdVar11->id" identifier -> field_identifier)) ;) (if_statement "if (info->base_id < uVar17) {\n              uVar12 = info->mark;\n              if (pdVar11->mark == uVar12) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                dVar13 = type->kind;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                bVar6 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)tag,uVar17,dVar13);\n                return bVar6;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar12 = info->mark;\n              if (uVar12 == pdVar11->mark) {\n                uVar17 = pdVar11->id;\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }" if (parenthesized_expression "(info->base_id < uVar17)" ( (binary_expression "info->base_id < uVar17" (field_expression "info->base_id" identifier -> field_identifier) < identifier) )) (compound_statement "{\n              uVar12 = info->mark;\n              if (pdVar11->mark == uVar12) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                dVar13 = type->kind;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                bVar6 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)tag,uVar17,dVar13);\n                return bVar6;\n              }\n            }" { (expression_statement "uVar12 = info->mark;" (assignment_expression "uVar12 = info->mark" identifier = (field_expression "info->mark" identifier -> field_identifier)) ;) (if_statement "if (pdVar11->mark == uVar12) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                dVar13 = type->kind;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                bVar6 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)tag,uVar17,dVar13);\n                return bVar6;\n              }" if (parenthesized_expression "(pdVar11->mark == uVar12)" ( (binary_expression "pdVar11->mark == uVar12" (field_expression "pdVar11->mark" identifier -> field_identifier) == identifier) )) (compound_statement "{\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                dVar13 = type->kind;\nLAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                bVar6 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)tag,uVar17,dVar13);\n                return bVar6;\n              }" { (labeled_statement "LAB_0012c414:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;" statement_identifier : (expression_statement "UNRECOVERED_JUMPTABLE = fns->tag_type;" (assignment_expression "UNRECOVERED_JUMPTABLE = fns->tag_type" identifier = (field_expression "fns->tag_type" identifier -> field_identifier)) ;)) (expression_statement "dVar13 = type->kind;" (assignment_expression "dVar13 = type->kind" identifier = (field_expression "type->kind" identifier -> field_identifier)) ;) (labeled_statement "LAB_0012c3c5:\n                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                bVar6 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)tag,uVar17,dVar13);" statement_identifier : comment comment (expression_statement "bVar6 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)tag,uVar17,dVar13);" (assignment_expression "bVar6 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)tag,uVar17,dVar13)" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE)(fhandle,(char *)tag,uVar17,dVar13)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(fhandle,(char *)tag,uVar17,dVar13)" ( identifier , (cast_expression "(char *)tag" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier )))) ;)) (return_statement "return bVar6;" return identifier ;) })) }) (else_clause "else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar12 = info->mark;\n              if (uVar12 == pdVar11->mark) {\n                uVar17 = pdVar11->id;\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }" else (compound_statement "{\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar12 = info->mark;\n              if (uVar12 == pdVar11->mark) {\n                uVar17 = pdVar11->id;\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }" { (expression_statement "bVar6 = debug_set_class_id(info,(char *)tag,type);" (assignment_expression "bVar6 = debug_set_class_id(info,(char *)tag,type)" identifier = (call_expression "debug_set_class_id(info,(char *)tag,type)" identifier (argument_list "(info,(char *)tag,type)" ( identifier , (cast_expression "(char *)tag" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (bVar6 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pdVar11 = (type->u).kclass;" (assignment_expression "pdVar11 = (type->u).kclass" identifier = (field_expression "(type->u).kclass" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar12 = info->mark;" (assignment_expression "uVar12 = info->mark" identifier = (field_expression "info->mark" identifier -> field_identifier)) ;) (if_statement "if (uVar12 == pdVar11->mark) {\n                uVar17 = pdVar11->id;\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }" if (parenthesized_expression "(uVar12 == pdVar11->mark)" ( (binary_expression "uVar12 == pdVar11->mark" identifier == (field_expression "pdVar11->mark" identifier -> field_identifier)) )) (compound_statement "{\n                uVar17 = pdVar11->id;\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }" { (expression_statement "uVar17 = pdVar11->id;" (assignment_expression "uVar17 = pdVar11->id" identifier = (field_expression "pdVar11->id" identifier -> field_identifier)) ;) (if_statement "if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }" if (parenthesized_expression "(uVar17 <= info->base_id)" ( (binary_expression "uVar17 <= info->base_id" identifier <= (field_expression "info->base_id" identifier -> field_identifier)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }" { comment (expression_statement "__assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");" (call_expression "__assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type")" identifier (argument_list "("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type")" ( (string_literal ""type->u.kclass->id > info->base_id"" " string_content ") , (string_literal ""../../binutils/debug.c"" " string_content ") , number_literal , (string_literal ""debug_write_type"" " string_content ") ))) ;) })) (goto_statement "goto LAB_0012c414;" goto statement_identifier ;) })) }))) (expression_statement "p_Var20 = fns->start_struct_type;" (assignment_expression "p_Var20 = fns->start_struct_type" identifier = (field_expression "fns->start_struct_type" identifier -> field_identifier)) ;) (expression_statement "uVar19 = type->size;" (assignment_expression "uVar19 = type->size" identifier = (field_expression "type->size" identifier -> field_identifier)) ;) (expression_statement "pdVar11->mark = uVar12;" (assignment_expression "pdVar11->mark = uVar12" (field_expression "pdVar11->mark" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar17 = pdVar11->id;" (assignment_expression "uVar17 = pdVar11->id" identifier = (field_expression "pdVar11->id" identifier -> field_identifier)) ;) (expression_statement "dVar13 = type->kind;" (assignment_expression "dVar13 = type->kind" identifier = (field_expression "type->kind" identifier -> field_identifier)) ;) }))) (expression_statement "bVar6 = (*p_Var20)(fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_STRUCT),uVar19);" (assignment_expression "bVar6 = (*p_Var20)(fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_STRUCT),uVar19)" identifier = (call_expression "(*p_Var20)(fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_STRUCT),uVar19)" (parenthesized_expression "(*p_Var20)" ( (pointer_expression "*p_Var20" * identifier) )) (argument_list "(fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_STRUCT),uVar19)" ( identifier , (cast_expression "(char *)tag" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (call_expression "(uint)(dVar13 == DEBUG_KIND_STRUCT)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(dVar13 == DEBUG_KIND_STRUCT)" ( (binary_expression "dVar13 == DEBUG_KIND_STRUCT" identifier == identifier) ))) , identifier )))) ;) (if_statement "if (bVar6 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 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              (ppdVar4 = ((type->u).kclass)->fields, ppdVar4 != (debug_field *)0x0)) &&\n             (pdVar22 = *ppdVar4, pdVar22 != (debug_field)0x0)) {\n            uVar15 = 0;\n            do {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              bVar6 = (*fns->struct_field)\n                                (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                 (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              uVar15 = (ulong)((int)uVar15 + 1);\n              pdVar22 = (debug_field)((type->u).kindirect)->slot[uVar15];\n            } while (pdVar22 != (debug_field)0x0);\n          }" if (parenthesized_expression "((((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar4 = ((type->u).kclass)->fields, ppdVar4 != (debug_field *)0x0)) &&\n             (pdVar22 = *ppdVar4, pdVar22 != (debug_field)0x0))" ( (binary_expression "(((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar4 = ((type->u).kclass)->fields, ppdVar4 != (debug_field *)0x0)) &&\n             (pdVar22 = *ppdVar4, pdVar22 != (debug_field)0x0)" (parenthesized_expression "(((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar4 = ((type->u).kclass)->fields, ppdVar4 != (debug_field *)0x0))" ( (binary_expression "((type->u).kclass != (debug_class_type *)0x0) &&\n              (ppdVar4 = ((type->u).kclass)->fields, ppdVar4 != (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 "(ppdVar4 = ((type->u).kclass)->fields, ppdVar4 != (debug_field *)0x0)" ( (comma_expression "ppdVar4 = ((type->u).kclass)->fields, ppdVar4 != (debug_field *)0x0" (assignment_expression "ppdVar4 = ((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 "ppdVar4 != (debug_field *)0x0" identifier != (cast_expression "(debug_field *)0x0" ( (type_descriptor "debug_field *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(pdVar22 = *ppdVar4, pdVar22 != (debug_field)0x0)" ( (comma_expression "pdVar22 = *ppdVar4, pdVar22 != (debug_field)0x0" (assignment_expression "pdVar22 = *ppdVar4" identifier = (pointer_expression "*ppdVar4" * identifier)) , (binary_expression "pdVar22 != (debug_field)0x0" identifier != (cast_expression "(debug_field)0x0" ( (type_descriptor "debug_field" type_identifier) ) number_literal))) ))) )) (compound_statement "{\n            uVar15 = 0;\n            do {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              bVar6 = (*fns->struct_field)\n                                (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                 (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              uVar15 = (ulong)((int)uVar15 + 1);\n              pdVar22 = (debug_field)((type->u).kindirect)->slot[uVar15];\n            } while (pdVar22 != (debug_field)0x0);\n          }" { (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (do_statement "do {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              bVar6 = (*fns->struct_field)\n                                (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                 (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              uVar15 = (ulong)((int)uVar15 + 1);\n              pdVar22 = (debug_field)((type->u).kindirect)->slot[uVar15];\n            } while (pdVar22 != (debug_field)0x0);" do (compound_statement "{\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              bVar6 = (*fns->struct_field)\n                                (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                 (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              uVar15 = (ulong)((int)uVar15 + 1);\n              pdVar22 = (debug_field)((type->u).kindirect)->slot[uVar15];\n            }" { (expression_statement "bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);" (assignment_expression "bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0)" identifier = (call_expression "debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0)" identifier (argument_list "(info,fns,fhandle,pdVar22->type,(debug_name *)0x0)" ( identifier , identifier , identifier , (field_expression "pdVar22->type" identifier -> field_identifier) , (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (bVar6 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar6 = (*fns->struct_field)\n                                (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                 (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);" (assignment_expression "bVar6 = (*fns->struct_field)\n                                (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                 (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility)" identifier = (call_expression "(*fns->struct_field)\n                                (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                 (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility)" (parenthesized_expression "(*fns->struct_field)" ( (pointer_expression "*fns->struct_field" * (field_expression "fns->struct_field" identifier -> field_identifier)) )) (argument_list "(fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                 (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility)" ( identifier , (field_expression "pdVar22->name" identifier -> field_identifier) , (field_expression "(ulong)(pdVar22->u).f.bitpos" (field_expression "(ulong)(pdVar22->u).f" (call_expression "(ulong)(pdVar22->u)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pdVar22->u)" ( (field_expression "pdVar22->u" identifier -> field_identifier) ))) . field_identifier) . field_identifier) , (field_expression "(ulong)(pdVar22->u).f.bitsize" (field_expression "(ulong)(pdVar22->u).f" (call_expression "(ulong)(pdVar22->u)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pdVar22->u)" ( (field_expression "pdVar22->u" identifier -> field_identifier) ))) . field_identifier) . field_identifier) , (field_expression "pdVar22->visibility" identifier -> field_identifier) )))) ;) (if_statement "if (bVar6 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar15 = (ulong)((int)uVar15 + 1);" (assignment_expression "uVar15 = (ulong)((int)uVar15 + 1)" identifier = (call_expression "(ulong)((int)uVar15 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar15 + 1)" ( (binary_expression "(int)uVar15 + 1" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pdVar22 = (debug_field)((type->u).kindirect)->slot[uVar15];" (assignment_expression "pdVar22 = (debug_field)((type->u).kindirect)->slot[uVar15]" identifier = (subscript_expression "(debug_field)((type->u).kindirect)->slot[uVar15]" (field_expression "(debug_field)((type->u).kindirect)->slot" (call_expression "(debug_field)((type->u).kindirect)" (parenthesized_expression "(debug_field)" ( identifier )) (argument_list "((type->u).kindirect)" ( (field_expression "(type->u).kindirect" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier) ))) -> field_identifier) [ identifier ])) ;) }) while (parenthesized_expression "(pdVar22 != (debug_field)0x0)" ( (binary_expression "pdVar22 != (debug_field)0x0" identifier != (cast_expression "(debug_field)0x0" ( (type_descriptor "debug_field" type_identifier) ) number_literal)) )) ;) })) (expression_statement "UNRECOVERED_JUMPTABLE_02 = fns->end_struct_type;" (assignment_expression "UNRECOVERED_JUMPTABLE_02 = fns->end_struct_type" identifier = (field_expression "fns->end_struct_type" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0012bfcc;" goto statement_identifier ;)) (case_statement "case DEBUG_KIND_CLASS:" case identifier :) (case_statement "case DEBUG_KIND_UNION_CLASS:\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 == (debug_class_type *)0x0) {\n            uVar19 = 0;\n            uVar17 = 0;\n            pdVar10 = (debug_type_s *)0x0;\n          }\n          else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar19 = info->mark;\n              if (uVar19 == pdVar11->mark) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar19 = info->mark;\n              uVar17 = pdVar11->id;\n              if (uVar19 == pdVar11->mark) {\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                dVar13 = type->kind;\n                goto LAB_0012c3b8;\n              }\n            }\n            pdVar11->mark = uVar19;\n            pdVar10 = pdVar11->vptrbase;\n            if ((type == pdVar10) || (pdVar10 == (debug_type_s *)0x0)) {\n              uVar19 = (uint)(pdVar10 != (debug_type_s *)0x0);\n              dVar13 = type->kind;\n            }\n            else {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              dVar13 = type->kind;\n              uVar19 = 1;\n            }\n          }\n          bVar6 = (*fns->start_class_type)\n                            (fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_CLASS),\n                             type->size,uVar19,(uint)(type == pdVar10));\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar11 = (type->u).kclass;\n          if (pdVar11 != (debug_class_type *)0x0) {\n            if ((pdVar11->fields != (debug_field *)0x0) &&\n               (pdVar22 = *pdVar11->fields, pdVar22 != (debug_field)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                if (pdVar22->static_member == 0) {\n                  iVar23 = (*fns->struct_field)\n                                     (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                      (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n                }\n                else {\n                  iVar23 = (*fns->class_static_member)\n                                     (fhandle,pdVar22->name,(char *)pdVar22->u,pdVar22->visibility);\n                }\n                if (iVar23 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar22 = pdVar11->fields[uVar15];\n              } while (pdVar22 != (debug_field)0x0);\n            }\n            if ((pdVar11->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar24 = *pdVar11->baseclasses, pdVar24 != (debug_baseclass)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar24->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                bVar6 = (*fns->class_baseclass)\n                                  (fhandle,(ulong)pdVar24->bitpos,pdVar24->is_virtual,\n                                   pdVar24->visibility);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar24 = pdVar11->baseclasses[uVar15];\n              } while (pdVar24 != (debug_baseclass)0x0);\n            }\n            if ((pdVar11->methods != (debug_method *)0x0) &&\n               (local_48 = *pdVar11->methods, local_48 != (debug_method)0x0)) {\n              local_3c = 0;\n              do {\n                bVar6 = (*fns->class_start_method)(fhandle,local_48->name);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                uVar15 = 0;\n                pdVar5 = *local_48->variants;\n                while (pdVar5 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar5->context != (debug_type_s *)0x0) &&\n                     (bVar6 = debug_write_type(info,fns,fhandle,pdVar5->context,(debug_name *)0x0),\n                     bVar6 == 0)) {\n                    return 0;\n                  }\n                  bVar6 = debug_write_type(info,fns,fhandle,pdVar5->type,(debug_name *)0x0);\n                  if (bVar6 == 0) {\n                    return 0;\n                  }\n                  if (pdVar5->voffset == 0xffffffffffffffff) {\n                    iVar23 = (*fns->class_static_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep);\n                  }\n                  else {\n                    iVar23 = (*fns->class_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep,pdVar5->voffset,\n                                        (uint)(pdVar5->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar23 == 0) {\n                    return 0;\n                  }\n                  uVar15 = (ulong)((int)uVar15 + 1);\n                  pdVar5 = local_48->variants[uVar15];\n                }\n                bVar6 = (*fns->class_end_method)(fhandle);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = ((type->u).kclass)->methods[local_3c];\n              } while (local_48 != (debug_method)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->end_class_type;\n          goto LAB_0012bfcc;" case identifier : (expression_statement "pdVar11 = (type->u).kclass;" (assignment_expression "pdVar11 = (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 (pdVar11 == (debug_class_type *)0x0) {\n            uVar19 = 0;\n            uVar17 = 0;\n            pdVar10 = (debug_type_s *)0x0;\n          }\n          else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar19 = info->mark;\n              if (uVar19 == pdVar11->mark) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar19 = info->mark;\n              uVar17 = pdVar11->id;\n              if (uVar19 == pdVar11->mark) {\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                dVar13 = type->kind;\n                goto LAB_0012c3b8;\n              }\n            }\n            pdVar11->mark = uVar19;\n            pdVar10 = pdVar11->vptrbase;\n            if ((type == pdVar10) || (pdVar10 == (debug_type_s *)0x0)) {\n              uVar19 = (uint)(pdVar10 != (debug_type_s *)0x0);\n              dVar13 = type->kind;\n            }\n            else {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              dVar13 = type->kind;\n              uVar19 = 1;\n            }\n          }" if (parenthesized_expression "(pdVar11 == (debug_class_type *)0x0)" ( (binary_expression "pdVar11 == (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            uVar19 = 0;\n            uVar17 = 0;\n            pdVar10 = (debug_type_s *)0x0;\n          }" { (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "pdVar10 = (debug_type_s *)0x0;" (assignment_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)) ;) }) (else_clause "else {\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar19 = info->mark;\n              if (uVar19 == pdVar11->mark) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar19 = info->mark;\n              uVar17 = pdVar11->id;\n              if (uVar19 == pdVar11->mark) {\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                dVar13 = type->kind;\n                goto LAB_0012c3b8;\n              }\n            }\n            pdVar11->mark = uVar19;\n            pdVar10 = pdVar11->vptrbase;\n            if ((type == pdVar10) || (pdVar10 == (debug_type_s *)0x0)) {\n              uVar19 = (uint)(pdVar10 != (debug_type_s *)0x0);\n              dVar13 = type->kind;\n            }\n            else {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              dVar13 = type->kind;\n              uVar19 = 1;\n            }\n          }" else (compound_statement "{\n            uVar17 = pdVar11->id;\n            if (info->base_id < uVar17) {\n              uVar19 = info->mark;\n              if (uVar19 == pdVar11->mark) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar19 = info->mark;\n              uVar17 = pdVar11->id;\n              if (uVar19 == pdVar11->mark) {\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                dVar13 = type->kind;\n                goto LAB_0012c3b8;\n              }\n            }\n            pdVar11->mark = uVar19;\n            pdVar10 = pdVar11->vptrbase;\n            if ((type == pdVar10) || (pdVar10 == (debug_type_s *)0x0)) {\n              uVar19 = (uint)(pdVar10 != (debug_type_s *)0x0);\n              dVar13 = type->kind;\n            }\n            else {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              dVar13 = type->kind;\n              uVar19 = 1;\n            }\n          }" { (expression_statement "uVar17 = pdVar11->id;" (assignment_expression "uVar17 = pdVar11->id" identifier = (field_expression "pdVar11->id" identifier -> field_identifier)) ;) (if_statement "if (info->base_id < uVar17) {\n              uVar19 = info->mark;\n              if (uVar19 == pdVar11->mark) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar19 = info->mark;\n              uVar17 = pdVar11->id;\n              if (uVar19 == pdVar11->mark) {\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                dVar13 = type->kind;\n                goto LAB_0012c3b8;\n              }\n            }" if (parenthesized_expression "(info->base_id < uVar17)" ( (binary_expression "info->base_id < uVar17" (field_expression "info->base_id" identifier -> field_identifier) < identifier) )) (compound_statement "{\n              uVar19 = info->mark;\n              if (uVar19 == pdVar11->mark) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                goto LAB_0012c3c5;\n              }\n            }" { (expression_statement "uVar19 = info->mark;" (assignment_expression "uVar19 = info->mark" identifier = (field_expression "info->mark" identifier -> field_identifier)) ;) (if_statement "if (uVar19 == pdVar11->mark) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                goto LAB_0012c3c5;\n              }" if (parenthesized_expression "(uVar19 == pdVar11->mark)" ( (binary_expression "uVar19 == pdVar11->mark" identifier == (field_expression "pdVar11->mark" identifier -> field_identifier)) )) (compound_statement "{\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;\n                goto LAB_0012c3c5;\n              }" { (labeled_statement "LAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE = fns->tag_type;" statement_identifier : (expression_statement "UNRECOVERED_JUMPTABLE = fns->tag_type;" (assignment_expression "UNRECOVERED_JUMPTABLE = fns->tag_type" identifier = (field_expression "fns->tag_type" identifier -> field_identifier)) ;)) (goto_statement "goto LAB_0012c3c5;" goto statement_identifier ;) })) }) (else_clause "else {\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar19 = info->mark;\n              uVar17 = pdVar11->id;\n              if (uVar19 == pdVar11->mark) {\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                dVar13 = type->kind;\n                goto LAB_0012c3b8;\n              }\n            }" else (compound_statement "{\n              bVar6 = debug_set_class_id(info,(char *)tag,type);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              pdVar11 = (type->u).kclass;\n              uVar19 = info->mark;\n              uVar17 = pdVar11->id;\n              if (uVar19 == pdVar11->mark) {\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                dVar13 = type->kind;\n                goto LAB_0012c3b8;\n              }\n            }" { (expression_statement "bVar6 = debug_set_class_id(info,(char *)tag,type);" (assignment_expression "bVar6 = debug_set_class_id(info,(char *)tag,type)" identifier = (call_expression "debug_set_class_id(info,(char *)tag,type)" identifier (argument_list "(info,(char *)tag,type)" ( identifier , (cast_expression "(char *)tag" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (bVar6 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pdVar11 = (type->u).kclass;" (assignment_expression "pdVar11 = (type->u).kclass" identifier = (field_expression "(type->u).kclass" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar19 = info->mark;" (assignment_expression "uVar19 = info->mark" identifier = (field_expression "info->mark" identifier -> field_identifier)) ;) (expression_statement "uVar17 = pdVar11->id;" (assignment_expression "uVar17 = pdVar11->id" identifier = (field_expression "pdVar11->id" identifier -> field_identifier)) ;) (if_statement "if (uVar19 == pdVar11->mark) {\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                dVar13 = type->kind;\n                goto LAB_0012c3b8;\n              }" if (parenthesized_expression "(uVar19 == pdVar11->mark)" ( (binary_expression "uVar19 == pdVar11->mark" identifier == (field_expression "pdVar11->mark" identifier -> field_identifier)) )) (compound_statement "{\n                if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                dVar13 = type->kind;\n                goto LAB_0012c3b8;\n              }" { (if_statement "if (uVar17 <= info->base_id) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }" if (parenthesized_expression "(uVar17 <= info->base_id)" ( (binary_expression "uVar17 <= info->base_id" identifier <= (field_expression "info->base_id" identifier -> field_identifier)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }" { comment (expression_statement "__assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");" (call_expression "__assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type")" identifier (argument_list "("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type")" ( (string_literal ""type->u.kclass->id > info->base_id"" " string_content ") , (string_literal ""../../binutils/debug.c"" " string_content ") , number_literal , (string_literal ""debug_write_class_type"" " string_content ") ))) ;) })) (expression_statement "dVar13 = type->kind;" (assignment_expression "dVar13 = type->kind" identifier = (field_expression "type->kind" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0012c3b8;" goto statement_identifier ;) })) }))) (expression_statement "pdVar11->mark = uVar19;" (assignment_expression "pdVar11->mark = uVar19" (field_expression "pdVar11->mark" identifier -> field_identifier) = identifier) ;) (expression_statement "pdVar10 = pdVar11->vptrbase;" (assignment_expression "pdVar10 = pdVar11->vptrbase" identifier = (field_expression "pdVar11->vptrbase" identifier -> field_identifier)) ;) (if_statement "if ((type == pdVar10) || (pdVar10 == (debug_type_s *)0x0)) {\n              uVar19 = (uint)(pdVar10 != (debug_type_s *)0x0);\n              dVar13 = type->kind;\n            }\n            else {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              dVar13 = type->kind;\n              uVar19 = 1;\n            }" if (parenthesized_expression "((type == pdVar10) || (pdVar10 == (debug_type_s *)0x0))" ( (binary_expression "(type == pdVar10) || (pdVar10 == (debug_type_s *)0x0)" (parenthesized_expression "(type == pdVar10)" ( (binary_expression "type == pdVar10" identifier == identifier) )) || (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              uVar19 = (uint)(pdVar10 != (debug_type_s *)0x0);\n              dVar13 = type->kind;\n            }" { (expression_statement "uVar19 = (uint)(pdVar10 != (debug_type_s *)0x0);" (assignment_expression "uVar19 = (uint)(pdVar10 != (debug_type_s *)0x0)" 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)) )))) ;) (expression_statement "dVar13 = type->kind;" (assignment_expression "dVar13 = type->kind" identifier = (field_expression "type->kind" identifier -> field_identifier)) ;) }) (else_clause "else {\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              dVar13 = type->kind;\n              uVar19 = 1;\n            }" else (compound_statement "{\n              bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n              if (bVar6 == 0) {\n                return 0;\n              }\n              dVar13 = type->kind;\n              uVar19 = 1;\n            }" { (expression_statement "bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);" (assignment_expression "bVar6 = 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 (bVar6 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "dVar13 = type->kind;" (assignment_expression "dVar13 = type->kind" identifier = (field_expression "type->kind" identifier -> field_identifier)) ;) (expression_statement "uVar19 = 1;" (assignment_expression "uVar19 = 1" identifier = number_literal) ;) }))) }))) (expression_statement "bVar6 = (*fns->start_class_type)\n                            (fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_CLASS),\n                             type->size,uVar19,(uint)(type == pdVar10));" (assignment_expression "bVar6 = (*fns->start_class_type)\n                            (fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_CLASS),\n                             type->size,uVar19,(uint)(type == pdVar10))" identifier = (call_expression "(*fns->start_class_type)\n                            (fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_CLASS),\n                             type->size,uVar19,(uint)(type == pdVar10))" (parenthesized_expression "(*fns->start_class_type)" ( (pointer_expression "*fns->start_class_type" * (field_expression "fns->start_class_type" identifier -> field_identifier)) )) (argument_list "(fhandle,(char *)tag,uVar17,(uint)(dVar13 == DEBUG_KIND_CLASS),\n                             type->size,uVar19,(uint)(type == pdVar10))" ( identifier , (cast_expression "(char *)tag" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (call_expression "(uint)(dVar13 == DEBUG_KIND_CLASS)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(dVar13 == DEBUG_KIND_CLASS)" ( (binary_expression "dVar13 == DEBUG_KIND_CLASS" identifier == identifier) ))) , (field_expression "type->size" identifier -> field_identifier) , identifier , (call_expression "(uint)(type == pdVar10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(type == pdVar10)" ( (binary_expression "type == pdVar10" identifier == identifier) ))) )))) ;) (if_statement "if (bVar6 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pdVar11 = (type->u).kclass;" (assignment_expression "pdVar11 = (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 (pdVar11 != (debug_class_type *)0x0) {\n            if ((pdVar11->fields != (debug_field *)0x0) &&\n               (pdVar22 = *pdVar11->fields, pdVar22 != (debug_field)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                if (pdVar22->static_member == 0) {\n                  iVar23 = (*fns->struct_field)\n                                     (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                      (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n                }\n                else {\n                  iVar23 = (*fns->class_static_member)\n                                     (fhandle,pdVar22->name,(char *)pdVar22->u,pdVar22->visibility);\n                }\n                if (iVar23 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar22 = pdVar11->fields[uVar15];\n              } while (pdVar22 != (debug_field)0x0);\n            }\n            if ((pdVar11->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar24 = *pdVar11->baseclasses, pdVar24 != (debug_baseclass)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar24->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                bVar6 = (*fns->class_baseclass)\n                                  (fhandle,(ulong)pdVar24->bitpos,pdVar24->is_virtual,\n                                   pdVar24->visibility);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar24 = pdVar11->baseclasses[uVar15];\n              } while (pdVar24 != (debug_baseclass)0x0);\n            }\n            if ((pdVar11->methods != (debug_method *)0x0) &&\n               (local_48 = *pdVar11->methods, local_48 != (debug_method)0x0)) {\n              local_3c = 0;\n              do {\n                bVar6 = (*fns->class_start_method)(fhandle,local_48->name);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                uVar15 = 0;\n                pdVar5 = *local_48->variants;\n                while (pdVar5 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar5->context != (debug_type_s *)0x0) &&\n                     (bVar6 = debug_write_type(info,fns,fhandle,pdVar5->context,(debug_name *)0x0),\n                     bVar6 == 0)) {\n                    return 0;\n                  }\n                  bVar6 = debug_write_type(info,fns,fhandle,pdVar5->type,(debug_name *)0x0);\n                  if (bVar6 == 0) {\n                    return 0;\n                  }\n                  if (pdVar5->voffset == 0xffffffffffffffff) {\n                    iVar23 = (*fns->class_static_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep);\n                  }\n                  else {\n                    iVar23 = (*fns->class_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep,pdVar5->voffset,\n                                        (uint)(pdVar5->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar23 == 0) {\n                    return 0;\n                  }\n                  uVar15 = (ulong)((int)uVar15 + 1);\n                  pdVar5 = local_48->variants[uVar15];\n                }\n                bVar6 = (*fns->class_end_method)(fhandle);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = ((type->u).kclass)->methods[local_3c];\n              } while (local_48 != (debug_method)0x0);\n            }\n          }" if (parenthesized_expression "(pdVar11 != (debug_class_type *)0x0)" ( (binary_expression "pdVar11 != (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 ((pdVar11->fields != (debug_field *)0x0) &&\n               (pdVar22 = *pdVar11->fields, pdVar22 != (debug_field)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                if (pdVar22->static_member == 0) {\n                  iVar23 = (*fns->struct_field)\n                                     (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                      (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n                }\n                else {\n                  iVar23 = (*fns->class_static_member)\n                                     (fhandle,pdVar22->name,(char *)pdVar22->u,pdVar22->visibility);\n                }\n                if (iVar23 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar22 = pdVar11->fields[uVar15];\n              } while (pdVar22 != (debug_field)0x0);\n            }\n            if ((pdVar11->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar24 = *pdVar11->baseclasses, pdVar24 != (debug_baseclass)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar24->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                bVar6 = (*fns->class_baseclass)\n                                  (fhandle,(ulong)pdVar24->bitpos,pdVar24->is_virtual,\n                                   pdVar24->visibility);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar24 = pdVar11->baseclasses[uVar15];\n              } while (pdVar24 != (debug_baseclass)0x0);\n            }\n            if ((pdVar11->methods != (debug_method *)0x0) &&\n               (local_48 = *pdVar11->methods, local_48 != (debug_method)0x0)) {\n              local_3c = 0;\n              do {\n                bVar6 = (*fns->class_start_method)(fhandle,local_48->name);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                uVar15 = 0;\n                pdVar5 = *local_48->variants;\n                while (pdVar5 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar5->context != (debug_type_s *)0x0) &&\n                     (bVar6 = debug_write_type(info,fns,fhandle,pdVar5->context,(debug_name *)0x0),\n                     bVar6 == 0)) {\n                    return 0;\n                  }\n                  bVar6 = debug_write_type(info,fns,fhandle,pdVar5->type,(debug_name *)0x0);\n                  if (bVar6 == 0) {\n                    return 0;\n                  }\n                  if (pdVar5->voffset == 0xffffffffffffffff) {\n                    iVar23 = (*fns->class_static_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep);\n                  }\n                  else {\n                    iVar23 = (*fns->class_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep,pdVar5->voffset,\n                                        (uint)(pdVar5->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar23 == 0) {\n                    return 0;\n                  }\n                  uVar15 = (ulong)((int)uVar15 + 1);\n                  pdVar5 = local_48->variants[uVar15];\n                }\n                bVar6 = (*fns->class_end_method)(fhandle);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = ((type->u).kclass)->methods[local_3c];\n              } while (local_48 != (debug_method)0x0);\n            }\n          }" { (if_statement "if ((pdVar11->fields != (debug_field *)0x0) &&\n               (pdVar22 = *pdVar11->fields, pdVar22 != (debug_field)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                if (pdVar22->static_member == 0) {\n                  iVar23 = (*fns->struct_field)\n                                     (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                      (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n                }\n                else {\n                  iVar23 = (*fns->class_static_member)\n                                     (fhandle,pdVar22->name,(char *)pdVar22->u,pdVar22->visibility);\n                }\n                if (iVar23 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar22 = pdVar11->fields[uVar15];\n              } while (pdVar22 != (debug_field)0x0);\n            }" if (parenthesized_expression "((pdVar11->fields != (debug_field *)0x0) &&\n               (pdVar22 = *pdVar11->fields, pdVar22 != (debug_field)0x0))" ( (binary_expression "(pdVar11->fields != (debug_field *)0x0) &&\n               (pdVar22 = *pdVar11->fields, pdVar22 != (debug_field)0x0)" (parenthesized_expression "(pdVar11->fields != (debug_field *)0x0)" ( (binary_expression "pdVar11->fields != (debug_field *)0x0" (field_expression "pdVar11->fields" identifier -> field_identifier) != (cast_expression "(debug_field *)0x0" ( (type_descriptor "debug_field *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pdVar22 = *pdVar11->fields, pdVar22 != (debug_field)0x0)" ( (comma_expression "pdVar22 = *pdVar11->fields, pdVar22 != (debug_field)0x0" (assignment_expression "pdVar22 = *pdVar11->fields" identifier = (pointer_expression "*pdVar11->fields" * (field_expression "pdVar11->fields" identifier -> field_identifier))) , (binary_expression "pdVar22 != (debug_field)0x0" identifier != (cast_expression "(debug_field)0x0" ( (type_descriptor "debug_field" type_identifier) ) number_literal))) ))) )) (compound_statement "{\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                if (pdVar22->static_member == 0) {\n                  iVar23 = (*fns->struct_field)\n                                     (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                      (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n                }\n                else {\n                  iVar23 = (*fns->class_static_member)\n                                     (fhandle,pdVar22->name,(char *)pdVar22->u,pdVar22->visibility);\n                }\n                if (iVar23 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar22 = pdVar11->fields[uVar15];\n              } while (pdVar22 != (debug_field)0x0);\n            }" { (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (do_statement "do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                if (pdVar22->static_member == 0) {\n                  iVar23 = (*fns->struct_field)\n                                     (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                      (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n                }\n                else {\n                  iVar23 = (*fns->class_static_member)\n                                     (fhandle,pdVar22->name,(char *)pdVar22->u,pdVar22->visibility);\n                }\n                if (iVar23 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar22 = pdVar11->fields[uVar15];\n              } while (pdVar22 != (debug_field)0x0);" do (compound_statement "{\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                if (pdVar22->static_member == 0) {\n                  iVar23 = (*fns->struct_field)\n                                     (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                      (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n                }\n                else {\n                  iVar23 = (*fns->class_static_member)\n                                     (fhandle,pdVar22->name,(char *)pdVar22->u,pdVar22->visibility);\n                }\n                if (iVar23 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar22 = pdVar11->fields[uVar15];\n              }" { (expression_statement "bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0);" (assignment_expression "bVar6 = debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0)" identifier = (call_expression "debug_write_type(info,fns,fhandle,pdVar22->type,(debug_name *)0x0)" identifier (argument_list "(info,fns,fhandle,pdVar22->type,(debug_name *)0x0)" ( identifier , identifier , identifier , (field_expression "pdVar22->type" identifier -> field_identifier) , (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (bVar6 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (pdVar22->static_member == 0) {\n                  iVar23 = (*fns->struct_field)\n                                     (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                      (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n                }\n                else {\n                  iVar23 = (*fns->class_static_member)\n                                     (fhandle,pdVar22->name,(char *)pdVar22->u,pdVar22->visibility);\n                }" if (parenthesized_expression "(pdVar22->static_member == 0)" ( (binary_expression "pdVar22->static_member == 0" (field_expression "pdVar22->static_member" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n                  iVar23 = (*fns->struct_field)\n                                     (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                      (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);\n                }" { (expression_statement "iVar23 = (*fns->struct_field)\n                                     (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                      (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility);" (assignment_expression "iVar23 = (*fns->struct_field)\n                                     (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                      (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility)" identifier = (call_expression "(*fns->struct_field)\n                                     (fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                      (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility)" (parenthesized_expression "(*fns->struct_field)" ( (pointer_expression "*fns->struct_field" * (field_expression "fns->struct_field" identifier -> field_identifier)) )) (argument_list "(fhandle,pdVar22->name,(ulong)(pdVar22->u).f.bitpos,\n                                      (ulong)(pdVar22->u).f.bitsize,pdVar22->visibility)" ( identifier , (field_expression "pdVar22->name" identifier -> field_identifier) , (field_expression "(ulong)(pdVar22->u).f.bitpos" (field_expression "(ulong)(pdVar22->u).f" (call_expression "(ulong)(pdVar22->u)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pdVar22->u)" ( (field_expression "pdVar22->u" identifier -> field_identifier) ))) . field_identifier) . field_identifier) , (field_expression "(ulong)(pdVar22->u).f.bitsize" (field_expression "(ulong)(pdVar22->u).f" (call_expression "(ulong)(pdVar22->u)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pdVar22->u)" ( (field_expression "pdVar22->u" identifier -> field_identifier) ))) . field_identifier) . field_identifier) , (field_expression "pdVar22->visibility" identifier -> field_identifier) )))) ;) }) (else_clause "else {\n                  iVar23 = (*fns->class_static_member)\n                                     (fhandle,pdVar22->name,(char *)pdVar22->u,pdVar22->visibility);\n                }" else (compound_statement "{\n                  iVar23 = (*fns->class_static_member)\n                                     (fhandle,pdVar22->name,(char *)pdVar22->u,pdVar22->visibility);\n                }" { (expression_statement "iVar23 = (*fns->class_static_member)\n                                     (fhandle,pdVar22->name,(char *)pdVar22->u,pdVar22->visibility);" (assignment_expression "iVar23 = (*fns->class_static_member)\n                                     (fhandle,pdVar22->name,(char *)pdVar22->u,pdVar22->visibility)" identifier = (call_expression "(*fns->class_static_member)\n                                     (fhandle,pdVar22->name,(char *)pdVar22->u,pdVar22->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,pdVar22->name,(char *)pdVar22->u,pdVar22->visibility)" ( identifier , (field_expression "pdVar22->name" identifier -> field_identifier) , (cast_expression "(char *)pdVar22->u" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "pdVar22->u" identifier -> field_identifier)) , (field_expression "pdVar22->visibility" identifier -> field_identifier) )))) ;) }))) (if_statement "if (iVar23 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pdVar11 = (type->u).kclass;" (assignment_expression "pdVar11 = (type->u).kclass" identifier = (field_expression "(type->u).kclass" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar15 = (ulong)((int)uVar15 + 1);" (assignment_expression "uVar15 = (ulong)((int)uVar15 + 1)" identifier = (call_expression "(ulong)((int)uVar15 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar15 + 1)" ( (binary_expression "(int)uVar15 + 1" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pdVar22 = pdVar11->fields[uVar15];" (assignment_expression "pdVar22 = pdVar11->fields[uVar15]" identifier = (subscript_expression "pdVar11->fields[uVar15]" (field_expression "pdVar11->fields" identifier -> field_identifier) [ identifier ])) ;) }) while (parenthesized_expression "(pdVar22 != (debug_field)0x0)" ( (binary_expression "pdVar22 != (debug_field)0x0" identifier != (cast_expression "(debug_field)0x0" ( (type_descriptor "debug_field" type_identifier) ) number_literal)) )) ;) })) (if_statement "if ((pdVar11->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar24 = *pdVar11->baseclasses, pdVar24 != (debug_baseclass)0x0)) {\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar24->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                bVar6 = (*fns->class_baseclass)\n                                  (fhandle,(ulong)pdVar24->bitpos,pdVar24->is_virtual,\n                                   pdVar24->visibility);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar24 = pdVar11->baseclasses[uVar15];\n              } while (pdVar24 != (debug_baseclass)0x0);\n            }" if (parenthesized_expression "((pdVar11->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar24 = *pdVar11->baseclasses, pdVar24 != (debug_baseclass)0x0))" ( (binary_expression "(pdVar11->baseclasses != (debug_baseclass *)0x0) &&\n               (pdVar24 = *pdVar11->baseclasses, pdVar24 != (debug_baseclass)0x0)" (parenthesized_expression "(pdVar11->baseclasses != (debug_baseclass *)0x0)" ( (binary_expression "pdVar11->baseclasses != (debug_baseclass *)0x0" (field_expression "pdVar11->baseclasses" identifier -> field_identifier) != (cast_expression "(debug_baseclass *)0x0" ( (type_descriptor "debug_baseclass *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pdVar24 = *pdVar11->baseclasses, pdVar24 != (debug_baseclass)0x0)" ( (comma_expression "pdVar24 = *pdVar11->baseclasses, pdVar24 != (debug_baseclass)0x0" (assignment_expression "pdVar24 = *pdVar11->baseclasses" identifier = (pointer_expression "*pdVar11->baseclasses" * (field_expression "pdVar11->baseclasses" identifier -> field_identifier))) , (binary_expression "pdVar24 != (debug_baseclass)0x0" identifier != (cast_expression "(debug_baseclass)0x0" ( (type_descriptor "debug_baseclass" type_identifier) ) number_literal))) ))) )) (compound_statement "{\n              uVar15 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar24->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                bVar6 = (*fns->class_baseclass)\n                                  (fhandle,(ulong)pdVar24->bitpos,pdVar24->is_virtual,\n                                   pdVar24->visibility);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar24 = pdVar11->baseclasses[uVar15];\n              } while (pdVar24 != (debug_baseclass)0x0);\n            }" { (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (do_statement "do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar24->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                bVar6 = (*fns->class_baseclass)\n                                  (fhandle,(ulong)pdVar24->bitpos,pdVar24->is_virtual,\n                                   pdVar24->visibility);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar24 = pdVar11->baseclasses[uVar15];\n              } while (pdVar24 != (debug_baseclass)0x0);" do (compound_statement "{\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar24->type,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                bVar6 = (*fns->class_baseclass)\n                                  (fhandle,(ulong)pdVar24->bitpos,pdVar24->is_virtual,\n                                   pdVar24->visibility);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar11 = (type->u).kclass;\n                uVar15 = (ulong)((int)uVar15 + 1);\n                pdVar24 = pdVar11->baseclasses[uVar15];\n              }" { (expression_statement "bVar6 = debug_write_type(info,fns,fhandle,pdVar24->type,(debug_name *)0x0);" (assignment_expression "bVar6 = debug_write_type(info,fns,fhandle,pdVar24->type,(debug_name *)0x0)" identifier = (call_expression "debug_write_type(info,fns,fhandle,pdVar24->type,(debug_name *)0x0)" identifier (argument_list "(info,fns,fhandle,pdVar24->type,(debug_name *)0x0)" ( identifier , identifier , identifier , (field_expression "pdVar24->type" identifier -> field_identifier) , (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (bVar6 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar6 = (*fns->class_baseclass)\n                                  (fhandle,(ulong)pdVar24->bitpos,pdVar24->is_virtual,\n                                   pdVar24->visibility);" (assignment_expression "bVar6 = (*fns->class_baseclass)\n                                  (fhandle,(ulong)pdVar24->bitpos,pdVar24->is_virtual,\n                                   pdVar24->visibility)" identifier = (call_expression "(*fns->class_baseclass)\n                                  (fhandle,(ulong)pdVar24->bitpos,pdVar24->is_virtual,\n                                   pdVar24->visibility)" (parenthesized_expression "(*fns->class_baseclass)" ( (pointer_expression "*fns->class_baseclass" * (field_expression "fns->class_baseclass" identifier -> field_identifier)) )) (argument_list "(fhandle,(ulong)pdVar24->bitpos,pdVar24->is_virtual,\n                                   pdVar24->visibility)" ( identifier , (cast_expression "(ulong)pdVar24->bitpos" ( (type_descriptor "ulong" type_identifier) ) (field_expression "pdVar24->bitpos" identifier -> field_identifier)) , (field_expression "pdVar24->is_virtual" identifier -> field_identifier) , (field_expression "pdVar24->visibility" identifier -> field_identifier) )))) ;) (if_statement "if (bVar6 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pdVar11 = (type->u).kclass;" (assignment_expression "pdVar11 = (type->u).kclass" identifier = (field_expression "(type->u).kclass" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar15 = (ulong)((int)uVar15 + 1);" (assignment_expression "uVar15 = (ulong)((int)uVar15 + 1)" identifier = (call_expression "(ulong)((int)uVar15 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar15 + 1)" ( (binary_expression "(int)uVar15 + 1" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pdVar24 = pdVar11->baseclasses[uVar15];" (assignment_expression "pdVar24 = pdVar11->baseclasses[uVar15]" identifier = (subscript_expression "pdVar11->baseclasses[uVar15]" (field_expression "pdVar11->baseclasses" identifier -> field_identifier) [ identifier ])) ;) }) while (parenthesized_expression "(pdVar24 != (debug_baseclass)0x0)" ( (binary_expression "pdVar24 != (debug_baseclass)0x0" identifier != (cast_expression "(debug_baseclass)0x0" ( (type_descriptor "debug_baseclass" type_identifier) ) number_literal)) )) ;) })) (if_statement "if ((pdVar11->methods != (debug_method *)0x0) &&\n               (local_48 = *pdVar11->methods, local_48 != (debug_method)0x0)) {\n              local_3c = 0;\n              do {\n                bVar6 = (*fns->class_start_method)(fhandle,local_48->name);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                uVar15 = 0;\n                pdVar5 = *local_48->variants;\n                while (pdVar5 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar5->context != (debug_type_s *)0x0) &&\n                     (bVar6 = debug_write_type(info,fns,fhandle,pdVar5->context,(debug_name *)0x0),\n                     bVar6 == 0)) {\n                    return 0;\n                  }\n                  bVar6 = debug_write_type(info,fns,fhandle,pdVar5->type,(debug_name *)0x0);\n                  if (bVar6 == 0) {\n                    return 0;\n                  }\n                  if (pdVar5->voffset == 0xffffffffffffffff) {\n                    iVar23 = (*fns->class_static_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep);\n                  }\n                  else {\n                    iVar23 = (*fns->class_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep,pdVar5->voffset,\n                                        (uint)(pdVar5->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar23 == 0) {\n                    return 0;\n                  }\n                  uVar15 = (ulong)((int)uVar15 + 1);\n                  pdVar5 = local_48->variants[uVar15];\n                }\n                bVar6 = (*fns->class_end_method)(fhandle);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = ((type->u).kclass)->methods[local_3c];\n              } while (local_48 != (debug_method)0x0);\n            }" if (parenthesized_expression "((pdVar11->methods != (debug_method *)0x0) &&\n               (local_48 = *pdVar11->methods, local_48 != (debug_method)0x0))" ( (binary_expression "(pdVar11->methods != (debug_method *)0x0) &&\n               (local_48 = *pdVar11->methods, local_48 != (debug_method)0x0)" (parenthesized_expression "(pdVar11->methods != (debug_method *)0x0)" ( (binary_expression "pdVar11->methods != (debug_method *)0x0" (field_expression "pdVar11->methods" identifier -> field_identifier) != (cast_expression "(debug_method *)0x0" ( (type_descriptor "debug_method *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_48 = *pdVar11->methods, local_48 != (debug_method)0x0)" ( (comma_expression "local_48 = *pdVar11->methods, local_48 != (debug_method)0x0" (assignment_expression "local_48 = *pdVar11->methods" identifier = (pointer_expression "*pdVar11->methods" * (field_expression "pdVar11->methods" identifier -> field_identifier))) , (binary_expression "local_48 != (debug_method)0x0" identifier != (cast_expression "(debug_method)0x0" ( (type_descriptor "debug_method" type_identifier) ) number_literal))) ))) )) (compound_statement "{\n              local_3c = 0;\n              do {\n                bVar6 = (*fns->class_start_method)(fhandle,local_48->name);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                uVar15 = 0;\n                pdVar5 = *local_48->variants;\n                while (pdVar5 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar5->context != (debug_type_s *)0x0) &&\n                     (bVar6 = debug_write_type(info,fns,fhandle,pdVar5->context,(debug_name *)0x0),\n                     bVar6 == 0)) {\n                    return 0;\n                  }\n                  bVar6 = debug_write_type(info,fns,fhandle,pdVar5->type,(debug_name *)0x0);\n                  if (bVar6 == 0) {\n                    return 0;\n                  }\n                  if (pdVar5->voffset == 0xffffffffffffffff) {\n                    iVar23 = (*fns->class_static_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep);\n                  }\n                  else {\n                    iVar23 = (*fns->class_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep,pdVar5->voffset,\n                                        (uint)(pdVar5->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar23 == 0) {\n                    return 0;\n                  }\n                  uVar15 = (ulong)((int)uVar15 + 1);\n                  pdVar5 = local_48->variants[uVar15];\n                }\n                bVar6 = (*fns->class_end_method)(fhandle);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = ((type->u).kclass)->methods[local_3c];\n              } while (local_48 != (debug_method)0x0);\n            }" { (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (do_statement "do {\n                bVar6 = (*fns->class_start_method)(fhandle,local_48->name);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                uVar15 = 0;\n                pdVar5 = *local_48->variants;\n                while (pdVar5 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar5->context != (debug_type_s *)0x0) &&\n                     (bVar6 = debug_write_type(info,fns,fhandle,pdVar5->context,(debug_name *)0x0),\n                     bVar6 == 0)) {\n                    return 0;\n                  }\n                  bVar6 = debug_write_type(info,fns,fhandle,pdVar5->type,(debug_name *)0x0);\n                  if (bVar6 == 0) {\n                    return 0;\n                  }\n                  if (pdVar5->voffset == 0xffffffffffffffff) {\n                    iVar23 = (*fns->class_static_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep);\n                  }\n                  else {\n                    iVar23 = (*fns->class_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep,pdVar5->voffset,\n                                        (uint)(pdVar5->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar23 == 0) {\n                    return 0;\n                  }\n                  uVar15 = (ulong)((int)uVar15 + 1);\n                  pdVar5 = local_48->variants[uVar15];\n                }\n                bVar6 = (*fns->class_end_method)(fhandle);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = ((type->u).kclass)->methods[local_3c];\n              } while (local_48 != (debug_method)0x0);" do (compound_statement "{\n                bVar6 = (*fns->class_start_method)(fhandle,local_48->name);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                uVar15 = 0;\n                pdVar5 = *local_48->variants;\n                while (pdVar5 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar5->context != (debug_type_s *)0x0) &&\n                     (bVar6 = debug_write_type(info,fns,fhandle,pdVar5->context,(debug_name *)0x0),\n                     bVar6 == 0)) {\n                    return 0;\n                  }\n                  bVar6 = debug_write_type(info,fns,fhandle,pdVar5->type,(debug_name *)0x0);\n                  if (bVar6 == 0) {\n                    return 0;\n                  }\n                  if (pdVar5->voffset == 0xffffffffffffffff) {\n                    iVar23 = (*fns->class_static_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep);\n                  }\n                  else {\n                    iVar23 = (*fns->class_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep,pdVar5->voffset,\n                                        (uint)(pdVar5->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar23 == 0) {\n                    return 0;\n                  }\n                  uVar15 = (ulong)((int)uVar15 + 1);\n                  pdVar5 = local_48->variants[uVar15];\n                }\n                bVar6 = (*fns->class_end_method)(fhandle);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = ((type->u).kclass)->methods[local_3c];\n              }" { (expression_statement "bVar6 = (*fns->class_start_method)(fhandle,local_48->name);" (assignment_expression "bVar6 = (*fns->class_start_method)(fhandle,local_48->name)" identifier = (call_expression "(*fns->class_start_method)(fhandle,local_48->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_48->name)" ( identifier , (field_expression "local_48->name" identifier -> field_identifier) )))) ;) (if_statement "if (bVar6 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (expression_statement "pdVar5 = *local_48->variants;" (assignment_expression "pdVar5 = *local_48->variants" identifier = (pointer_expression "*local_48->variants" * (field_expression "local_48->variants" identifier -> field_identifier))) ;) (while_statement "while (pdVar5 != (debug_method_variant_s *)0x0) {\n                  if ((pdVar5->context != (debug_type_s *)0x0) &&\n                     (bVar6 = debug_write_type(info,fns,fhandle,pdVar5->context,(debug_name *)0x0),\n                     bVar6 == 0)) {\n                    return 0;\n                  }\n                  bVar6 = debug_write_type(info,fns,fhandle,pdVar5->type,(debug_name *)0x0);\n                  if (bVar6 == 0) {\n                    return 0;\n                  }\n                  if (pdVar5->voffset == 0xffffffffffffffff) {\n                    iVar23 = (*fns->class_static_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep);\n                  }\n                  else {\n                    iVar23 = (*fns->class_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep,pdVar5->voffset,\n                                        (uint)(pdVar5->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar23 == 0) {\n                    return 0;\n                  }\n                  uVar15 = (ulong)((int)uVar15 + 1);\n                  pdVar5 = local_48->variants[uVar15];\n                }" while (parenthesized_expression "(pdVar5 != (debug_method_variant_s *)0x0)" ( (binary_expression "pdVar5 != (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 ((pdVar5->context != (debug_type_s *)0x0) &&\n                     (bVar6 = debug_write_type(info,fns,fhandle,pdVar5->context,(debug_name *)0x0),\n                     bVar6 == 0)) {\n                    return 0;\n                  }\n                  bVar6 = debug_write_type(info,fns,fhandle,pdVar5->type,(debug_name *)0x0);\n                  if (bVar6 == 0) {\n                    return 0;\n                  }\n                  if (pdVar5->voffset == 0xffffffffffffffff) {\n                    iVar23 = (*fns->class_static_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep);\n                  }\n                  else {\n                    iVar23 = (*fns->class_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep,pdVar5->voffset,\n                                        (uint)(pdVar5->context != (debug_type_s *)0x0));\n                  }\n                  if (iVar23 == 0) {\n                    return 0;\n                  }\n                  uVar15 = (ulong)((int)uVar15 + 1);\n                  pdVar5 = local_48->variants[uVar15];\n                }" { (if_statement "if ((pdVar5->context != (debug_type_s *)0x0) &&\n                     (bVar6 = debug_write_type(info,fns,fhandle,pdVar5->context,(debug_name *)0x0),\n                     bVar6 == 0)) {\n                    return 0;\n                  }" if (parenthesized_expression "((pdVar5->context != (debug_type_s *)0x0) &&\n                     (bVar6 = debug_write_type(info,fns,fhandle,pdVar5->context,(debug_name *)0x0),\n                     bVar6 == 0))" ( (binary_expression "(pdVar5->context != (debug_type_s *)0x0) &&\n                     (bVar6 = debug_write_type(info,fns,fhandle,pdVar5->context,(debug_name *)0x0),\n                     bVar6 == 0)" (parenthesized_expression "(pdVar5->context != (debug_type_s *)0x0)" ( (binary_expression "pdVar5->context != (debug_type_s *)0x0" (field_expression "pdVar5->context" identifier -> field_identifier) != (cast_expression "(debug_type_s *)0x0" ( (type_descriptor "debug_type_s *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(bVar6 = debug_write_type(info,fns,fhandle,pdVar5->context,(debug_name *)0x0),\n                     bVar6 == 0)" ( (comma_expression "bVar6 = debug_write_type(info,fns,fhandle,pdVar5->context,(debug_name *)0x0),\n                     bVar6 == 0" (assignment_expression "bVar6 = debug_write_type(info,fns,fhandle,pdVar5->context,(debug_name *)0x0)" identifier = (call_expression "debug_write_type(info,fns,fhandle,pdVar5->context,(debug_name *)0x0)" identifier (argument_list "(info,fns,fhandle,pdVar5->context,(debug_name *)0x0)" ( identifier , identifier , identifier , (field_expression "pdVar5->context" identifier -> field_identifier) , (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) , (binary_expression "bVar6 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                    return 0;\n                  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar6 = debug_write_type(info,fns,fhandle,pdVar5->type,(debug_name *)0x0);" (assignment_expression "bVar6 = debug_write_type(info,fns,fhandle,pdVar5->type,(debug_name *)0x0)" identifier = (call_expression "debug_write_type(info,fns,fhandle,pdVar5->type,(debug_name *)0x0)" identifier (argument_list "(info,fns,fhandle,pdVar5->type,(debug_name *)0x0)" ( identifier , identifier , identifier , (field_expression "pdVar5->type" identifier -> field_identifier) , (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (bVar6 == 0) {\n                    return 0;\n                  }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                    return 0;\n                  }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (pdVar5->voffset == 0xffffffffffffffff) {\n                    iVar23 = (*fns->class_static_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep);\n                  }\n                  else {\n                    iVar23 = (*fns->class_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep,pdVar5->voffset,\n                                        (uint)(pdVar5->context != (debug_type_s *)0x0));\n                  }" if (parenthesized_expression "(pdVar5->voffset == 0xffffffffffffffff)" ( (binary_expression "pdVar5->voffset == 0xffffffffffffffff" (field_expression "pdVar5->voffset" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n                    iVar23 = (*fns->class_static_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep);\n                  }" { (expression_statement "iVar23 = (*fns->class_static_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep);" (assignment_expression "iVar23 = (*fns->class_static_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep)" identifier = (call_expression "(*fns->class_static_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->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,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep)" ( identifier , (field_expression "pdVar5->physname" identifier -> field_identifier) , (field_expression "pdVar5->visibility" identifier -> field_identifier) , (field_expression "pdVar5->constp" identifier -> field_identifier) , (field_expression "pdVar5->volatilep" identifier -> field_identifier) )))) ;) }) (else_clause "else {\n                    iVar23 = (*fns->class_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep,pdVar5->voffset,\n                                        (uint)(pdVar5->context != (debug_type_s *)0x0));\n                  }" else (compound_statement "{\n                    iVar23 = (*fns->class_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep,pdVar5->voffset,\n                                        (uint)(pdVar5->context != (debug_type_s *)0x0));\n                  }" { (expression_statement "iVar23 = (*fns->class_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep,pdVar5->voffset,\n                                        (uint)(pdVar5->context != (debug_type_s *)0x0));" (assignment_expression "iVar23 = (*fns->class_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep,pdVar5->voffset,\n                                        (uint)(pdVar5->context != (debug_type_s *)0x0))" identifier = (call_expression "(*fns->class_method_variant)\n                                       (fhandle,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep,pdVar5->voffset,\n                                        (uint)(pdVar5->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,pdVar5->physname,pdVar5->visibility,pdVar5->constp,\n                                        pdVar5->volatilep,pdVar5->voffset,\n                                        (uint)(pdVar5->context != (debug_type_s *)0x0))" ( identifier , (field_expression "pdVar5->physname" identifier -> field_identifier) , (field_expression "pdVar5->visibility" identifier -> field_identifier) , (field_expression "pdVar5->constp" identifier -> field_identifier) , (field_expression "pdVar5->volatilep" identifier -> field_identifier) , (field_expression "pdVar5->voffset" identifier -> field_identifier) , (call_expression "(uint)(pdVar5->context != (debug_type_s *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pdVar5->context != (debug_type_s *)0x0)" ( (binary_expression "pdVar5->context != (debug_type_s *)0x0" (field_expression "pdVar5->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 (iVar23 == 0) {\n                    return 0;\n                  }" if (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) (compound_statement "{\n                    return 0;\n                  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar15 = (ulong)((int)uVar15 + 1);" (assignment_expression "uVar15 = (ulong)((int)uVar15 + 1)" identifier = (call_expression "(ulong)((int)uVar15 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar15 + 1)" ( (binary_expression "(int)uVar15 + 1" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pdVar5 = local_48->variants[uVar15];" (assignment_expression "pdVar5 = local_48->variants[uVar15]" identifier = (subscript_expression "local_48->variants[uVar15]" (field_expression "local_48->variants" identifier -> field_identifier) [ identifier ])) ;) })) (expression_statement "bVar6 = (*fns->class_end_method)(fhandle);" (assignment_expression "bVar6 = (*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 (bVar6 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "local_3c = local_3c + 1;" (assignment_expression "local_3c = local_3c + 1" identifier = (binary_expression "local_3c + 1" identifier + number_literal)) ;) (expression_statement "local_48 = ((type->u).kclass)->methods[local_3c];" (assignment_expression "local_48 = ((type->u).kclass)->methods[local_3c]" identifier = (subscript_expression "((type->u).kclass)->methods[local_3c]" (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_48 != (debug_method)0x0)" ( (binary_expression "local_48 != (debug_method)0x0" identifier != (cast_expression "(debug_method)0x0" ( (type_descriptor "debug_method" type_identifier) ) number_literal)) )) ;) })) })) (expression_statement "UNRECOVERED_JUMPTABLE_02 = fns->end_class_type;" (assignment_expression "UNRECOVERED_JUMPTABLE_02 = fns->end_class_type" identifier = (field_expression "fns->end_class_type" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0012bfcc;" goto statement_identifier ;)) (case_statement "case DEBUG_KIND_ENUM:\n          pdVar3 = (type->u).kenum;\n          pbVar14 = (bfd_signed_vma *)0x0;\n          ppcVar16 = (char **)0x0;\n          if (pdVar3 != (debug_enum_type *)0x0) {\n            pbVar14 = pdVar3->values;\n            ppcVar16 = pdVar3->names;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->enum_type)(fhandle,(char *)tag,ppcVar16,pbVar14);\n          return bVar6;" case identifier : (expression_statement "pdVar3 = (type->u).kenum;" (assignment_expression "pdVar3 = (type->u).kenum" identifier = (field_expression "(type->u).kenum" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pbVar14 = (bfd_signed_vma *)0x0;" (assignment_expression "pbVar14 = (bfd_signed_vma *)0x0" identifier = (cast_expression "(bfd_signed_vma *)0x0" ( (type_descriptor "bfd_signed_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppcVar16 = (char **)0x0;" (assignment_expression "ppcVar16 = (char **)0x0" identifier = (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (if_statement "if (pdVar3 != (debug_enum_type *)0x0) {\n            pbVar14 = pdVar3->values;\n            ppcVar16 = pdVar3->names;\n          }" if (parenthesized_expression "(pdVar3 != (debug_enum_type *)0x0)" ( (binary_expression "pdVar3 != (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            pbVar14 = pdVar3->values;\n            ppcVar16 = pdVar3->names;\n          }" { (expression_statement "pbVar14 = pdVar3->values;" (assignment_expression "pbVar14 = pdVar3->values" identifier = (field_expression "pdVar3->values" identifier -> field_identifier)) ;) (expression_statement "ppcVar16 = pdVar3->names;" (assignment_expression "ppcVar16 = pdVar3->names" identifier = (field_expression "pdVar3->names" identifier -> field_identifier)) ;) })) comment comment (expression_statement "bVar6 = (*fns->enum_type)(fhandle,(char *)tag,ppcVar16,pbVar14);" (assignment_expression "bVar6 = (*fns->enum_type)(fhandle,(char *)tag,ppcVar16,pbVar14)" identifier = (call_expression "(*fns->enum_type)(fhandle,(char *)tag,ppcVar16,pbVar14)" (parenthesized_expression "(*fns->enum_type)" ( (pointer_expression "*fns->enum_type" * (field_expression "fns->enum_type" identifier -> field_identifier)) )) (argument_list "(fhandle,(char *)tag,ppcVar16,pbVar14)" ( identifier , (cast_expression "(char *)tag" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier )))) ;) (return_statement "return bVar6;" return identifier ;)) (case_statement "case DEBUG_KIND_POINTER:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->pointer_type;\n          goto LAB_0012bfcc;" case identifier : (expression_statement "bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);" (assignment_expression "bVar6 = 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 (bVar6 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "UNRECOVERED_JUMPTABLE_02 = fns->pointer_type;" (assignment_expression "UNRECOVERED_JUMPTABLE_02 = fns->pointer_type" identifier = (field_expression "fns->pointer_type" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0012bfcc;" goto statement_identifier ;)) (case_statement "case DEBUG_KIND_FUNCTION:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar8 = (type->u).kfunction;\n          if (pdVar8->arg_types == (debug_type_conflict *)0x0) {\n            uVar17 = 0xffffffff;\n          }\n          else {\n            pdVar10 = *pdVar8->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              uVar17 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar8 = (type->u).kfunction;\n                uVar17 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar8->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }\n          bVar6 = pdVar8->varargs;\n          UNRECOVERED_JUMPTABLE_01 =\n               (_func_bfd_boolean_void_ptr_uint_bfd_boolean *)fns->function_type;\nLAB_0012c31a:\n                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*UNRECOVERED_JUMPTABLE_01)(fhandle,uVar17,bVar6);\n          return bVar6;" case identifier : (expression_statement "bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);" (assignment_expression "bVar6 = 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 (bVar6 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pdVar8 = (type->u).kfunction;" (assignment_expression "pdVar8 = (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 (pdVar8->arg_types == (debug_type_conflict *)0x0) {\n            uVar17 = 0xffffffff;\n          }\n          else {\n            pdVar10 = *pdVar8->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              uVar17 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar8 = (type->u).kfunction;\n                uVar17 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar8->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }" if (parenthesized_expression "(pdVar8->arg_types == (debug_type_conflict *)0x0)" ( (binary_expression "pdVar8->arg_types == (debug_type_conflict *)0x0" (field_expression "pdVar8->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            uVar17 = 0xffffffff;\n          }" { (expression_statement "uVar17 = 0xffffffff;" (assignment_expression "uVar17 = 0xffffffff" identifier = number_literal) ;) }) (else_clause "else {\n            pdVar10 = *pdVar8->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              uVar17 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar8 = (type->u).kfunction;\n                uVar17 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar8->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }" else (compound_statement "{\n            pdVar10 = *pdVar8->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              uVar17 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar8 = (type->u).kfunction;\n                uVar17 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar8->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }" { (expression_statement "pdVar10 = *pdVar8->arg_types;" (assignment_expression "pdVar10 = *pdVar8->arg_types" identifier = (pointer_expression "*pdVar8->arg_types" * (field_expression "pdVar8->arg_types" identifier -> field_identifier))) ;) (if_statement "if (pdVar10 == (debug_type_s *)0x0) {\n              uVar17 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar8 = (type->u).kfunction;\n                uVar17 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar8->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\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              uVar17 = 0;\n            }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar8 = (type->u).kfunction;\n                uVar17 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar8->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }" else (compound_statement "{\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar8 = (type->u).kfunction;\n                uVar17 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar8->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }" { (expression_statement "lVar21 = 0;" (assignment_expression "lVar21 = 0" identifier = number_literal) ;) (do_statement "do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar8 = (type->u).kfunction;\n                uVar17 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar8->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);" do (compound_statement "{\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar8 = (type->u).kfunction;\n                uVar17 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar8->arg_types[lVar21];\n              }" { (expression_statement "bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);" (assignment_expression "bVar6 = 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 (bVar6 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pdVar8 = (type->u).kfunction;" (assignment_expression "pdVar8 = (type->u).kfunction" identifier = (field_expression "(type->u).kfunction" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar17 = (int)lVar21 + 1;" (assignment_expression "uVar17 = (int)lVar21 + 1" identifier = (binary_expression "(int)lVar21 + 1" (cast_expression "(int)lVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "lVar21 = lVar21 + 1;" (assignment_expression "lVar21 = lVar21 + 1" identifier = (binary_expression "lVar21 + 1" identifier + number_literal)) ;) (expression_statement "pdVar10 = pdVar8->arg_types[lVar21];" (assignment_expression "pdVar10 = pdVar8->arg_types[lVar21]" identifier = (subscript_expression "pdVar8->arg_types[lVar21]" (field_expression "pdVar8->arg_types" identifier -> field_identifier) [ identifier ])) ;) }) 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)) )) ;) }))) }))) (expression_statement "bVar6 = pdVar8->varargs;" (assignment_expression "bVar6 = pdVar8->varargs" identifier = (field_expression "pdVar8->varargs" identifier -> field_identifier)) ;) (expression_statement "UNRECOVERED_JUMPTABLE_01 =\n               (_func_bfd_boolean_void_ptr_uint_bfd_boolean *)fns->function_type;" (assignment_expression "UNRECOVERED_JUMPTABLE_01 =\n               (_func_bfd_boolean_void_ptr_uint_bfd_boolean *)fns->function_type" identifier = (cast_expression "(_func_bfd_boolean_void_ptr_uint_bfd_boolean *)fns->function_type" ( (type_descriptor "_func_bfd_boolean_void_ptr_uint_bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "fns->function_type" identifier -> field_identifier))) ;) (labeled_statement "LAB_0012c31a:\n                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*UNRECOVERED_JUMPTABLE_01)(fhandle,uVar17,bVar6);" statement_identifier : comment comment (expression_statement "bVar6 = (*UNRECOVERED_JUMPTABLE_01)(fhandle,uVar17,bVar6);" (assignment_expression "bVar6 = (*UNRECOVERED_JUMPTABLE_01)(fhandle,uVar17,bVar6)" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE_01)(fhandle,uVar17,bVar6)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE_01)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE_01" * identifier) )) (argument_list "(fhandle,uVar17,bVar6)" ( identifier , identifier , identifier )))) ;)) (return_statement "return bVar6;" return identifier ;)) (case_statement "case DEBUG_KIND_REFERENCE:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->reference_type;\n          goto LAB_0012bfcc;" case identifier : (expression_statement "bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);" (assignment_expression "bVar6 = 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 (bVar6 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "UNRECOVERED_JUMPTABLE_02 = fns->reference_type;" (assignment_expression "UNRECOVERED_JUMPTABLE_02 = fns->reference_type" identifier = (field_expression "fns->reference_type" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0012bfcc;" goto statement_identifier ;)) (case_statement "case DEBUG_KIND_RANGE:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);\n          return bVar6;" case identifier : (expression_statement "bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);" (assignment_expression "bVar6 = 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 (bVar6 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) comment comment (expression_statement "bVar6 = (*fns->range_type)(fhandle,((type->u).krange)->lower,((type->u).krange)->upper);" (assignment_expression "bVar6 = (*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 bVar6;" return identifier ;)) (case_statement "case DEBUG_KIND_ARRAY:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)\n          ;\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar2 = (type->u).karray;\n                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->array_type)(fhandle,pdVar2->lower,pdVar2->upper,pdVar2->stringp);\n          return bVar6;" case identifier : (expression_statement "bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);" (assignment_expression "bVar6 = 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 (bVar6 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)\n          ;" (assignment_expression "bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)" identifier = (call_expression "debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)" identifier (argument_list "(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)" ( identifier , identifier , identifier , (field_expression "((type->u).kpointer)->pointer" (parenthesized_expression "((type->u).kpointer)" ( (field_expression "(type->u).kpointer" (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 (bVar6 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pdVar2 = (type->u).karray;" (assignment_expression "pdVar2 = (type->u).karray" identifier = (field_expression "(type->u).karray" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier)) ;) comment comment (expression_statement "bVar6 = (*fns->array_type)(fhandle,pdVar2->lower,pdVar2->upper,pdVar2->stringp);" (assignment_expression "bVar6 = (*fns->array_type)(fhandle,pdVar2->lower,pdVar2->upper,pdVar2->stringp)" identifier = (call_expression "(*fns->array_type)(fhandle,pdVar2->lower,pdVar2->upper,pdVar2->stringp)" (parenthesized_expression "(*fns->array_type)" ( (pointer_expression "*fns->array_type" * (field_expression "fns->array_type" identifier -> field_identifier)) )) (argument_list "(fhandle,pdVar2->lower,pdVar2->upper,pdVar2->stringp)" ( identifier , (field_expression "pdVar2->lower" identifier -> field_identifier) , (field_expression "pdVar2->upper" identifier -> field_identifier) , (field_expression "pdVar2->stringp" identifier -> field_identifier) )))) ;) (return_statement "return bVar6;" return identifier ;)) (case_statement "case DEBUG_KIND_SET:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          uVar17 = ((type->u).kclass)->mark;\n          UNRECOVERED_JUMPTABLE_00 = (_func_bfd_boolean_void_ptr_uint *)fns->set_type;\n          break;" case identifier : (expression_statement "bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);" (assignment_expression "bVar6 = 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 (bVar6 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar17 = ((type->u).kclass)->mark;" (assignment_expression "uVar17 = ((type->u).kclass)->mark" identifier = (field_expression "((type->u).kclass)->mark" (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)) ;) (expression_statement "UNRECOVERED_JUMPTABLE_00 = (_func_bfd_boolean_void_ptr_uint *)fns->set_type;" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = (_func_bfd_boolean_void_ptr_uint *)fns->set_type" identifier = (cast_expression "(_func_bfd_boolean_void_ptr_uint *)fns->set_type" ( (type_descriptor "_func_bfd_boolean_void_ptr_uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "fns->set_type" identifier -> field_identifier))) ;) (break_statement "break;" break ;)) (case_statement "case DEBUG_KIND_OFFSET:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)\n          ;\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->offset_type;\n          goto LAB_0012bfcc;" case identifier : (expression_statement "bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);" (assignment_expression "bVar6 = 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 (bVar6 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)\n          ;" (assignment_expression "bVar6 = debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)" identifier = (call_expression "debug_write_type(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)" identifier (argument_list "(info,fns,fhandle,((type->u).kpointer)->pointer,(debug_name *)0x0)" ( identifier , identifier , identifier , (field_expression "((type->u).kpointer)->pointer" (parenthesized_expression "((type->u).kpointer)" ( (field_expression "(type->u).kpointer" (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 (bVar6 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "UNRECOVERED_JUMPTABLE_02 = fns->offset_type;" (assignment_expression "UNRECOVERED_JUMPTABLE_02 = fns->offset_type" identifier = (field_expression "fns->offset_type" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0012bfcc;" goto statement_identifier ;)) (case_statement "case DEBUG_KIND_METHOD:\n          bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          pdVar7 = (type->u).kmethod;\n          if (pdVar7->arg_types == (debug_type_conflict *)0x0) {\n            iVar23 = -1;\n          }\n          else {\n            pdVar10 = *pdVar7->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              iVar23 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar7 = (type->u).kmethod;\n                iVar23 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar7->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }\n          pdVar10 = pdVar7->domain_type;\n          if (pdVar10 != (debug_type_s *)0x0) {\n            bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar6 == 0) {\n              return 0;\n            }\n            pdVar7 = (type->u).kmethod;\n            pdVar10 = pdVar7->domain_type;\n          }\n                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          bVar6 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar23,\n                                      pdVar7->varargs);\n          return bVar6;" case identifier : (expression_statement "bVar6 = debug_write_type(info,fns,fhandle,((type->u).kfunction)->return_type,\n                                   (debug_name *)0x0);" (assignment_expression "bVar6 = 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 (bVar6 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pdVar7 = (type->u).kmethod;" (assignment_expression "pdVar7 = (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 (pdVar7->arg_types == (debug_type_conflict *)0x0) {\n            iVar23 = -1;\n          }\n          else {\n            pdVar10 = *pdVar7->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              iVar23 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar7 = (type->u).kmethod;\n                iVar23 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar7->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }" if (parenthesized_expression "(pdVar7->arg_types == (debug_type_conflict *)0x0)" ( (binary_expression "pdVar7->arg_types == (debug_type_conflict *)0x0" (field_expression "pdVar7->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            iVar23 = -1;\n          }" { (expression_statement "iVar23 = -1;" (assignment_expression "iVar23 = -1" identifier = number_literal) ;) }) (else_clause "else {\n            pdVar10 = *pdVar7->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              iVar23 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar7 = (type->u).kmethod;\n                iVar23 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar7->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }" else (compound_statement "{\n            pdVar10 = *pdVar7->arg_types;\n            if (pdVar10 == (debug_type_s *)0x0) {\n              iVar23 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar7 = (type->u).kmethod;\n                iVar23 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar7->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }\n          }" { (expression_statement "pdVar10 = *pdVar7->arg_types;" (assignment_expression "pdVar10 = *pdVar7->arg_types" identifier = (pointer_expression "*pdVar7->arg_types" * (field_expression "pdVar7->arg_types" identifier -> field_identifier))) ;) (if_statement "if (pdVar10 == (debug_type_s *)0x0) {\n              iVar23 = 0;\n            }\n            else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar7 = (type->u).kmethod;\n                iVar23 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar7->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\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              iVar23 = 0;\n            }" { (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar7 = (type->u).kmethod;\n                iVar23 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar7->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }" else (compound_statement "{\n              lVar21 = 0;\n              do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar7 = (type->u).kmethod;\n                iVar23 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar7->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);\n            }" { (expression_statement "lVar21 = 0;" (assignment_expression "lVar21 = 0" identifier = number_literal) ;) (do_statement "do {\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar7 = (type->u).kmethod;\n                iVar23 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar7->arg_types[lVar21];\n              } while (pdVar10 != (debug_type_s *)0x0);" do (compound_statement "{\n                bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n                if (bVar6 == 0) {\n                  return 0;\n                }\n                pdVar7 = (type->u).kmethod;\n                iVar23 = (int)lVar21 + 1;\n                lVar21 = lVar21 + 1;\n                pdVar10 = pdVar7->arg_types[lVar21];\n              }" { (expression_statement "bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);" (assignment_expression "bVar6 = 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 (bVar6 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pdVar7 = (type->u).kmethod;" (assignment_expression "pdVar7 = (type->u).kmethod" identifier = (field_expression "(type->u).kmethod" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar23 = (int)lVar21 + 1;" (assignment_expression "iVar23 = (int)lVar21 + 1" identifier = (binary_expression "(int)lVar21 + 1" (cast_expression "(int)lVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "lVar21 = lVar21 + 1;" (assignment_expression "lVar21 = lVar21 + 1" identifier = (binary_expression "lVar21 + 1" identifier + number_literal)) ;) (expression_statement "pdVar10 = pdVar7->arg_types[lVar21];" (assignment_expression "pdVar10 = pdVar7->arg_types[lVar21]" identifier = (subscript_expression "pdVar7->arg_types[lVar21]" (field_expression "pdVar7->arg_types" identifier -> field_identifier) [ identifier ])) ;) }) 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)) )) ;) }))) }))) (expression_statement "pdVar10 = pdVar7->domain_type;" (assignment_expression "pdVar10 = pdVar7->domain_type" identifier = (field_expression "pdVar7->domain_type" identifier -> field_identifier)) ;) (if_statement "if (pdVar10 != (debug_type_s *)0x0) {\n            bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar6 == 0) {\n              return 0;\n            }\n            pdVar7 = (type->u).kmethod;\n            pdVar10 = pdVar7->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            bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);\n            if (bVar6 == 0) {\n              return 0;\n            }\n            pdVar7 = (type->u).kmethod;\n            pdVar10 = pdVar7->domain_type;\n          }" { (expression_statement "bVar6 = debug_write_type(info,fns,fhandle,pdVar10,(debug_name *)0x0);" (assignment_expression "bVar6 = 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 (bVar6 == 0) {\n              return 0;\n            }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pdVar7 = (type->u).kmethod;" (assignment_expression "pdVar7 = (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 = pdVar7->domain_type;" (assignment_expression "pdVar10 = pdVar7->domain_type" identifier = (field_expression "pdVar7->domain_type" identifier -> field_identifier)) ;) })) comment comment (expression_statement "bVar6 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar23,\n                                      pdVar7->varargs);" (assignment_expression "bVar6 = (*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar23,\n                                      pdVar7->varargs)" identifier = (call_expression "(*fns->method_type)(fhandle,(uint)(pdVar10 != (debug_type_s *)0x0),iVar23,\n                                      pdVar7->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),iVar23,\n                                      pdVar7->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 "pdVar7->varargs" identifier -> field_identifier) )))) ;) (return_statement "return bVar6;" return identifier ;)) (case_statement "case DEBUG_KIND_CONST:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->const_type;\n          goto LAB_0012bfcc;" case identifier : (expression_statement "bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);" (assignment_expression "bVar6 = 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 (bVar6 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "UNRECOVERED_JUMPTABLE_02 = fns->const_type;" (assignment_expression "UNRECOVERED_JUMPTABLE_02 = fns->const_type" identifier = (field_expression "fns->const_type" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0012bfcc;" goto statement_identifier ;)) (case_statement "case DEBUG_KIND_VOLATILE:\n          bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);\n          if (bVar6 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_02 = fns->volatile_type;\n          goto LAB_0012bfcc;" case identifier : (expression_statement "bVar6 = debug_write_type(info,fns,fhandle,(type->u).kpointer,(debug_name *)0x0);" (assignment_expression "bVar6 = 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 (bVar6 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "UNRECOVERED_JUMPTABLE_02 = fns->volatile_type;" (assignment_expression "UNRECOVERED_JUMPTABLE_02 = fns->volatile_type" identifier = (field_expression "fns->volatile_type" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0012bfcc;" goto statement_identifier ;)) (case_statement "case DEBUG_KIND_NAMED:\n          goto switchD_0012bc67_caseD_16;" case identifier : (goto_statement "goto switchD_0012bc67_caseD_16;" goto statement_identifier ;)) (case_statement "case DEBUG_KIND_TAGGED:\nswitchD_0012bc67_caseD_17:\n          pdVar18 = (type->u).knamed;\n          name = pdVar18->name;\n          goto LAB_0012bc96;" case identifier : (labeled_statement "switchD_0012bc67_caseD_17:\n          pdVar18 = (type->u).knamed;" statement_identifier : (expression_statement "pdVar18 = (type->u).knamed;" (assignment_expression "pdVar18 = (type->u).knamed" identifier = (field_expression "(type->u).knamed" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier)) ;)) (expression_statement "name = pdVar18->name;" (assignment_expression "name = pdVar18->name" identifier = (field_expression "pdVar18->name" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0012bc96;" 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 "()" ( ))) ;)) }))) comment comment (expression_statement "bVar6 = (*UNRECOVERED_JUMPTABLE_00)(fhandle,uVar17);" (assignment_expression "bVar6 = (*UNRECOVERED_JUMPTABLE_00)(fhandle,uVar17)" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE_00)(fhandle,uVar17)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE_00)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE_00" * identifier) )) (argument_list "(fhandle,uVar17)" ( identifier , identifier )))) ;) (return_statement "return bVar6;" 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 (dVar13 != DEBUG_KIND_NAMED) {\n        if (dVar13 != 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          tag = (debug_type)name->name;\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }" if (parenthesized_expression "(dVar13 != DEBUG_KIND_NAMED)" ( (binary_expression "dVar13 != DEBUG_KIND_NAMED" identifier != identifier) )) (compound_statement "{\n        if (dVar13 != 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          tag = (debug_type)name->name;\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }" { (if_statement "if (dVar13 != 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          tag = (debug_type)name->name;\n          goto LAB_0012bc55;\n        }" if (parenthesized_expression "(dVar13 != DEBUG_KIND_TAGGED)" ( (binary_expression "dVar13 != 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          tag = (debug_type)name->name;\n          goto LAB_0012bc55;\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 "tag = (debug_type)name->name;" (assignment_expression "tag = (debug_type)name->name" identifier = (cast_expression "(debug_type)name->name" ( (type_descriptor "debug_type" type_identifier) ) (field_expression "name->name" identifier -> field_identifier))) ;) (goto_statement "goto LAB_0012bc55;" goto statement_identifier ;) })) (goto_statement "goto switchD_0012bc67_caseD_17;" goto statement_identifier ;) })) (labeled_statement "switchD_0012bc67_caseD_16:\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 "pdVar18 = (type->u).knamed;" (assignment_expression "pdVar18 = (type->u).knamed" identifier = (field_expression "(type->u).knamed" (parenthesized_expression "(type->u)" ( (field_expression "type->u" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pdVar1 = pdVar18->name;" (assignment_expression "pdVar1 = pdVar18->name" identifier = (field_expression "pdVar18->name" identifier -> field_identifier)) ;) (if_statement "if (pdVar1->mark == info->mark) {\n      if (dVar13 == DEBUG_KIND_NAMED) {\n                    /* WARNING: Could not recover jumptable at 0x0012c67f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        bVar6 = (*fns->typedef_type)(fhandle,pdVar1->name);\n        return bVar6;\n      }\nLAB_0012c43d:\n      pdVar10 = debug_get_real_type(info,type,(debug_type_real_list *)0x0);\n      if (pdVar10 != (debug_type_s *)0x0) {\n        dVar13 = pdVar10->kind;\n        tag = (debug_type)((type->u).knamed)->name->name;\n        if ((dVar13 - DEBUG_KIND_STRUCT < 4) && ((pdVar10->u).kclass != (debug_class_type *)0x0)) {\n          uVar17 = ((pdVar10->u).kclass)->id;\n          if (uVar17 <= info->base_id) {\n            bVar6 = debug_set_class_id(info,(char *)tag,pdVar10);\n            if (bVar6 == 0) {\n              return 0;\n            }\n            dVar13 = pdVar10->kind;\n            uVar17 = ((pdVar10->u).kclass)->id;\n            tag = ((type->u).kfunction)->return_type->pointer;\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        UNRECOVERED_JUMPTABLE = fns->tag_type;\n        goto LAB_0012c3c5;\n      }\n      goto LAB_0012bff3;\n    }" if (parenthesized_expression "(pdVar1->mark == info->mark)" ( (binary_expression "pdVar1->mark == info->mark" (field_expression "pdVar1->mark" identifier -> field_identifier) == (field_expression "info->mark" identifier -> field_identifier)) )) (compound_statement "{\n      if (dVar13 == DEBUG_KIND_NAMED) {\n                    /* WARNING: Could not recover jumptable at 0x0012c67f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        bVar6 = (*fns->typedef_type)(fhandle,pdVar1->name);\n        return bVar6;\n      }\nLAB_0012c43d:\n      pdVar10 = debug_get_real_type(info,type,(debug_type_real_list *)0x0);\n      if (pdVar10 != (debug_type_s *)0x0) {\n        dVar13 = pdVar10->kind;\n        tag = (debug_type)((type->u).knamed)->name->name;\n        if ((dVar13 - DEBUG_KIND_STRUCT < 4) && ((pdVar10->u).kclass != (debug_class_type *)0x0)) {\n          uVar17 = ((pdVar10->u).kclass)->id;\n          if (uVar17 <= info->base_id) {\n            bVar6 = debug_set_class_id(info,(char *)tag,pdVar10);\n            if (bVar6 == 0) {\n              return 0;\n            }\n            dVar13 = pdVar10->kind;\n            uVar17 = ((pdVar10->u).kclass)->id;\n            tag = ((type->u).kfunction)->return_type->pointer;\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        UNRECOVERED_JUMPTABLE = fns->tag_type;\n        goto LAB_0012c3c5;\n      }\n      goto LAB_0012bff3;\n    }" { (if_statement "if (dVar13 == DEBUG_KIND_NAMED) {\n                    /* WARNING: Could not recover jumptable at 0x0012c67f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        bVar6 = (*fns->typedef_type)(fhandle,pdVar1->name);\n        return bVar6;\n      }" if (parenthesized_expression "(dVar13 == DEBUG_KIND_NAMED)" ( (binary_expression "dVar13 == DEBUG_KIND_NAMED" identifier == identifier) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0012c67f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        bVar6 = (*fns->typedef_type)(fhandle,pdVar1->name);\n        return bVar6;\n      }" { comment comment (expression_statement "bVar6 = (*fns->typedef_type)(fhandle,pdVar1->name);" (assignment_expression "bVar6 = (*fns->typedef_type)(fhandle,pdVar1->name)" identifier = (call_expression "(*fns->typedef_type)(fhandle,pdVar1->name)" (parenthesized_expression "(*fns->typedef_type)" ( (pointer_expression "*fns->typedef_type" * (field_expression "fns->typedef_type" identifier -> field_identifier)) )) (argument_list "(fhandle,pdVar1->name)" ( identifier , (field_expression "pdVar1->name" identifier -> field_identifier) )))) ;) (return_statement "return bVar6;" return identifier ;) })) (labeled_statement "LAB_0012c43d:\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        dVar13 = pdVar10->kind;\n        tag = (debug_type)((type->u).knamed)->name->name;\n        if ((dVar13 - DEBUG_KIND_STRUCT < 4) && ((pdVar10->u).kclass != (debug_class_type *)0x0)) {\n          uVar17 = ((pdVar10->u).kclass)->id;\n          if (uVar17 <= info->base_id) {\n            bVar6 = debug_set_class_id(info,(char *)tag,pdVar10);\n            if (bVar6 == 0) {\n              return 0;\n            }\n            dVar13 = pdVar10->kind;\n            uVar17 = ((pdVar10->u).kclass)->id;\n            tag = ((type->u).kfunction)->return_type->pointer;\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        UNRECOVERED_JUMPTABLE = fns->tag_type;\n        goto LAB_0012c3c5;\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        dVar13 = pdVar10->kind;\n        tag = (debug_type)((type->u).knamed)->name->name;\n        if ((dVar13 - DEBUG_KIND_STRUCT < 4) && ((pdVar10->u).kclass != (debug_class_type *)0x0)) {\n          uVar17 = ((pdVar10->u).kclass)->id;\n          if (uVar17 <= info->base_id) {\n            bVar6 = debug_set_class_id(info,(char *)tag,pdVar10);\n            if (bVar6 == 0) {\n              return 0;\n            }\n            dVar13 = pdVar10->kind;\n            uVar17 = ((pdVar10->u).kclass)->id;\n            tag = ((type->u).kfunction)->return_type->pointer;\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        UNRECOVERED_JUMPTABLE = fns->tag_type;\n        goto LAB_0012c3c5;\n      }" { (expression_statement "dVar13 = pdVar10->kind;" (assignment_expression "dVar13 = pdVar10->kind" identifier = (field_expression "pdVar10->kind" identifier -> field_identifier)) ;) (expression_statement "tag = (debug_type)((type->u).knamed)->name->name;" (assignment_expression "tag = (debug_type)((type->u).knamed)->name->name" identifier = (field_expression "(debug_type)((type->u).knamed)->name->name" (field_expression "(debug_type)((type->u).knamed)->name" (call_expression "(debug_type)((type->u).knamed)" (parenthesized_expression "(debug_type)" ( identifier )) (argument_list "((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 ((dVar13 - DEBUG_KIND_STRUCT < 4) && ((pdVar10->u).kclass != (debug_class_type *)0x0)) {\n          uVar17 = ((pdVar10->u).kclass)->id;\n          if (uVar17 <= info->base_id) {\n            bVar6 = debug_set_class_id(info,(char *)tag,pdVar10);\n            if (bVar6 == 0) {\n              return 0;\n            }\n            dVar13 = pdVar10->kind;\n            uVar17 = ((pdVar10->u).kclass)->id;\n            tag = ((type->u).kfunction)->return_type->pointer;\n          }\n        }\n        else {\n          uVar17 = 0;\n        }" if (parenthesized_expression "((dVar13 - DEBUG_KIND_STRUCT < 4) && ((pdVar10->u).kclass != (debug_class_type *)0x0))" ( (binary_expression "(dVar13 - DEBUG_KIND_STRUCT < 4) && ((pdVar10->u).kclass != (debug_class_type *)0x0)" (parenthesized_expression "(dVar13 - DEBUG_KIND_STRUCT < 4)" ( (binary_expression "dVar13 - DEBUG_KIND_STRUCT < 4" (binary_expression "dVar13 - 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          uVar17 = ((pdVar10->u).kclass)->id;\n          if (uVar17 <= info->base_id) {\n            bVar6 = debug_set_class_id(info,(char *)tag,pdVar10);\n            if (bVar6 == 0) {\n              return 0;\n            }\n            dVar13 = pdVar10->kind;\n            uVar17 = ((pdVar10->u).kclass)->id;\n            tag = ((type->u).kfunction)->return_type->pointer;\n          }\n        }" { (expression_statement "uVar17 = ((pdVar10->u).kclass)->id;" (assignment_expression "uVar17 = ((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 (uVar17 <= info->base_id) {\n            bVar6 = debug_set_class_id(info,(char *)tag,pdVar10);\n            if (bVar6 == 0) {\n              return 0;\n            }\n            dVar13 = pdVar10->kind;\n            uVar17 = ((pdVar10->u).kclass)->id;\n            tag = ((type->u).kfunction)->return_type->pointer;\n          }" if (parenthesized_expression "(uVar17 <= info->base_id)" ( (binary_expression "uVar17 <= info->base_id" identifier <= (field_expression "info->base_id" identifier -> field_identifier)) )) (compound_statement "{\n            bVar6 = debug_set_class_id(info,(char *)tag,pdVar10);\n            if (bVar6 == 0) {\n              return 0;\n            }\n            dVar13 = pdVar10->kind;\n            uVar17 = ((pdVar10->u).kclass)->id;\n            tag = ((type->u).kfunction)->return_type->pointer;\n          }" { (expression_statement "bVar6 = debug_set_class_id(info,(char *)tag,pdVar10);" (assignment_expression "bVar6 = debug_set_class_id(info,(char *)tag,pdVar10)" identifier = (call_expression "debug_set_class_id(info,(char *)tag,pdVar10)" identifier (argument_list "(info,(char *)tag,pdVar10)" ( identifier , (cast_expression "(char *)tag" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (bVar6 == 0) {\n              return 0;\n            }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "dVar13 = pdVar10->kind;" (assignment_expression "dVar13 = pdVar10->kind" identifier = (field_expression "pdVar10->kind" identifier -> field_identifier)) ;) (expression_statement "uVar17 = ((pdVar10->u).kclass)->id;" (assignment_expression "uVar17 = ((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 "tag = ((type->u).kfunction)->return_type->pointer;" (assignment_expression "tag = ((type->u).kfunction)->return_type->pointer" identifier = (field_expression "((type->u).kfunction)->return_type->pointer" (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) -> field_identifier)) ;) })) }) (else_clause "else {\n          uVar17 = 0;\n        }" else (compound_statement "{\n          uVar17 = 0;\n        }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) }))) (expression_statement "UNRECOVERED_JUMPTABLE = fns->tag_type;" (assignment_expression "UNRECOVERED_JUMPTABLE = fns->tag_type" identifier = (field_expression "fns->tag_type" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0012c3c5;" goto statement_identifier ;) })) (goto_statement "goto LAB_0012bff3;" goto statement_identifier ;) })) (if_statement "if (dVar13 != DEBUG_KIND_TAGGED) goto LAB_0012bc2b;" if (parenthesized_expression "(dVar13 != DEBUG_KIND_TAGGED)" ( (binary_expression "dVar13 != DEBUG_KIND_TAGGED" identifier != identifier) )) (goto_statement "goto LAB_0012bc2b;" goto statement_identifier ;)) (if_statement "if (pdVar1 != name) goto LAB_0012c43d;" if (parenthesized_expression "(pdVar1 != name)" ( (binary_expression "pdVar1 != name" identifier != identifier) )) (goto_statement "goto LAB_0012c43d;" 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_0012bc96:\n    type = pdVar18->type;" statement_identifier : (expression_statement "type = pdVar18->type;" (assignment_expression "type = pdVar18->type" identifier = (field_expression "pdVar18->type" identifier -> field_identifier)) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) (labeled_statement "switchD_0012bc67_caseD_1:\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_0012bff3:\n    UNRECOVERED_JUMPTABLE_02 = fns->empty_type;\nLAB_0012bfcc:\n                    /* WARNING: Could not recover jumptable at 0x0012bfdd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    bVar6 = (*UNRECOVERED_JUMPTABLE_02)(fhandle);\n    return bVar6;\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_0012bff3:\n    UNRECOVERED_JUMPTABLE_02 = fns->empty_type;\nLAB_0012bfcc:\n                    /* WARNING: Could not recover jumptable at 0x0012bfdd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    bVar6 = (*UNRECOVERED_JUMPTABLE_02)(fhandle);\n    return bVar6;\n  }" { (labeled_statement "LAB_0012bff3:\n    UNRECOVERED_JUMPTABLE_02 = fns->empty_type;" statement_identifier : (expression_statement "UNRECOVERED_JUMPTABLE_02 = fns->empty_type;" (assignment_expression "UNRECOVERED_JUMPTABLE_02 = fns->empty_type" identifier = (field_expression "fns->empty_type" identifier -> field_identifier)) ;)) (labeled_statement "LAB_0012bfcc:\n                    /* WARNING: Could not recover jumptable at 0x0012bfdd. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    bVar6 = (*UNRECOVERED_JUMPTABLE_02)(fhandle);" statement_identifier : comment comment (expression_statement "bVar6 = (*UNRECOVERED_JUMPTABLE_02)(fhandle);" (assignment_expression "bVar6 = (*UNRECOVERED_JUMPTABLE_02)(fhandle)" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE_02)(fhandle)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE_02)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE_02" * identifier) )) (argument_list "(fhandle)" ( identifier )))) ;)) (return_statement "return bVar6;" return identifier ;) })) (goto_statement "goto LAB_0012bc21;" goto statement_identifier ;) })))
(translation_unit "undefined8 FUN_0012bc00(long param_1,long param_2,undefined8 param_3,int *param_4,long param_5)\n\n{\n  int iVar1;\n  int iVar2;\n  long lVar3;\n  code *UNRECOVERED_JUMPTABLE_00;\n  undefined8 uVar4;\n  int *piVar5;\n  long *plVar6;\n  long lVar7;\n  undefined8 uVar8;\n  ulong uVar9;\n  undefined4 uVar10;\n  undefined8 uVar11;\n  uint uVar12;\n  long lVar13;\n  undefined8 *puVar14;\n  bool bVar15;\n  undefined8 *local_48;\n  uint local_3c;\n  \nLAB_0012bc21:\n  do {\n    for (; iVar2 = *param_4, 1 < iVar2 - 0x16U; param_4 = *(int **)(*(long *)(param_4 + 4) + 8)) {\nLAB_0012bc2b:\n      if (param_5 == 0) {\n        uVar4 = 0;\nLAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    \n                    \n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    \n          abort();\n        }\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 0x10) = *(undefined4 *)(param_1 + 0x30);\n      if (iVar2 != 0x16) {\n        if (iVar2 != 0x17) {\n          if (*(int *)(param_5 + 0x14) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }\nswitchD_0012bc67_caseD_16:\n      param_5 = 0;\n    }\n    plVar6 = *(long **)(param_4 + 4);\n    lVar3 = *plVar6;\n    if (*(int *)(lVar3 + 0x10) == *(int *)(param_1 + 0x30)) {\n      if (iVar2 == 0x16) {\n                    \n                    \n        uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));\n        return uVar4;\n      }\nLAB_0012c43d:\n      piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0);\n      if (piVar5 != (int *)0x0) {\n        iVar2 = *piVar5;\n        uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n        if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n        goto LAB_0012c3c5;\n      }\n      goto LAB_0012bff3;\n    }\n    if (iVar2 != 0x17) goto LAB_0012bc2b;\n    if (lVar3 != param_5) goto LAB_0012c43d;\n    *(int *)(param_5 + 0x10) = *(int *)(param_1 + 0x30);\nLAB_0012bc96:\n    param_4 = (int *)plVar6[1];\n  } while( true );\nswitchD_0012bc67_caseD_1:\n  param_4 = *(int **)**(undefined8 **)(param_4 + 4);\n  if (param_4 == (int *)0x0) {\nLAB_0012bff3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x10);\nLAB_0012bfcc:\n                    \n                    \n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3);\n    return uVar4;\n  }\n  goto LAB_0012bc21;\n}\n\n" (function_definition "undefined8 FUN_0012bc00(long param_1,long param_2,undefined8 param_3,int *param_4,long param_5)\n\n{\n  int iVar1;\n  int iVar2;\n  long lVar3;\n  code *UNRECOVERED_JUMPTABLE_00;\n  undefined8 uVar4;\n  int *piVar5;\n  long *plVar6;\n  long lVar7;\n  undefined8 uVar8;\n  ulong uVar9;\n  undefined4 uVar10;\n  undefined8 uVar11;\n  uint uVar12;\n  long lVar13;\n  undefined8 *puVar14;\n  bool bVar15;\n  undefined8 *local_48;\n  uint local_3c;\n  \nLAB_0012bc21:\n  do {\n    for (; iVar2 = *param_4, 1 < iVar2 - 0x16U; param_4 = *(int **)(*(long *)(param_4 + 4) + 8)) {\nLAB_0012bc2b:\n      if (param_5 == 0) {\n        uVar4 = 0;\nLAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    \n                    \n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    \n          abort();\n        }\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 0x10) = *(undefined4 *)(param_1 + 0x30);\n      if (iVar2 != 0x16) {\n        if (iVar2 != 0x17) {\n          if (*(int *)(param_5 + 0x14) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }\nswitchD_0012bc67_caseD_16:\n      param_5 = 0;\n    }\n    plVar6 = *(long **)(param_4 + 4);\n    lVar3 = *plVar6;\n    if (*(int *)(lVar3 + 0x10) == *(int *)(param_1 + 0x30)) {\n      if (iVar2 == 0x16) {\n                    \n                    \n        uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));\n        return uVar4;\n      }\nLAB_0012c43d:\n      piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0);\n      if (piVar5 != (int *)0x0) {\n        iVar2 = *piVar5;\n        uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n        if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n        goto LAB_0012c3c5;\n      }\n      goto LAB_0012bff3;\n    }\n    if (iVar2 != 0x17) goto LAB_0012bc2b;\n    if (lVar3 != param_5) goto LAB_0012c43d;\n    *(int *)(param_5 + 0x10) = *(int *)(param_1 + 0x30);\nLAB_0012bc96:\n    param_4 = (int *)plVar6[1];\n  } while( true );\nswitchD_0012bc67_caseD_1:\n  param_4 = *(int **)**(undefined8 **)(param_4 + 4);\n  if (param_4 == (int *)0x0) {\nLAB_0012bff3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x10);\nLAB_0012bfcc:\n                    \n                    \n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3);\n    return uVar4;\n  }\n  goto LAB_0012bc21;\n}" type_identifier (function_declarator "FUN_0012bc00(long param_1,long param_2,undefined8 param_3,int *param_4,long param_5)" identifier (parameter_list "(long param_1,long param_2,undefined8 param_3,int *param_4,long param_5)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "long param_5" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  long lVar3;\n  code *UNRECOVERED_JUMPTABLE_00;\n  undefined8 uVar4;\n  int *piVar5;\n  long *plVar6;\n  long lVar7;\n  undefined8 uVar8;\n  ulong uVar9;\n  undefined4 uVar10;\n  undefined8 uVar11;\n  uint uVar12;\n  long lVar13;\n  undefined8 *puVar14;\n  bool bVar15;\n  undefined8 *local_48;\n  uint local_3c;\n  \nLAB_0012bc21:\n  do {\n    for (; iVar2 = *param_4, 1 < iVar2 - 0x16U; param_4 = *(int **)(*(long *)(param_4 + 4) + 8)) {\nLAB_0012bc2b:\n      if (param_5 == 0) {\n        uVar4 = 0;\nLAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    \n                    \n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    \n          abort();\n        }\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 0x10) = *(undefined4 *)(param_1 + 0x30);\n      if (iVar2 != 0x16) {\n        if (iVar2 != 0x17) {\n          if (*(int *)(param_5 + 0x14) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }\nswitchD_0012bc67_caseD_16:\n      param_5 = 0;\n    }\n    plVar6 = *(long **)(param_4 + 4);\n    lVar3 = *plVar6;\n    if (*(int *)(lVar3 + 0x10) == *(int *)(param_1 + 0x30)) {\n      if (iVar2 == 0x16) {\n                    \n                    \n        uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));\n        return uVar4;\n      }\nLAB_0012c43d:\n      piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0);\n      if (piVar5 != (int *)0x0) {\n        iVar2 = *piVar5;\n        uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n        if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n        goto LAB_0012c3c5;\n      }\n      goto LAB_0012bff3;\n    }\n    if (iVar2 != 0x17) goto LAB_0012bc2b;\n    if (lVar3 != param_5) goto LAB_0012c43d;\n    *(int *)(param_5 + 0x10) = *(int *)(param_1 + 0x30);\nLAB_0012bc96:\n    param_4 = (int *)plVar6[1];\n  } while( true );\nswitchD_0012bc67_caseD_1:\n  param_4 = *(int **)**(undefined8 **)(param_4 + 4);\n  if (param_4 == (int *)0x0) {\nLAB_0012bff3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x10);\nLAB_0012bfcc:\n                    \n                    \n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3);\n    return uVar4;\n  }\n  goto LAB_0012bc21;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "code *UNRECOVERED_JUMPTABLE_00;" type_identifier (pointer_declarator "*UNRECOVERED_JUMPTABLE_00" * identifier) ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "long *plVar6;" (sized_type_specifier "long" long) (pointer_declarator "*plVar6" * identifier) ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "long lVar13;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "undefined8 *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "uint local_3c;" type_identifier identifier ;) (labeled_statement "LAB_0012bc21:\n  do {\n    for (; iVar2 = *param_4, 1 < iVar2 - 0x16U; param_4 = *(int **)(*(long *)(param_4 + 4) + 8)) {\nLAB_0012bc2b:\n      if (param_5 == 0) {\n        uVar4 = 0;\nLAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    \n                    \n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    \n          abort();\n        }\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 0x10) = *(undefined4 *)(param_1 + 0x30);\n      if (iVar2 != 0x16) {\n        if (iVar2 != 0x17) {\n          if (*(int *)(param_5 + 0x14) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }\nswitchD_0012bc67_caseD_16:\n      param_5 = 0;\n    }\n    plVar6 = *(long **)(param_4 + 4);\n    lVar3 = *plVar6;\n    if (*(int *)(lVar3 + 0x10) == *(int *)(param_1 + 0x30)) {\n      if (iVar2 == 0x16) {\n                    \n                    \n        uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));\n        return uVar4;\n      }\nLAB_0012c43d:\n      piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0);\n      if (piVar5 != (int *)0x0) {\n        iVar2 = *piVar5;\n        uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n        if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n        goto LAB_0012c3c5;\n      }\n      goto LAB_0012bff3;\n    }\n    if (iVar2 != 0x17) goto LAB_0012bc2b;\n    if (lVar3 != param_5) goto LAB_0012c43d;\n    *(int *)(param_5 + 0x10) = *(int *)(param_1 + 0x30);\nLAB_0012bc96:\n    param_4 = (int *)plVar6[1];\n  } while( true );" statement_identifier : (do_statement "do {\n    for (; iVar2 = *param_4, 1 < iVar2 - 0x16U; param_4 = *(int **)(*(long *)(param_4 + 4) + 8)) {\nLAB_0012bc2b:\n      if (param_5 == 0) {\n        uVar4 = 0;\nLAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    \n                    \n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    \n          abort();\n        }\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 0x10) = *(undefined4 *)(param_1 + 0x30);\n      if (iVar2 != 0x16) {\n        if (iVar2 != 0x17) {\n          if (*(int *)(param_5 + 0x14) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }\nswitchD_0012bc67_caseD_16:\n      param_5 = 0;\n    }\n    plVar6 = *(long **)(param_4 + 4);\n    lVar3 = *plVar6;\n    if (*(int *)(lVar3 + 0x10) == *(int *)(param_1 + 0x30)) {\n      if (iVar2 == 0x16) {\n                    \n                    \n        uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));\n        return uVar4;\n      }\nLAB_0012c43d:\n      piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0);\n      if (piVar5 != (int *)0x0) {\n        iVar2 = *piVar5;\n        uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n        if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n        goto LAB_0012c3c5;\n      }\n      goto LAB_0012bff3;\n    }\n    if (iVar2 != 0x17) goto LAB_0012bc2b;\n    if (lVar3 != param_5) goto LAB_0012c43d;\n    *(int *)(param_5 + 0x10) = *(int *)(param_1 + 0x30);\nLAB_0012bc96:\n    param_4 = (int *)plVar6[1];\n  } while( true );" do (compound_statement "{\n    for (; iVar2 = *param_4, 1 < iVar2 - 0x16U; param_4 = *(int **)(*(long *)(param_4 + 4) + 8)) {\nLAB_0012bc2b:\n      if (param_5 == 0) {\n        uVar4 = 0;\nLAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    \n                    \n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    \n          abort();\n        }\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 0x10) = *(undefined4 *)(param_1 + 0x30);\n      if (iVar2 != 0x16) {\n        if (iVar2 != 0x17) {\n          if (*(int *)(param_5 + 0x14) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }\nswitchD_0012bc67_caseD_16:\n      param_5 = 0;\n    }\n    plVar6 = *(long **)(param_4 + 4);\n    lVar3 = *plVar6;\n    if (*(int *)(lVar3 + 0x10) == *(int *)(param_1 + 0x30)) {\n      if (iVar2 == 0x16) {\n                    \n                    \n        uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));\n        return uVar4;\n      }\nLAB_0012c43d:\n      piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0);\n      if (piVar5 != (int *)0x0) {\n        iVar2 = *piVar5;\n        uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n        if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n        goto LAB_0012c3c5;\n      }\n      goto LAB_0012bff3;\n    }\n    if (iVar2 != 0x17) goto LAB_0012bc2b;\n    if (lVar3 != param_5) goto LAB_0012c43d;\n    *(int *)(param_5 + 0x10) = *(int *)(param_1 + 0x30);\nLAB_0012bc96:\n    param_4 = (int *)plVar6[1];\n  }" { (for_statement "for (; iVar2 = *param_4, 1 < iVar2 - 0x16U; param_4 = *(int **)(*(long *)(param_4 + 4) + 8)) {\nLAB_0012bc2b:\n      if (param_5 == 0) {\n        uVar4 = 0;\nLAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    \n                    \n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    \n          abort();\n        }\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 0x10) = *(undefined4 *)(param_1 + 0x30);\n      if (iVar2 != 0x16) {\n        if (iVar2 != 0x17) {\n          if (*(int *)(param_5 + 0x14) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }\nswitchD_0012bc67_caseD_16:\n      param_5 = 0;\n    }" for ( ; (comma_expression "iVar2 = *param_4, 1 < iVar2 - 0x16U" (assignment_expression "iVar2 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) , (binary_expression "1 < iVar2 - 0x16U" number_literal < (binary_expression "iVar2 - 0x16U" identifier - number_literal))) ; (assignment_expression "param_4 = *(int **)(*(long *)(param_4 + 4) + 8)" identifier = (pointer_expression "*(int **)(*(long *)(param_4 + 4) + 8)" * (cast_expression "(int **)(*(long *)(param_4 + 4) + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_4 + 4) + 8)" ( (binary_expression "*(long *)(param_4 + 4) + 8" (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) )))) + number_literal) ))))) ) (compound_statement "{\nLAB_0012bc2b:\n      if (param_5 == 0) {\n        uVar4 = 0;\nLAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    \n                    \n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    \n          abort();\n        }\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 0x10) = *(undefined4 *)(param_1 + 0x30);\n      if (iVar2 != 0x16) {\n        if (iVar2 != 0x17) {\n          if (*(int *)(param_5 + 0x14) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }\nswitchD_0012bc67_caseD_16:\n      param_5 = 0;\n    }" { (labeled_statement "LAB_0012bc2b:\n      if (param_5 == 0) {\n        uVar4 = 0;\nLAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    \n                    \n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    \n          abort();\n        }\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);\n        return uVar4;\n      }" statement_identifier : (if_statement "if (param_5 == 0) {\n        uVar4 = 0;\nLAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    \n                    \n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    \n          abort();\n        }\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);\n        return uVar4;\n      }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar4 = 0;\nLAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    \n                    \n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    \n          abort();\n        }\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);\n        return uVar4;\n      }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    \n                    \n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    \n          abort();\n        }" statement_identifier : (switch_statement "switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    \n                    \n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    \n          abort();\n        }" switch (parenthesized_expression "(iVar2)" ( identifier )) (compound_statement "{\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    \n                    \n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    \n          abort();\n        }" { (case_statement "case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%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(stderr,"%s\n",uVar4);" (call_expression "fprintf(stderr,"%s\n",uVar4)" identifier (argument_list "(stderr,"%s\n",uVar4)" ( identifier , (string_literal ""%s\n"" " string_content escape_sequence ") , identifier ))) ;) (return_statement "return 0;" return number_literal ;)) (case_statement "case 1:\n          goto switchD_0012bc67_caseD_1;" case number_literal : (goto_statement "goto switchD_0012bc67_caseD_1;" goto statement_identifier ;)) (case_statement "case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;" 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) ))))) ;) (goto_statement "goto LAB_0012bfcc;" goto statement_identifier ;)) (case_statement "case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;" case number_literal : (expression_statement "iVar1 = param_4[4];" (assignment_expression "iVar1 = param_4[4]" identifier = (subscript_expression "param_4[4]" identifier [ number_literal ])) ;) (expression_statement "iVar2 = param_4[1];" (assignment_expression "iVar2 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20)" identifier = (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) ))))) ;) (goto_statement "goto LAB_0012c31a;" goto statement_identifier ;)) (case_statement "case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;" case number_literal : (expression_statement "iVar2 = param_4[1];" (assignment_expression "iVar2 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28)" identifier = (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) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;" case number_literal : (expression_statement "iVar2 = param_4[1];" (assignment_expression "iVar2 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30)" identifier = (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) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;" case number_literal : (expression_statement "iVar2 = param_4[1];" (assignment_expression "iVar2 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ 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 7:" case number_literal :) (case_statement "case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;" case number_literal : (expression_statement "lVar3 = *(long *)(param_4 + 4);" (assignment_expression "lVar3 = *(long *)(param_4 + 4)" identifier = (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (if_statement "if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }" if (parenthesized_expression "(lVar3 == 0)" ( (binary_expression "lVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }" { (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98)" identifier = (pointer_expression "*(code **)(param_2 + 0x98)" * (cast_expression "(code **)(param_2 + 0x98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x98)" ( (binary_expression "param_2 + 0x98" 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 "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }" else (compound_statement "{\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }" { (expression_statement "uVar12 = *(uint *)(lVar3 + 0xc);" (assignment_expression "uVar12 = *(uint *)(lVar3 + 0xc)" identifier = (pointer_expression "*(uint *)(lVar3 + 0xc)" * (cast_expression "(uint *)(lVar3 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0xc)" ( (binary_expression "lVar3 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }" if (parenthesized_expression "(*(uint *)(param_1 + 0x38) < uVar12)" ( (binary_expression "*(uint *)(param_1 + 0x38) < uVar12" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }" { (expression_statement "iVar2 = *(int *)(param_1 + 0x30);" (assignment_expression "iVar2 = *(int *)(param_1 + 0x30)" identifier = (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }" if (parenthesized_expression "(*(int *)(lVar3 + 8) == iVar2)" ( (binary_expression "*(int *)(lVar3 + 8) == iVar2" (pointer_expression "*(int *)(lVar3 + 8)" * (cast_expression "(int *)(lVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 8)" ( (binary_expression "lVar3 + 8" identifier + number_literal) )))) == identifier) )) (compound_statement "{\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }" { (labeled_statement "LAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);" statement_identifier : (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8)" identifier = (pointer_expression "*(code **)(param_2 + 0xf8)" * (cast_expression "(code **)(param_2 + 0xf8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xf8)" ( (binary_expression "param_2 + 0xf8" identifier + number_literal) ))))) ;)) (expression_statement "iVar2 = *param_4;" (assignment_expression "iVar2 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (labeled_statement "LAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);" statement_identifier : (expression_statement "uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);" (assignment_expression "uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2)" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE_00)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE_00" * identifier) )) (argument_list "(param_3,uVar4,uVar12,iVar2)" ( identifier , identifier , identifier , identifier )))) ;)) (return_statement "return uVar4;" return identifier ;) })) }) (else_clause "else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }" else (compound_statement "{\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }" { (expression_statement "iVar2 = FUN_0012bae0(param_1,uVar4,param_4);" (assignment_expression "iVar2 = FUN_0012bae0(param_1,uVar4,param_4)" identifier = (call_expression "FUN_0012bae0(param_1,uVar4,param_4)" identifier (argument_list "(param_1,uVar4,param_4)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar3 = *(long *)(param_4 + 4);" (assignment_expression "lVar3 = *(long *)(param_4 + 4)" identifier = (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(param_1 + 0x30);" (assignment_expression "iVar2 = *(int *)(param_1 + 0x30)" identifier = (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }" if (parenthesized_expression "(iVar2 == *(int *)(lVar3 + 8))" ( (binary_expression "iVar2 == *(int *)(lVar3 + 8)" identifier == (pointer_expression "*(int *)(lVar3 + 8)" * (cast_expression "(int *)(lVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 8)" ( (binary_expression "lVar3 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }" { (expression_statement "uVar12 = *(uint *)(lVar3 + 0xc);" (assignment_expression "uVar12 = *(uint *)(lVar3 + 0xc)" identifier = (pointer_expression "*(uint *)(lVar3 + 0xc)" * (cast_expression "(uint *)(lVar3 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0xc)" ( (binary_expression "lVar3 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }" if (parenthesized_expression "(uVar12 <= *(uint *)(param_1 + 0x38))" ( (binary_expression "uVar12 <= *(uint *)(param_1 + 0x38)" identifier <= (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }" { (expression_statement "__assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");" (call_expression "__assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type")" identifier (argument_list "("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type")" ( (string_literal ""type->u.kclass->id > info->base_id"" " string_content ") , (string_literal ""../../binutils/debug.c"" " string_content ") , number_literal , (string_literal ""debug_write_type"" " string_content ") ))) ;) })) (goto_statement "goto LAB_0012c414;" goto statement_identifier ;) })) }))) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98)" identifier = (pointer_expression "*(code **)(param_2 + 0x98)" * (cast_expression "(code **)(param_2 + 0x98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x98)" ( (binary_expression "param_2 + 0x98" 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 *)(lVar3 + 8) = iVar2;" (assignment_expression "*(int *)(lVar3 + 8) = iVar2" (pointer_expression "*(int *)(lVar3 + 8)" * (cast_expression "(int *)(lVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 8)" ( (binary_expression "lVar3 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar10 = *(undefined4 *)(lVar3 + 0xc);" (assignment_expression "uVar10 = *(undefined4 *)(lVar3 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(lVar3 + 0xc)" * (cast_expression "(undefined4 *)(lVar3 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0xc)" ( (binary_expression "lVar3 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *param_4;" (assignment_expression "iVar2 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) }))) (expression_statement "iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);" (assignment_expression "iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1)" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE_00)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE_00" * identifier) )) (argument_list "(param_3,uVar4,uVar10,iVar2 == 7,iVar1)" ( identifier , identifier , identifier , (binary_expression "iVar2 == 7" identifier == number_literal) , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }" if (parenthesized_expression "(((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0))" ( (binary_expression "((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)" (parenthesized_expression "((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0))" ( (binary_expression "(*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)" (parenthesized_expression "(*(long **)(param_4 + 4) != (long *)0x0)" ( (binary_expression "*(long **)(param_4 + 4) != (long *)0x0" (pointer_expression "*(long **)(param_4 + 4)" * (cast_expression "(long **)(param_4 + 4)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) )))) != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)" ( (comma_expression "plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0" (assignment_expression "plVar6 = (long *)**(long **)(param_4 + 4)" identifier = (cast_expression "(long *)**(long **)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(long **)(param_4 + 4)" * (pointer_expression "*(long **)(param_4 + 4)" * (cast_expression "(long **)(param_4 + 4)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))))) , (binary_expression "plVar6 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)" ( (comma_expression "puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0" (assignment_expression "puVar14 = (undefined8 *)*plVar6" identifier = (cast_expression "(undefined8 *)*plVar6" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar6" * identifier))) , (binary_expression "puVar14 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (do_statement "do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);" do (compound_statement "{\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            }" { (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0)" identifier (argument_list "(param_1,param_2,param_3,puVar14[1],0)" ( identifier , identifier , identifier , (subscript_expression "puVar14[1]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));" (assignment_expression "iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c))" identifier = (call_expression "(**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c))" (parenthesized_expression "(**(code **)(param_2 + 0xa0))" ( (pointer_expression "**(code **)(param_2 + 0xa0)" * (pointer_expression "*(code **)(param_2 + 0xa0)" * (cast_expression "(code **)(param_2 + 0xa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xa0)" ( (binary_expression "param_2 + 0xa0" identifier + number_literal) ))))) )) (argument_list "(param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c))" ( identifier , (pointer_expression "*puVar14" * identifier) , (pointer_expression "*(undefined4 *)(puVar14 + 3)" * (cast_expression "(undefined4 *)(puVar14 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 3)" ( (binary_expression "puVar14 + 3" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)((long)puVar14 + 0x1c)" * (cast_expression "(undefined4 *)((long)puVar14 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar14 + 0x1c)" ( (binary_expression "(long)puVar14 + 0x1c" (cast_expression "(long)puVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) )))) ;) (if_statement "if (iVar2 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar9 = (ulong)((int)uVar9 + 1);" (assignment_expression "uVar9 = (ulong)((int)uVar9 + 1)" identifier = (call_expression "(ulong)((int)uVar9 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar9 + 1)" ( (binary_expression "(int)uVar9 + 1" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);" (assignment_expression "puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8)" identifier = (pointer_expression "*(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8)" * (cast_expression "(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(param_4 + 4) + uVar9 * 8)" ( (binary_expression "**(long **)(param_4 + 4) + uVar9 * 8" (pointer_expression "**(long **)(param_4 + 4)" * (pointer_expression "*(long **)(param_4 + 4)" * (cast_expression "(long **)(param_4 + 4)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) + (binary_expression "uVar9 * 8" identifier * number_literal)) ))))) ;) }) while (parenthesized_expression "(puVar14 != (undefined8 *)0x0)" ( (binary_expression "puVar14 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8)" identifier = (pointer_expression "*(code **)(param_2 + 0xa8)" * (cast_expression "(code **)(param_2 + 0xa8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xa8)" ( (binary_expression "param_2 + 0xa8" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0012bfcc;" goto statement_identifier ;)) (case_statement "case 9:" case number_literal :) (case_statement "case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;" case number_literal : (expression_statement "lVar3 = *(long *)(param_4 + 4);" (assignment_expression "lVar3 = *(long *)(param_4 + 4)" identifier = (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (if_statement "if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }" if (parenthesized_expression "(lVar3 == 0)" ( (binary_expression "lVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }" { (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (expression_statement "piVar5 = (int *)0x0;" (assignment_expression "piVar5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }" else (compound_statement "{\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }" { (expression_statement "uVar12 = *(uint *)(lVar3 + 0xc);" (assignment_expression "uVar12 = *(uint *)(lVar3 + 0xc)" identifier = (pointer_expression "*(uint *)(lVar3 + 0xc)" * (cast_expression "(uint *)(lVar3 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0xc)" ( (binary_expression "lVar3 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }" if (parenthesized_expression "(*(uint *)(param_1 + 0x38) < uVar12)" ( (binary_expression "*(uint *)(param_1 + 0x38) < uVar12" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }" { (expression_statement "iVar1 = *(int *)(param_1 + 0x30);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x30)" identifier = (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }" if (parenthesized_expression "(iVar1 == *(int *)(lVar3 + 8))" ( (binary_expression "iVar1 == *(int *)(lVar3 + 8)" identifier == (pointer_expression "*(int *)(lVar3 + 8)" * (cast_expression "(int *)(lVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 8)" ( (binary_expression "lVar3 + 8" identifier + number_literal) ))))) )) (compound_statement "{\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }" { (labeled_statement "LAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);" statement_identifier : (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8)" identifier = (pointer_expression "*(code **)(param_2 + 0xf8)" * (cast_expression "(code **)(param_2 + 0xf8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xf8)" ( (binary_expression "param_2 + 0xf8" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_0012c3c5;" goto statement_identifier ;) })) }) (else_clause "else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }" else (compound_statement "{\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }" { (expression_statement "iVar2 = FUN_0012bae0(param_1,uVar4,param_4);" (assignment_expression "iVar2 = FUN_0012bae0(param_1,uVar4,param_4)" identifier = (call_expression "FUN_0012bae0(param_1,uVar4,param_4)" identifier (argument_list "(param_1,uVar4,param_4)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar3 = *(long *)(param_4 + 4);" (assignment_expression "lVar3 = *(long *)(param_4 + 4)" identifier = (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = *(int *)(param_1 + 0x30);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x30)" identifier = (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = *(uint *)(lVar3 + 0xc);" (assignment_expression "uVar12 = *(uint *)(lVar3 + 0xc)" identifier = (pointer_expression "*(uint *)(lVar3 + 0xc)" * (cast_expression "(uint *)(lVar3 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0xc)" ( (binary_expression "lVar3 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }" if (parenthesized_expression "(iVar1 == *(int *)(lVar3 + 8))" ( (binary_expression "iVar1 == *(int *)(lVar3 + 8)" identifier == (pointer_expression "*(int *)(lVar3 + 8)" * (cast_expression "(int *)(lVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 8)" ( (binary_expression "lVar3 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }" { (if_statement "if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }" if (parenthesized_expression "(uVar12 <= *(uint *)(param_1 + 0x38))" ( (binary_expression "uVar12 <= *(uint *)(param_1 + 0x38)" identifier <= (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }" { (expression_statement "__assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");" (call_expression "__assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type")" identifier (argument_list "("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type")" ( (string_literal ""type->u.kclass->id > info->base_id"" " string_content ") , (string_literal ""../../binutils/debug.c"" " string_content ") , number_literal , (string_literal ""debug_write_class_type"" " string_content ") ))) ;) })) (expression_statement "iVar2 = *param_4;" (assignment_expression "iVar2 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (goto_statement "goto LAB_0012c3b8;" goto statement_identifier ;) })) }))) (expression_statement "*(int *)(lVar3 + 8) = iVar1;" (assignment_expression "*(int *)(lVar3 + 8) = iVar1" (pointer_expression "*(int *)(lVar3 + 8)" * (cast_expression "(int *)(lVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 8)" ( (binary_expression "lVar3 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar5 = *(int **)(lVar3 + 0x20);" (assignment_expression "piVar5 = *(int **)(lVar3 + 0x20)" identifier = (pointer_expression "*(int **)(lVar3 + 0x20)" * (cast_expression "(int **)(lVar3 + 0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar3 + 0x20)" ( (binary_expression "lVar3 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "bVar15 = piVar5 != (int *)0x0;" (assignment_expression "bVar15 = piVar5 != (int *)0x0" identifier = (binary_expression "piVar5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }" if (parenthesized_expression "((param_4 == piVar5) || (!bVar15))" ( (binary_expression "(param_4 == piVar5) || (!bVar15)" (parenthesized_expression "(param_4 == piVar5)" ( (binary_expression "param_4 == piVar5" identifier == identifier) )) || (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) ))) )) (compound_statement "{\n              iVar2 = *param_4;\n            }" { (expression_statement "iVar2 = *param_4;" (assignment_expression "iVar2 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) }) (else_clause "else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }" else (compound_statement "{\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }" { (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,piVar5,0)" identifier (argument_list "(param_1,param_2,param_3,piVar5,0)" ( identifier , identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n                return 0;\n              }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar2 = *param_4;" (assignment_expression "iVar2 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = true" identifier = true) ;) }))) }))) (expression_statement "iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);" (assignment_expression "iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5)" identifier = (call_expression "(**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5)" (parenthesized_expression "(**(code **)(param_2 + 0xb0))" ( (pointer_expression "**(code **)(param_2 + 0xb0)" * (pointer_expression "*(code **)(param_2 + 0xb0)" * (cast_expression "(code **)(param_2 + 0xb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xb0)" ( (binary_expression "param_2 + 0xb0" identifier + number_literal) ))))) )) (argument_list "(param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5)" ( identifier , identifier , identifier , (binary_expression "iVar2 == 9" identifier == number_literal) , (subscript_expression "param_4[1]" identifier [ number_literal ]) , identifier , (binary_expression "param_4 == piVar5" identifier == identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "plVar6 = *(long **)(param_4 + 4);" (assignment_expression "plVar6 = *(long **)(param_4 + 4)" identifier = (pointer_expression "*(long **)(param_4 + 4)" * (cast_expression "(long **)(param_4 + 4)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (if_statement "if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }" if (parenthesized_expression "(plVar6 != (long *)0x0)" ( (binary_expression "plVar6 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }" { (if_statement "if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }" if (parenthesized_expression "(((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0))" ( (binary_expression "((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)" (parenthesized_expression "((long *)*plVar6 != (long *)0x0)" ( (binary_expression "(long *)*plVar6 != (long *)0x0" (cast_expression "(long *)*plVar6" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar6" * identifier)) != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)" ( (comma_expression "puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0" (assignment_expression "puVar14 = *(undefined8 **)*plVar6" identifier = (pointer_expression "*(undefined8 **)*plVar6" * (cast_expression "(undefined8 **)*plVar6" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*plVar6" * identifier)))) , (binary_expression "puVar14 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (do_statement "do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);" do (compound_statement "{\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              }" { (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0)" identifier (argument_list "(param_1,param_2,param_3,puVar14[1],0)" ( identifier , identifier , identifier , (subscript_expression "puVar14[1]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }" if (parenthesized_expression "(*(int *)((long)puVar14 + 0x14) == 0)" ( (binary_expression "*(int *)((long)puVar14 + 0x14) == 0" (pointer_expression "*(int *)((long)puVar14 + 0x14)" * (cast_expression "(int *)((long)puVar14 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar14 + 0x14)" ( (binary_expression "(long)puVar14 + 0x14" (cast_expression "(long)puVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }" { (expression_statement "iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));" (assignment_expression "iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c))" identifier = (call_expression "(**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c))" (parenthesized_expression "(**(code **)(param_2 + 0xa0))" ( (pointer_expression "**(code **)(param_2 + 0xa0)" * (pointer_expression "*(code **)(param_2 + 0xa0)" * (cast_expression "(code **)(param_2 + 0xa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xa0)" ( (binary_expression "param_2 + 0xa0" identifier + number_literal) ))))) )) (argument_list "(param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c))" ( identifier , (pointer_expression "*puVar14" * identifier) , (pointer_expression "*(undefined4 *)(puVar14 + 3)" * (cast_expression "(undefined4 *)(puVar14 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 3)" ( (binary_expression "puVar14 + 3" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)((long)puVar14 + 0x1c)" * (cast_expression "(undefined4 *)((long)puVar14 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar14 + 0x1c)" ( (binary_expression "(long)puVar14 + 0x1c" (cast_expression "(long)puVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) )))) ;) }) (else_clause "else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }" else (compound_statement "{\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }" { (expression_statement "iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));" (assignment_expression "iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2))" identifier = (call_expression "(**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2))" (parenthesized_expression "(**(code **)(param_2 + 0xb8))" ( (pointer_expression "**(code **)(param_2 + 0xb8)" * (pointer_expression "*(code **)(param_2 + 0xb8)" * (cast_expression "(code **)(param_2 + 0xb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xb8)" ( (binary_expression "param_2 + 0xb8" identifier + number_literal) ))))) )) (argument_list "(param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2))" ( identifier , (pointer_expression "*puVar14" * identifier) , (subscript_expression "puVar14[3]" identifier [ number_literal ]) , (pointer_expression "*(undefined4 *)(puVar14 + 2)" * (cast_expression "(undefined4 *)(puVar14 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 2)" ( (binary_expression "puVar14 + 2" identifier + number_literal) )))) )))) ;) }))) (if_statement "if (iVar2 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "plVar6 = *(long **)(param_4 + 4);" (assignment_expression "plVar6 = *(long **)(param_4 + 4)" identifier = (pointer_expression "*(long **)(param_4 + 4)" * (cast_expression "(long **)(param_4 + 4)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = (ulong)((int)uVar9 + 1);" (assignment_expression "uVar9 = (ulong)((int)uVar9 + 1)" identifier = (call_expression "(ulong)((int)uVar9 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar9 + 1)" ( (binary_expression "(int)uVar9 + 1" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);" (assignment_expression "puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8)" identifier = (pointer_expression "*(undefined8 **)(*plVar6 + uVar9 * 8)" * (cast_expression "(undefined8 **)(*plVar6 + uVar9 * 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar6 + uVar9 * 8)" ( (binary_expression "*plVar6 + uVar9 * 8" (pointer_expression "*plVar6" * identifier) + (binary_expression "uVar9 * 8" identifier * number_literal)) ))))) ;) }) while (parenthesized_expression "(puVar14 != (undefined8 *)0x0)" ( (binary_expression "puVar14 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (if_statement "if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }" if (parenthesized_expression "(((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0))" ( (binary_expression "((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)" (parenthesized_expression "((long *)plVar6[2] != (long *)0x0)" ( (binary_expression "(long *)plVar6[2] != (long *)0x0" (cast_expression "(long *)plVar6[2]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar6[2]" identifier [ number_literal ])) != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)" ( (comma_expression "puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0" (assignment_expression "puVar14 = *(undefined8 **)plVar6[2]" identifier = (pointer_expression "*(undefined8 **)plVar6[2]" * (cast_expression "(undefined8 **)plVar6[2]" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "plVar6[2]" identifier [ number_literal ])))) , (binary_expression "puVar14 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (do_statement "do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);" do (compound_statement "{\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              }" { (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,*puVar14,0)" identifier (argument_list "(param_1,param_2,param_3,*puVar14,0)" ( identifier , identifier , identifier , (pointer_expression "*puVar14" * identifier) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );" (assignment_expression "iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  )" identifier = (call_expression "(**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  )" (parenthesized_expression "(**(code **)(param_2 + 0xc0))" ( (pointer_expression "**(code **)(param_2 + 0xc0)" * (pointer_expression "*(code **)(param_2 + 0xc0)" * (cast_expression "(code **)(param_2 + 0xc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xc0)" ( (binary_expression "param_2 + 0xc0" identifier + number_literal) ))))) )) (argument_list "(param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  )" ( identifier , (pointer_expression "*(undefined4 *)(puVar14 + 1)" * (cast_expression "(undefined4 *)(puVar14 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 1)" ( (binary_expression "puVar14 + 1" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)((long)puVar14 + 0xc)" * (cast_expression "(undefined4 *)((long)puVar14 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar14 + 0xc)" ( (binary_expression "(long)puVar14 + 0xc" (cast_expression "(long)puVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) , (pointer_expression "*(undefined4 *)(puVar14 + 2)" * (cast_expression "(undefined4 *)(puVar14 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 2)" ( (binary_expression "puVar14 + 2" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar2 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "plVar6 = *(long **)(param_4 + 4);" (assignment_expression "plVar6 = *(long **)(param_4 + 4)" identifier = (pointer_expression "*(long **)(param_4 + 4)" * (cast_expression "(long **)(param_4 + 4)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = (ulong)((int)uVar9 + 1);" (assignment_expression "uVar9 = (ulong)((int)uVar9 + 1)" identifier = (call_expression "(ulong)((int)uVar9 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar9 + 1)" ( (binary_expression "(int)uVar9 + 1" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);" (assignment_expression "puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8)" identifier = (pointer_expression "*(undefined8 **)(plVar6[2] + uVar9 * 8)" * (cast_expression "(undefined8 **)(plVar6[2] + uVar9 * 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(plVar6[2] + uVar9 * 8)" ( (binary_expression "plVar6[2] + uVar9 * 8" (subscript_expression "plVar6[2]" identifier [ number_literal ]) + (binary_expression "uVar9 * 8" identifier * number_literal)) ))))) ;) }) while (parenthesized_expression "(puVar14 != (undefined8 *)0x0)" ( (binary_expression "puVar14 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (if_statement "if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }" if (parenthesized_expression "(((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0))" ( (binary_expression "((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)" (parenthesized_expression "((long *)plVar6[3] != (long *)0x0)" ( (binary_expression "(long *)plVar6[3] != (long *)0x0" (cast_expression "(long *)plVar6[3]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar6[3]" identifier [ number_literal ])) != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)" ( (comma_expression "local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0" (assignment_expression "local_48 = *(undefined8 **)plVar6[3]" identifier = (pointer_expression "*(undefined8 **)plVar6[3]" * (cast_expression "(undefined8 **)plVar6[3]" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "plVar6[3]" identifier [ number_literal ])))) , (binary_expression "local_48 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }" { (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (do_statement "do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);" do (compound_statement "{\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              }" { (expression_statement "iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);" (assignment_expression "iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48)" identifier = (call_expression "(**(code **)(param_2 + 200))(param_3,*local_48)" (parenthesized_expression "(**(code **)(param_2 + 200))" ( (pointer_expression "**(code **)(param_2 + 200)" * (pointer_expression "*(code **)(param_2 + 200)" * (cast_expression "(code **)(param_2 + 200)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 200)" ( (binary_expression "param_2 + 200" identifier + number_literal) ))))) )) (argument_list "(param_3,*local_48)" ( identifier , (pointer_expression "*local_48" * identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "puVar14 = *(undefined8 **)local_48[1];" (assignment_expression "puVar14 = *(undefined8 **)local_48[1]" identifier = (pointer_expression "*(undefined8 **)local_48[1]" * (cast_expression "(undefined8 **)local_48[1]" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "local_48[1]" identifier [ number_literal ])))) ;) (while_statement "while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }" while (parenthesized_expression "(puVar14 != (undefined8 *)0x0)" ( (binary_expression "puVar14 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }" { (if_statement "if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }" if (parenthesized_expression "((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0))" ( (binary_expression "(puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)" (parenthesized_expression "(puVar14[5] != 0)" ( (binary_expression "puVar14[5] != 0" (subscript_expression "puVar14[5]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)" ( (comma_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0)" identifier (argument_list "(param_1,param_2,param_3,puVar14[5],0)" ( identifier , identifier , identifier , (subscript_expression "puVar14[5]" identifier [ number_literal ]) , number_literal )))) , (binary_expression "iVar2 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                    return 0;\n                  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0)" identifier (argument_list "(param_1,param_2,param_3,puVar14[1],0)" ( identifier , identifier , identifier , (subscript_expression "puVar14[1]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n                    return 0;\n                  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                    return 0;\n                  }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }" if (parenthesized_expression "(puVar14[4] == -1)" ( (binary_expression "puVar14[4] == -1" (subscript_expression "puVar14[4]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }" { (expression_statement "iVar2 = (**(code **)(param_2 + 0xd8))(param_3);" (assignment_expression "iVar2 = (**(code **)(param_2 + 0xd8))(param_3)" identifier = (call_expression "(**(code **)(param_2 + 0xd8))(param_3)" (parenthesized_expression "(**(code **)(param_2 + 0xd8))" ( (pointer_expression "**(code **)(param_2 + 0xd8)" * (pointer_expression "*(code **)(param_2 + 0xd8)" * (cast_expression "(code **)(param_2 + 0xd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xd8)" ( (binary_expression "param_2 + 0xd8" identifier + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) }) (else_clause "else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }" else (compound_statement "{\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }" { (expression_statement "iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);" (assignment_expression "iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0)" identifier = (call_expression "(**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0)" (parenthesized_expression "(**(code **)(param_2 + 0xd0))" ( (pointer_expression "**(code **)(param_2 + 0xd0)" * (pointer_expression "*(code **)(param_2 + 0xd0)" * (cast_expression "(code **)(param_2 + 0xd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xd0)" ( (binary_expression "param_2 + 0xd0" identifier + number_literal) ))))) )) (argument_list "(param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0)" ( identifier , (pointer_expression "*puVar14" * identifier) , (pointer_expression "*(undefined4 *)(puVar14 + 2)" * (cast_expression "(undefined4 *)(puVar14 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 2)" ( (binary_expression "puVar14 + 2" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)((long)puVar14 + 0x14)" * (cast_expression "(undefined4 *)((long)puVar14 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar14 + 0x14)" ( (binary_expression "(long)puVar14 + 0x14" (cast_expression "(long)puVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) , (pointer_expression "*(undefined4 *)(puVar14 + 3)" * (cast_expression "(undefined4 *)(puVar14 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 3)" ( (binary_expression "puVar14 + 3" identifier + number_literal) )))) , (subscript_expression "puVar14[4]" identifier [ number_literal ]) , (binary_expression "puVar14[5] != 0" (subscript_expression "puVar14[5]" identifier [ number_literal ]) != number_literal) )))) ;) }))) (if_statement "if (iVar2 == 0) {\n                    return 0;\n                  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                    return 0;\n                  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar9 = (ulong)((int)uVar9 + 1);" (assignment_expression "uVar9 = (ulong)((int)uVar9 + 1)" identifier = (call_expression "(ulong)((int)uVar9 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar9 + 1)" ( (binary_expression "(int)uVar9 + 1" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);" (assignment_expression "puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8)" identifier = (pointer_expression "*(undefined8 **)(local_48[1] + uVar9 * 8)" * (cast_expression "(undefined8 **)(local_48[1] + uVar9 * 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_48[1] + uVar9 * 8)" ( (binary_expression "local_48[1] + uVar9 * 8" (subscript_expression "local_48[1]" identifier [ number_literal ]) + (binary_expression "uVar9 * 8" identifier * number_literal)) ))))) ;) })) (expression_statement "iVar2 = (**(code **)(param_2 + 0xe0))(param_3);" (assignment_expression "iVar2 = (**(code **)(param_2 + 0xe0))(param_3)" identifier = (call_expression "(**(code **)(param_2 + 0xe0))(param_3)" (parenthesized_expression "(**(code **)(param_2 + 0xe0))" ( (pointer_expression "**(code **)(param_2 + 0xe0)" * (pointer_expression "*(code **)(param_2 + 0xe0)" * (cast_expression "(code **)(param_2 + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xe0)" ( (binary_expression "param_2 + 0xe0" identifier + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (iVar2 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "local_3c = local_3c + 1;" (assignment_expression "local_3c = local_3c + 1" identifier = (binary_expression "local_3c + 1" identifier + number_literal)) ;) (expression_statement "local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);" (assignment_expression "local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8)" identifier = (pointer_expression "*(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8)" * (cast_expression "(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8)" ( (binary_expression "*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8" (pointer_expression "*(long *)(*(long *)(param_4 + 4) + 0x18)" * (cast_expression "(long *)(*(long *)(param_4 + 4) + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_4 + 4) + 0x18)" ( (binary_expression "*(long *)(param_4 + 4) + 0x18" (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) )))) + number_literal) )))) + (binary_expression "(ulong)local_3c * 8" (cast_expression "(ulong)local_3c" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) ))))) ;) }) while (parenthesized_expression "(local_48 != (undefined8 *)0x0)" ( (binary_expression "local_48 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) })) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8)" identifier = (pointer_expression "*(code **)(param_2 + 0xe8)" * (cast_expression "(code **)(param_2 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xe8)" ( (binary_expression "param_2 + 0xe8" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0012bfcc;" goto statement_identifier ;)) (case_statement "case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;" case number_literal : (expression_statement "puVar14 = *(undefined8 **)(param_4 + 4);" (assignment_expression "puVar14 = *(undefined8 **)(param_4 + 4)" identifier = (pointer_expression "*(undefined8 **)(param_4 + 4)" * (cast_expression "(undefined8 **)(param_4 + 4)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }" if (parenthesized_expression "(puVar14 != (undefined8 *)0x0)" ( (binary_expression "puVar14 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }" { (expression_statement "uVar8 = puVar14[1];" (assignment_expression "uVar8 = puVar14[1]" identifier = (subscript_expression "puVar14[1]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = *puVar14;" (assignment_expression "uVar11 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) ;) })) (expression_statement "uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40))" identifier = (call_expression "(**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40))" (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,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40))" ( identifier , identifier , identifier , identifier , (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) )))) )))) ;) (return_statement "return uVar4;" return identifier ;)) (case_statement "case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;" case number_literal : (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" identifier (argument_list "(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" ( identifier , identifier , identifier , (pointer_expression "*(undefined8 *)(param_4 + 4)" * (cast_expression "(undefined8 *)(param_4 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 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_0012bfcc;" goto statement_identifier ;)) (case_statement "case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    \n                    \n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;" case number_literal : (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" identifier (argument_list "(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" ( identifier , identifier , identifier , (pointer_expression "**(undefined8 **)(param_4 + 4)" * (pointer_expression "*(undefined8 **)(param_4 + 4)" * (cast_expression "(undefined8 **)(param_4 + 4)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar3 = *(long *)(param_4 + 4);" (assignment_expression "lVar3 = *(long *)(param_4 + 4)" identifier = (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }" if (parenthesized_expression "(*(long **)(lVar3 + 8) == (long *)0x0)" ( (binary_expression "*(long **)(lVar3 + 8) == (long *)0x0" (pointer_expression "*(long **)(lVar3 + 8)" * (cast_expression "(long **)(lVar3 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar3 + 8)" ( (binary_expression "lVar3 + 8" identifier + number_literal) )))) == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar2 = -1;\n          }" { (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) }) (else_clause "else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }" else (compound_statement "{\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }" { (expression_statement "lVar7 = **(long **)(lVar3 + 8);" (assignment_expression "lVar7 = **(long **)(lVar3 + 8)" identifier = (pointer_expression "**(long **)(lVar3 + 8)" * (pointer_expression "*(long **)(lVar3 + 8)" * (cast_expression "(long **)(lVar3 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar3 + 8)" ( (binary_expression "lVar3 + 8" identifier + number_literal) )))))) ;) (if_statement "if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar2 = 0;\n            }" { (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }" else (compound_statement "{\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }" { (expression_statement "lVar13 = 0;" (assignment_expression "lVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);" do (compound_statement "{\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              }" { (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,lVar7,0)" identifier (argument_list "(param_1,param_2,param_3,lVar7,0)" ( identifier , identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar3 = *(long *)(param_4 + 4);" (assignment_expression "lVar3 = *(long *)(param_4 + 4)" identifier = (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = (int)lVar13 + 1;" (assignment_expression "iVar2 = (int)lVar13 + 1" identifier = (binary_expression "(int)lVar13 + 1" (cast_expression "(int)lVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "lVar13 = lVar13 + 1;" (assignment_expression "lVar13 = lVar13 + 1" identifier = (binary_expression "lVar13 + 1" identifier + number_literal)) ;) (expression_statement "lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);" (assignment_expression "lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8)" identifier = (pointer_expression "*(long *)(*(long *)(lVar3 + 8) + lVar13 * 8)" * (cast_expression "(long *)(*(long *)(lVar3 + 8) + lVar13 * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar3 + 8) + lVar13 * 8)" ( (binary_expression "*(long *)(lVar3 + 8) + lVar13 * 8" (pointer_expression "*(long *)(lVar3 + 8)" * (cast_expression "(long *)(lVar3 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 8)" ( (binary_expression "lVar3 + 8" identifier + number_literal) )))) + (binary_expression "lVar13 * 8" identifier * number_literal)) ))))) ;) }) while (parenthesized_expression "(lVar7 != 0)" ( (binary_expression "lVar7 != 0" identifier != number_literal) )) ;) }))) }))) (expression_statement "iVar1 = *(int *)(lVar3 + 0x10);" (assignment_expression "iVar1 = *(int *)(lVar3 + 0x10)" identifier = (pointer_expression "*(int *)(lVar3 + 0x10)" * (cast_expression "(int *)(lVar3 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x10)" ( (binary_expression "lVar3 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50)" identifier = (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) ))))) ;) (labeled_statement "LAB_0012c31a:\n                    \n                    \n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);" statement_identifier : (expression_statement "uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);" (assignment_expression "uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1)" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE_00)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE_00" * identifier) )) (argument_list "(param_3,iVar2,iVar1)" ( identifier , identifier , identifier )))) ;)) (return_statement "return uVar4;" return identifier ;)) (case_statement "case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;" case number_literal : (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" identifier (argument_list "(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" ( identifier , identifier , identifier , (pointer_expression "*(undefined8 *)(param_4 + 4)" * (cast_expression "(undefined8 *)(param_4 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 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 + 0x58);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58)" identifier = (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) ))))) ;) (goto_statement "goto LAB_0012bfcc;" goto statement_identifier ;)) (case_statement "case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;" case number_literal : (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" identifier (argument_list "(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" ( identifier , identifier , identifier , (pointer_expression "**(undefined8 **)(param_4 + 4)" * (pointer_expression "*(undefined8 **)(param_4 + 4)" * (cast_expression "(undefined8 **)(param_4 + 4)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10))" identifier = (call_expression "(**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10))" (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,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10))" ( identifier , (pointer_expression "*(undefined8 *)(*(long *)(param_4 + 4) + 8)" * (cast_expression "(undefined8 *)(*(long *)(param_4 + 4) + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_4 + 4) + 8)" ( (binary_expression "*(long *)(param_4 + 4) + 8" (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) )))) + number_literal) )))) , (pointer_expression "*(undefined8 *)(*(long *)(param_4 + 4) + 0x10)" * (cast_expression "(undefined8 *)(*(long *)(param_4 + 4) + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_4 + 4) + 0x10)" ( (binary_expression "*(long *)(param_4 + 4) + 0x10" (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) )))) + number_literal) )))) )))) ;) (return_statement "return uVar4;" return identifier ;)) (case_statement "case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;" case number_literal : (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" identifier (argument_list "(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" ( identifier , identifier , identifier , (pointer_expression "**(undefined8 **)(param_4 + 4)" * (pointer_expression "*(undefined8 **)(param_4 + 4)" * (cast_expression "(undefined8 **)(param_4 + 4)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              )" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              )" identifier (argument_list "(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              )" ( identifier , identifier , identifier , (pointer_expression "*(undefined8 *)(*(long *)(param_4 + 4) + 8)" * (cast_expression "(undefined8 *)(*(long *)(param_4 + 4) + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_4 + 4) + 8)" ( (binary_expression "*(long *)(param_4 + 4) + 8" (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) )))) + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar3 = *(long *)(param_4 + 4);" (assignment_expression "lVar3 = *(long *)(param_4 + 4)" identifier = (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20))" identifier = (call_expression "(**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20))" (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,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20))" ( identifier , (pointer_expression "*(undefined8 *)(lVar3 + 0x10)" * (cast_expression "(undefined8 *)(lVar3 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x10)" ( (binary_expression "lVar3 + 0x10" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(lVar3 + 0x18)" * (cast_expression "(undefined8 *)(lVar3 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x18)" ( (binary_expression "lVar3 + 0x18" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(lVar3 + 0x20)" * (cast_expression "(undefined4 *)(lVar3 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x20)" ( (binary_expression "lVar3 + 0x20" identifier + number_literal) )))) )))) ;) (return_statement "return uVar4;" return identifier ;)) (case_statement "case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;" case number_literal : (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" identifier (argument_list "(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" ( identifier , identifier , identifier , (pointer_expression "**(undefined8 **)(param_4 + 4)" * (pointer_expression "*(undefined8 **)(param_4 + 4)" * (cast_expression "(undefined8 **)(param_4 + 4)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);" (assignment_expression "iVar2 = *(int *)(*(long *)(param_4 + 4) + 8)" identifier = (pointer_expression "*(int *)(*(long *)(param_4 + 4) + 8)" * (cast_expression "(int *)(*(long *)(param_4 + 4) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_4 + 4) + 8)" ( (binary_expression "*(long *)(param_4 + 4) + 8" (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70)" identifier = (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) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;" case number_literal : (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" identifier (argument_list "(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" ( identifier , identifier , identifier , (pointer_expression "**(undefined8 **)(param_4 + 4)" * (pointer_expression "*(undefined8 **)(param_4 + 4)" * (cast_expression "(undefined8 **)(param_4 + 4)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              )" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              )" identifier (argument_list "(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              )" ( identifier , identifier , identifier , (pointer_expression "*(undefined8 *)(*(long *)(param_4 + 4) + 8)" * (cast_expression "(undefined8 *)(*(long *)(param_4 + 4) + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_4 + 4) + 8)" ( (binary_expression "*(long *)(param_4 + 4) + 8" (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) )))) + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 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 + 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_0012bfcc;" goto statement_identifier ;)) (case_statement "case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;" case number_literal : (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" identifier (argument_list "(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" ( identifier , identifier , identifier , (pointer_expression "**(undefined8 **)(param_4 + 4)" * (pointer_expression "*(undefined8 **)(param_4 + 4)" * (cast_expression "(undefined8 **)(param_4 + 4)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar3 = *(long *)(param_4 + 4);" (assignment_expression "lVar3 = *(long *)(param_4 + 4)" identifier = (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }" if (parenthesized_expression "(*(long **)(lVar3 + 0x10) == (long *)0x0)" ( (binary_expression "*(long **)(lVar3 + 0x10) == (long *)0x0" (pointer_expression "*(long **)(lVar3 + 0x10)" * (cast_expression "(long **)(lVar3 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar3 + 0x10)" ( (binary_expression "lVar3 + 0x10" identifier + number_literal) )))) == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar2 = -1;\n          }" { (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) }) (else_clause "else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }" else (compound_statement "{\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }" { (expression_statement "lVar7 = **(long **)(lVar3 + 0x10);" (assignment_expression "lVar7 = **(long **)(lVar3 + 0x10)" identifier = (pointer_expression "**(long **)(lVar3 + 0x10)" * (pointer_expression "*(long **)(lVar3 + 0x10)" * (cast_expression "(long **)(lVar3 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar3 + 0x10)" ( (binary_expression "lVar3 + 0x10" identifier + number_literal) )))))) ;) (if_statement "if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar2 = 0;\n            }" { (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }" else (compound_statement "{\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }" { (expression_statement "lVar13 = 0;" (assignment_expression "lVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);" do (compound_statement "{\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              }" { (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,lVar7,0)" identifier (argument_list "(param_1,param_2,param_3,lVar7,0)" ( identifier , identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n                  return 0;\n                }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar3 = *(long *)(param_4 + 4);" (assignment_expression "lVar3 = *(long *)(param_4 + 4)" identifier = (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = (int)lVar13 + 1;" (assignment_expression "iVar2 = (int)lVar13 + 1" identifier = (binary_expression "(int)lVar13 + 1" (cast_expression "(int)lVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "lVar13 = lVar13 + 1;" (assignment_expression "lVar13 = lVar13 + 1" identifier = (binary_expression "lVar13 + 1" identifier + number_literal)) ;) (expression_statement "lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);" (assignment_expression "lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8)" identifier = (pointer_expression "*(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8)" * (cast_expression "(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar3 + 0x10) + lVar13 * 8)" ( (binary_expression "*(long *)(lVar3 + 0x10) + lVar13 * 8" (pointer_expression "*(long *)(lVar3 + 0x10)" * (cast_expression "(long *)(lVar3 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x10)" ( (binary_expression "lVar3 + 0x10" identifier + number_literal) )))) + (binary_expression "lVar13 * 8" identifier * number_literal)) ))))) ;) }) while (parenthesized_expression "(lVar7 != 0)" ( (binary_expression "lVar7 != 0" identifier != number_literal) )) ;) }))) }))) (expression_statement "lVar7 = *(long *)(lVar3 + 8);" (assignment_expression "lVar7 = *(long *)(lVar3 + 8)" identifier = (pointer_expression "*(long *)(lVar3 + 8)" * (cast_expression "(long *)(lVar3 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 8)" ( (binary_expression "lVar3 + 8" identifier + number_literal) ))))) ;) (if_statement "if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }" if (parenthesized_expression "(lVar7 != 0)" ( (binary_expression "lVar7 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }" { (expression_statement "iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);" (assignment_expression "iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,lVar7,0)" identifier (argument_list "(param_1,param_2,param_3,lVar7,0)" ( identifier , identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (iVar1 == 0) {\n              return 0;\n            }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar3 = *(long *)(param_4 + 4);" (assignment_expression "lVar3 = *(long *)(param_4 + 4)" identifier = (pointer_expression "*(long *)(param_4 + 4)" * (cast_expression "(long *)(param_4 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (expression_statement "lVar7 = *(long *)(lVar3 + 8);" (assignment_expression "lVar7 = *(long *)(lVar3 + 8)" identifier = (pointer_expression "*(long *)(lVar3 + 8)" * (cast_expression "(long *)(lVar3 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 8)" ( (binary_expression "lVar3 + 8" identifier + number_literal) ))))) ;) })) (expression_statement "uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18))" identifier = (call_expression "(**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18))" (parenthesized_expression "(**(code **)(param_2 + 0x80))" ( (pointer_expression "**(code **)(param_2 + 0x80)" * (pointer_expression "*(code **)(param_2 + 0x80)" * (cast_expression "(code **)(param_2 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x80)" ( (binary_expression "param_2 + 0x80" identifier + number_literal) ))))) )) (argument_list "(param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18))" ( identifier , (binary_expression "lVar7 != 0" identifier != number_literal) , identifier , (pointer_expression "*(undefined4 *)(lVar3 + 0x18)" * (cast_expression "(undefined4 *)(lVar3 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x18)" ( (binary_expression "lVar3 + 0x18" identifier + number_literal) )))) )))) ;) (return_statement "return uVar4;" return identifier ;)) (case_statement "case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;" case number_literal : (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" identifier (argument_list "(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" ( identifier , identifier , identifier , (pointer_expression "*(undefined8 *)(param_4 + 4)" * (cast_expression "(undefined8 *)(param_4 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 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 + 0x88);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88)" identifier = (pointer_expression "*(code **)(param_2 + 0x88)" * (cast_expression "(code **)(param_2 + 0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x88)" ( (binary_expression "param_2 + 0x88" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0012bfcc;" goto statement_identifier ;)) (case_statement "case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;" case number_literal : (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" identifier = (call_expression "FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" identifier (argument_list "(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" ( identifier , identifier , identifier , (pointer_expression "*(undefined8 *)(param_4 + 4)" * (cast_expression "(undefined8 *)(param_4 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 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 + 0x90);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90)" identifier = (pointer_expression "*(code **)(param_2 + 0x90)" * (cast_expression "(code **)(param_2 + 0x90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x90)" ( (binary_expression "param_2 + 0x90" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0012bfcc;" goto statement_identifier ;)) (case_statement "case 0x16:\n          goto switchD_0012bc67_caseD_16;" case number_literal : (goto_statement "goto switchD_0012bc67_caseD_16;" goto statement_identifier ;)) (case_statement "case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;" case number_literal : (labeled_statement "switchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);" statement_identifier : (expression_statement "plVar6 = *(long **)(param_4 + 4);" (assignment_expression "plVar6 = *(long **)(param_4 + 4)" identifier = (pointer_expression "*(long **)(param_4 + 4)" * (cast_expression "(long **)(param_4 + 4)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;)) (expression_statement "param_5 = *plVar6;" (assignment_expression "param_5 = *plVar6" identifier = (pointer_expression "*plVar6" * identifier)) ;) (goto_statement "goto LAB_0012bc96;" goto statement_identifier ;)) (case_statement "default:\n                    \n          abort();" default : (expression_statement "abort();" (call_expression "abort()" identifier (argument_list "()" ( ))) ;)) }))) (expression_statement "uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);" (assignment_expression "uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2)" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE_00)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE_00" * identifier) )) (argument_list "(param_3,iVar2)" ( identifier , identifier )))) ;) (return_statement "return uVar4;" return identifier ;) }))) (expression_statement "*(undefined4 *)(param_5 + 0x10) = *(undefined4 *)(param_1 + 0x30);" (assignment_expression "*(undefined4 *)(param_5 + 0x10) = *(undefined4 *)(param_1 + 0x30)" (pointer_expression "*(undefined4 *)(param_5 + 0x10)" * (cast_expression "(undefined4 *)(param_5 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x10)" ( (binary_expression "param_5 + 0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x30)" * (cast_expression "(undefined4 *)(param_1 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 != 0x16) {\n        if (iVar2 != 0x17) {\n          if (*(int *)(param_5 + 0x14) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }" if (parenthesized_expression "(iVar2 != 0x16)" ( (binary_expression "iVar2 != 0x16" identifier != number_literal) )) (compound_statement "{\n        if (iVar2 != 0x17) {\n          if (*(int *)(param_5 + 0x14) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }" { (if_statement "if (iVar2 != 0x17) {\n          if (*(int *)(param_5 + 0x14) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }" if (parenthesized_expression "(iVar2 != 0x17)" ( (binary_expression "iVar2 != 0x17" identifier != number_literal) )) (compound_statement "{\n          if (*(int *)(param_5 + 0x14) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }" { (if_statement "if (*(int *)(param_5 + 0x14) != 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 + 0x14) != 1)" ( (binary_expression "*(int *)(param_5 + 0x14) != 1" (pointer_expression "*(int *)(param_5 + 0x14)" * (cast_expression "(int *)(param_5 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x14)" ( (binary_expression "param_5 + 0x14" 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 "uVar4 = *(undefined8 *)(param_5 + 8);" (assignment_expression "uVar4 = *(undefined8 *)(param_5 + 8)" identifier = (pointer_expression "*(undefined8 *)(param_5 + 8)" * (cast_expression "(undefined8 *)(param_5 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 8)" ( (binary_expression "param_5 + 8" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0012bc55;" goto statement_identifier ;) })) (goto_statement "goto switchD_0012bc67_caseD_17;" goto statement_identifier ;) })) (labeled_statement "switchD_0012bc67_caseD_16:\n      param_5 = 0;" statement_identifier : (expression_statement "param_5 = 0;" (assignment_expression "param_5 = 0" identifier = number_literal) ;)) })) (expression_statement "plVar6 = *(long **)(param_4 + 4);" (assignment_expression "plVar6 = *(long **)(param_4 + 4)" identifier = (pointer_expression "*(long **)(param_4 + 4)" * (cast_expression "(long **)(param_4 + 4)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (expression_statement "lVar3 = *plVar6;" (assignment_expression "lVar3 = *plVar6" identifier = (pointer_expression "*plVar6" * identifier)) ;) (if_statement "if (*(int *)(lVar3 + 0x10) == *(int *)(param_1 + 0x30)) {\n      if (iVar2 == 0x16) {\n                    \n                    \n        uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));\n        return uVar4;\n      }\nLAB_0012c43d:\n      piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0);\n      if (piVar5 != (int *)0x0) {\n        iVar2 = *piVar5;\n        uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n        if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n        goto LAB_0012c3c5;\n      }\n      goto LAB_0012bff3;\n    }" if (parenthesized_expression "(*(int *)(lVar3 + 0x10) == *(int *)(param_1 + 0x30))" ( (binary_expression "*(int *)(lVar3 + 0x10) == *(int *)(param_1 + 0x30)" (pointer_expression "*(int *)(lVar3 + 0x10)" * (cast_expression "(int *)(lVar3 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x10)" ( (binary_expression "lVar3 + 0x10" identifier + number_literal) )))) == (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) )) (compound_statement "{\n      if (iVar2 == 0x16) {\n                    \n                    \n        uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));\n        return uVar4;\n      }\nLAB_0012c43d:\n      piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0);\n      if (piVar5 != (int *)0x0) {\n        iVar2 = *piVar5;\n        uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n        if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n        goto LAB_0012c3c5;\n      }\n      goto LAB_0012bff3;\n    }" { (if_statement "if (iVar2 == 0x16) {\n                    \n                    \n        uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));\n        return uVar4;\n      }" if (parenthesized_expression "(iVar2 == 0x16)" ( (binary_expression "iVar2 == 0x16" identifier == number_literal) )) (compound_statement "{\n                    \n                    \n        uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));\n        return uVar4;\n      }" { (expression_statement "uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));" (assignment_expression "uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8))" identifier = (call_expression "(**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8))" (parenthesized_expression "(**(code **)(param_2 + 0xf0))" ( (pointer_expression "**(code **)(param_2 + 0xf0)" * (pointer_expression "*(code **)(param_2 + 0xf0)" * (cast_expression "(code **)(param_2 + 0xf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xf0)" ( (binary_expression "param_2 + 0xf0" identifier + number_literal) ))))) )) (argument_list "(param_3,*(undefined8 *)(lVar3 + 8))" ( identifier , (pointer_expression "*(undefined8 *)(lVar3 + 8)" * (cast_expression "(undefined8 *)(lVar3 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 8)" ( (binary_expression "lVar3 + 8" identifier + number_literal) )))) )))) ;) (return_statement "return uVar4;" return identifier ;) })) (labeled_statement "LAB_0012c43d:\n      piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0);" statement_identifier : (expression_statement "piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0);" (assignment_expression "piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0)" identifier = (cast_expression "(int *)FUN_0012b0d0(param_1,param_4,0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0012b0d0(param_1,param_4,0)" identifier (argument_list "(param_1,param_4,0)" ( identifier , identifier , number_literal ))))) ;)) (if_statement "if (piVar5 != (int *)0x0) {\n        iVar2 = *piVar5;\n        uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n        if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n        goto LAB_0012c3c5;\n      }" if (parenthesized_expression "(piVar5 != (int *)0x0)" ( (binary_expression "piVar5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar2 = *piVar5;\n        uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n        if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n        goto LAB_0012c3c5;\n      }" { (expression_statement "iVar2 = *piVar5;" (assignment_expression "iVar2 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);" (assignment_expression "uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8)" identifier = (pointer_expression "*(undefined8 *)(**(long **)(param_4 + 4) + 8)" * (cast_expression "(undefined8 *)(**(long **)(param_4 + 4) + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(long **)(param_4 + 4) + 8)" ( (binary_expression "**(long **)(param_4 + 4) + 8" (pointer_expression "**(long **)(param_4 + 4)" * (pointer_expression "*(long **)(param_4 + 4)" * (cast_expression "(long **)(param_4 + 4)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }\n        else {\n          uVar12 = 0;\n        }" if (parenthesized_expression "((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0))" ( (binary_expression "(iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)" (parenthesized_expression "(iVar2 - 7U < 4)" ( (binary_expression "iVar2 - 7U < 4" (binary_expression "iVar2 - 7U" identifier - number_literal) < number_literal) )) && (parenthesized_expression "(*(long *)(piVar5 + 4) != 0)" ( (binary_expression "*(long *)(piVar5 + 4) != 0" (pointer_expression "*(long *)(piVar5 + 4)" * (cast_expression "(long *)(piVar5 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 4)" ( (binary_expression "piVar5 + 4" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }" { (expression_statement "uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);" (assignment_expression "uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc)" identifier = (pointer_expression "*(uint *)(*(long *)(piVar5 + 4) + 0xc)" * (cast_expression "(uint *)(*(long *)(piVar5 + 4) + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(piVar5 + 4) + 0xc)" ( (binary_expression "*(long *)(piVar5 + 4) + 0xc" (pointer_expression "*(long *)(piVar5 + 4)" * (cast_expression "(long *)(piVar5 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 4)" ( (binary_expression "piVar5 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }" if (parenthesized_expression "(uVar12 <= *(uint *)(param_1 + 0x38))" ( (binary_expression "uVar12 <= *(uint *)(param_1 + 0x38)" identifier <= (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) )) (compound_statement "{\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }" { (expression_statement "iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);" (assignment_expression "iVar2 = FUN_0012bae0(param_1,uVar4,piVar5)" identifier = (call_expression "FUN_0012bae0(param_1,uVar4,piVar5)" identifier (argument_list "(param_1,uVar4,piVar5)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n              return 0;\n            }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar2 = *piVar5;" (assignment_expression "iVar2 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);" (assignment_expression "uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc)" identifier = (pointer_expression "*(uint *)(*(long *)(piVar5 + 4) + 0xc)" * (cast_expression "(uint *)(*(long *)(piVar5 + 4) + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(piVar5 + 4) + 0xc)" ( (binary_expression "*(long *)(piVar5 + 4) + 0xc" (pointer_expression "*(long *)(piVar5 + 4)" * (cast_expression "(long *)(piVar5 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 4)" ( (binary_expression "piVar5 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);" (assignment_expression "uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8)" identifier = (pointer_expression "*(undefined8 *)(**(long **)(param_4 + 4) + 8)" * (cast_expression "(undefined8 *)(**(long **)(param_4 + 4) + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(long **)(param_4 + 4) + 8)" ( (binary_expression "**(long **)(param_4 + 4) + 8" (pointer_expression "**(long **)(param_4 + 4)" * (pointer_expression "*(long **)(param_4 + 4)" * (cast_expression "(long **)(param_4 + 4)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) + number_literal) ))))) ;) })) }) (else_clause "else {\n          uVar12 = 0;\n        }" else (compound_statement "{\n          uVar12 = 0;\n        }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) }))) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8)" identifier = (pointer_expression "*(code **)(param_2 + 0xf8)" * (cast_expression "(code **)(param_2 + 0xf8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xf8)" ( (binary_expression "param_2 + 0xf8" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0012c3c5;" goto statement_identifier ;) })) (goto_statement "goto LAB_0012bff3;" goto statement_identifier ;) })) (if_statement "if (iVar2 != 0x17) goto LAB_0012bc2b;" if (parenthesized_expression "(iVar2 != 0x17)" ( (binary_expression "iVar2 != 0x17" identifier != number_literal) )) (goto_statement "goto LAB_0012bc2b;" goto statement_identifier ;)) (if_statement "if (lVar3 != param_5) goto LAB_0012c43d;" if (parenthesized_expression "(lVar3 != param_5)" ( (binary_expression "lVar3 != param_5" identifier != identifier) )) (goto_statement "goto LAB_0012c43d;" goto statement_identifier ;)) (expression_statement "*(int *)(param_5 + 0x10) = *(int *)(param_1 + 0x30);" (assignment_expression "*(int *)(param_5 + 0x10) = *(int *)(param_1 + 0x30)" (pointer_expression "*(int *)(param_5 + 0x10)" * (cast_expression "(int *)(param_5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x10)" ( (binary_expression "param_5 + 0x10" identifier + number_literal) )))) = (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0012bc96:\n    param_4 = (int *)plVar6[1];" statement_identifier : (expression_statement "param_4 = (int *)plVar6[1];" (assignment_expression "param_4 = (int *)plVar6[1]" identifier = (cast_expression "(int *)plVar6[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar6[1]" identifier [ number_literal ]))) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) (labeled_statement "switchD_0012bc67_caseD_1:\n  param_4 = *(int **)**(undefined8 **)(param_4 + 4);" statement_identifier : (expression_statement "param_4 = *(int **)**(undefined8 **)(param_4 + 4);" (assignment_expression "param_4 = *(int **)**(undefined8 **)(param_4 + 4)" identifier = (pointer_expression "*(int **)**(undefined8 **)(param_4 + 4)" * (cast_expression "(int **)**(undefined8 **)(param_4 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "**(undefined8 **)(param_4 + 4)" * (pointer_expression "*(undefined8 **)(param_4 + 4)" * (cast_expression "(undefined8 **)(param_4 + 4)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) )))))))) ;)) (if_statement "if (param_4 == (int *)0x0) {\nLAB_0012bff3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x10);\nLAB_0012bfcc:\n                    \n                    \n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3);\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_0012bff3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x10);\nLAB_0012bfcc:\n                    \n                    \n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3);\n    return uVar4;\n  }" { (labeled_statement "LAB_0012bff3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x10);" statement_identifier : (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x10);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x10)" identifier = (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) ))))) ;)) (labeled_statement "LAB_0012bfcc:\n                    \n                    \n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3);" statement_identifier : (expression_statement "uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3);" (assignment_expression "uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3)" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE_00)(param_3)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE_00)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE_00" * identifier) )) (argument_list "(param_3)" ( identifier )))) ;)) (return_statement "return uVar4;" return identifier ;) })) (goto_statement "goto LAB_0012bc21;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 ( 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 = (subscript_expression IDENT [ 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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;)) (case_statement case 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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (break_statement break ;)) (case_statement case 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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (break_statement break ;)) (case_statement case 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 * (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 = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 = (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (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 ( IDENT , IDENT , IDENT )))) ;) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (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 (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) , (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (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 ( IDENT , IDENT , IDENT , (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) , (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 (cast_expression ( (type_descriptor (sized_type_specifier long)) ) 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 ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 * (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + 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 :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 = BOOL) ;) (expression_statement (assignment_expression IDENT = 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 *)) ) (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 IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + 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) ))))) ;)) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 { (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 (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 * 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) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 , IDENT , IDENT , 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 = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) != (cast_expression ( (type_descriptor (sized_type_specifier long) (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 ( IDENT , IDENT , IDENT , (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) 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) , (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 (cast_expression ( (type_descriptor (sized_type_specifier long)) ) 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 ]) , (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 { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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) + (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor (sized_type_specifier long) (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 ( IDENT , IDENT , IDENT , (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 , (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 (cast_expression ( (type_descriptor (sized_type_specifier long)) ) 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 { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 ]) + (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor (sized_type_specifier long) (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) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ])))) ;) (while_statement while (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 (subscript_expression IDENT [ LIT ]) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (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 ( IDENT , IDENT , IDENT , (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 )))) ;) }) (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) , (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 (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 ]) + (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * 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 , IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 ( IDENT , IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 ( IDENT , IDENT , IDENT , (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (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 = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , 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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) }))) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 ( IDENT , IDENT , IDENT )))) ;)) (return_statement return IDENT ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 ( IDENT , IDENT , IDENT , (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_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 (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )))) ;) (return_statement return IDENT ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_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 ( IDENT , IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 (sized_type_specifier long) (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 , (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 ( IDENT , IDENT , IDENT , (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_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 *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 ( IDENT , IDENT , IDENT , (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_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 ( IDENT , IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 ( IDENT , IDENT , IDENT , (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (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 = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , 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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) }))) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 , IDENT , IDENT , 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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 ( IDENT , IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 ( IDENT , IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_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 ( ))) ;)) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_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) ))))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (return_statement return IDENT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , 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 = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 ( IDENT , IDENT , IDENT )))) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (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 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (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 ( IDENT )))) ;)) (return_statement return IDENT ;) })) (goto_statement goto statement_identifier ;) })))
(function_definition "undefined8 FUN_0012bc00(long param_1,long param_2,undefined8 param_3,int *param_4,long param_5)\n\n{\n  int iVar1;\n  int iVar2;\n  long lVar3;\n  code *UNRECOVERED_JUMPTABLE_00;\n  undefined8 uVar4;\n  int *piVar5;\n  long *plVar6;\n  long lVar7;\n  undefined8 uVar8;\n  ulong uVar9;\n  undefined4 uVar10;\n  undefined8 uVar11;\n  uint uVar12;\n  long lVar13;\n  undefined8 *puVar14;\n  bool bVar15;\n  undefined8 *local_48;\n  uint local_3c;\n  \nLAB_0012bc21:\n  do {\n    for (; iVar2 = *param_4, 1 < iVar2 - 0x16U; param_4 = *(int **)(*(long *)(param_4 + 4) + 8)) {\nLAB_0012bc2b:\n      if (param_5 == 0) {\n        uVar4 = 0;\nLAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    \n                    \n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    \n          abort();\n        }\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 0x10) = *(undefined4 *)(param_1 + 0x30);\n      if (iVar2 != 0x16) {\n        if (iVar2 != 0x17) {\n          if (*(int *)(param_5 + 0x14) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }\nswitchD_0012bc67_caseD_16:\n      param_5 = 0;\n    }\n    plVar6 = *(long **)(param_4 + 4);\n    lVar3 = *plVar6;\n    if (*(int *)(lVar3 + 0x10) == *(int *)(param_1 + 0x30)) {\n      if (iVar2 == 0x16) {\n                    \n                    \n        uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));\n        return uVar4;\n      }\nLAB_0012c43d:\n      piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0);\n      if (piVar5 != (int *)0x0) {\n        iVar2 = *piVar5;\n        uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n        if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n        goto LAB_0012c3c5;\n      }\n      goto LAB_0012bff3;\n    }\n    if (iVar2 != 0x17) goto LAB_0012bc2b;\n    if (lVar3 != param_5) goto LAB_0012c43d;\n    *(int *)(param_5 + 0x10) = *(int *)(param_1 + 0x30);\nLAB_0012bc96:\n    param_4 = (int *)plVar6[1];\n  } while( true );\nswitchD_0012bc67_caseD_1:\n  param_4 = *(int **)**(undefined8 **)(param_4 + 4);\n  if (param_4 == (int *)0x0) {\nLAB_0012bff3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x10);\nLAB_0012bfcc:\n                    \n                    \n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3);\n    return uVar4;\n  }\n  goto LAB_0012bc21;\n}" (type_identifier "undefined8") (function_declarator "FUN_0012bc00(long param_1,long param_2,undefined8 param_3,int *param_4,long param_5)" (identifier "FUN_0012bc00") (parameter_list "(long param_1,long param_2,undefined8 param_3,int *param_4,long param_5)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) (, ",") (parameter_declaration "int *param_4" (primitive_type "int") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "long param_5" (sized_type_specifier "long" (long "long")) (identifier "param_5")) () ")"))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  long lVar3;\n  code *UNRECOVERED_JUMPTABLE_00;\n  undefined8 uVar4;\n  int *piVar5;\n  long *plVar6;\n  long lVar7;\n  undefined8 uVar8;\n  ulong uVar9;\n  undefined4 uVar10;\n  undefined8 uVar11;\n  uint uVar12;\n  long lVar13;\n  undefined8 *puVar14;\n  bool bVar15;\n  undefined8 *local_48;\n  uint local_3c;\n  \nLAB_0012bc21:\n  do {\n    for (; iVar2 = *param_4, 1 < iVar2 - 0x16U; param_4 = *(int **)(*(long *)(param_4 + 4) + 8)) {\nLAB_0012bc2b:\n      if (param_5 == 0) {\n        uVar4 = 0;\nLAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    \n                    \n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    \n          abort();\n        }\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 0x10) = *(undefined4 *)(param_1 + 0x30);\n      if (iVar2 != 0x16) {\n        if (iVar2 != 0x17) {\n          if (*(int *)(param_5 + 0x14) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }\nswitchD_0012bc67_caseD_16:\n      param_5 = 0;\n    }\n    plVar6 = *(long **)(param_4 + 4);\n    lVar3 = *plVar6;\n    if (*(int *)(lVar3 + 0x10) == *(int *)(param_1 + 0x30)) {\n      if (iVar2 == 0x16) {\n                    \n                    \n        uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));\n        return uVar4;\n      }\nLAB_0012c43d:\n      piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0);\n      if (piVar5 != (int *)0x0) {\n        iVar2 = *piVar5;\n        uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n        if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n        goto LAB_0012c3c5;\n      }\n      goto LAB_0012bff3;\n    }\n    if (iVar2 != 0x17) goto LAB_0012bc2b;\n    if (lVar3 != param_5) goto LAB_0012c43d;\n    *(int *)(param_5 + 0x10) = *(int *)(param_1 + 0x30);\nLAB_0012bc96:\n    param_4 = (int *)plVar6[1];\n  } while( true );\nswitchD_0012bc67_caseD_1:\n  param_4 = *(int **)**(undefined8 **)(param_4 + 4);\n  if (param_4 == (int *)0x0) {\nLAB_0012bff3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x10);\nLAB_0012bfcc:\n                    \n                    \n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3);\n    return uVar4;\n  }\n  goto LAB_0012bc21;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (declaration "code *UNRECOVERED_JUMPTABLE_00;" (type_identifier "code") (pointer_declarator "*UNRECOVERED_JUMPTABLE_00" (* "*") (identifier "UNRECOVERED_JUMPTABLE_00")) (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "long *plVar6;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar6" (* "*") (identifier "plVar6")) (; ";")) (declaration "long lVar7;" (sized_type_specifier "long" (long "long")) (identifier "lVar7") (; ";")) (declaration "undefined8 uVar8;" (type_identifier "undefined8") (identifier "uVar8") (; ";")) (declaration "ulong uVar9;" (type_identifier "ulong") (identifier "uVar9") (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "undefined8 uVar11;" (type_identifier "undefined8") (identifier "uVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "long lVar13;" (sized_type_specifier "long" (long "long")) (identifier "lVar13") (; ";")) (declaration "undefined8 *puVar14;" (type_identifier "undefined8") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "bool bVar15;" (primitive_type "bool") (identifier "bVar15") (; ";")) (declaration "undefined8 *local_48;" (type_identifier "undefined8") (pointer_declarator "*local_48" (* "*") (identifier "local_48")) (; ";")) (declaration "uint local_3c;" (type_identifier "uint") (identifier "local_3c") (; ";")) (labeled_statement "LAB_0012bc21:\n  do {\n    for (; iVar2 = *param_4, 1 < iVar2 - 0x16U; param_4 = *(int **)(*(long *)(param_4 + 4) + 8)) {\nLAB_0012bc2b:\n      if (param_5 == 0) {\n        uVar4 = 0;\nLAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    \n                    \n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    \n          abort();\n        }\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 0x10) = *(undefined4 *)(param_1 + 0x30);\n      if (iVar2 != 0x16) {\n        if (iVar2 != 0x17) {\n          if (*(int *)(param_5 + 0x14) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }\nswitchD_0012bc67_caseD_16:\n      param_5 = 0;\n    }\n    plVar6 = *(long **)(param_4 + 4);\n    lVar3 = *plVar6;\n    if (*(int *)(lVar3 + 0x10) == *(int *)(param_1 + 0x30)) {\n      if (iVar2 == 0x16) {\n                    \n                    \n        uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));\n        return uVar4;\n      }\nLAB_0012c43d:\n      piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0);\n      if (piVar5 != (int *)0x0) {\n        iVar2 = *piVar5;\n        uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n        if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n        goto LAB_0012c3c5;\n      }\n      goto LAB_0012bff3;\n    }\n    if (iVar2 != 0x17) goto LAB_0012bc2b;\n    if (lVar3 != param_5) goto LAB_0012c43d;\n    *(int *)(param_5 + 0x10) = *(int *)(param_1 + 0x30);\nLAB_0012bc96:\n    param_4 = (int *)plVar6[1];\n  } while( true );" (statement_identifier "LAB_0012bc21") (: ":") (do_statement "do {\n    for (; iVar2 = *param_4, 1 < iVar2 - 0x16U; param_4 = *(int **)(*(long *)(param_4 + 4) + 8)) {\nLAB_0012bc2b:\n      if (param_5 == 0) {\n        uVar4 = 0;\nLAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    \n                    \n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    \n          abort();\n        }\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 0x10) = *(undefined4 *)(param_1 + 0x30);\n      if (iVar2 != 0x16) {\n        if (iVar2 != 0x17) {\n          if (*(int *)(param_5 + 0x14) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }\nswitchD_0012bc67_caseD_16:\n      param_5 = 0;\n    }\n    plVar6 = *(long **)(param_4 + 4);\n    lVar3 = *plVar6;\n    if (*(int *)(lVar3 + 0x10) == *(int *)(param_1 + 0x30)) {\n      if (iVar2 == 0x16) {\n                    \n                    \n        uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));\n        return uVar4;\n      }\nLAB_0012c43d:\n      piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0);\n      if (piVar5 != (int *)0x0) {\n        iVar2 = *piVar5;\n        uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n        if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n        goto LAB_0012c3c5;\n      }\n      goto LAB_0012bff3;\n    }\n    if (iVar2 != 0x17) goto LAB_0012bc2b;\n    if (lVar3 != param_5) goto LAB_0012c43d;\n    *(int *)(param_5 + 0x10) = *(int *)(param_1 + 0x30);\nLAB_0012bc96:\n    param_4 = (int *)plVar6[1];\n  } while( true );" (do "do") (compound_statement "{\n    for (; iVar2 = *param_4, 1 < iVar2 - 0x16U; param_4 = *(int **)(*(long *)(param_4 + 4) + 8)) {\nLAB_0012bc2b:\n      if (param_5 == 0) {\n        uVar4 = 0;\nLAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    \n                    \n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    \n          abort();\n        }\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 0x10) = *(undefined4 *)(param_1 + 0x30);\n      if (iVar2 != 0x16) {\n        if (iVar2 != 0x17) {\n          if (*(int *)(param_5 + 0x14) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }\nswitchD_0012bc67_caseD_16:\n      param_5 = 0;\n    }\n    plVar6 = *(long **)(param_4 + 4);\n    lVar3 = *plVar6;\n    if (*(int *)(lVar3 + 0x10) == *(int *)(param_1 + 0x30)) {\n      if (iVar2 == 0x16) {\n                    \n                    \n        uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));\n        return uVar4;\n      }\nLAB_0012c43d:\n      piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0);\n      if (piVar5 != (int *)0x0) {\n        iVar2 = *piVar5;\n        uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n        if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n        goto LAB_0012c3c5;\n      }\n      goto LAB_0012bff3;\n    }\n    if (iVar2 != 0x17) goto LAB_0012bc2b;\n    if (lVar3 != param_5) goto LAB_0012c43d;\n    *(int *)(param_5 + 0x10) = *(int *)(param_1 + 0x30);\nLAB_0012bc96:\n    param_4 = (int *)plVar6[1];\n  }" ({ "{") (for_statement "for (; iVar2 = *param_4, 1 < iVar2 - 0x16U; param_4 = *(int **)(*(long *)(param_4 + 4) + 8)) {\nLAB_0012bc2b:\n      if (param_5 == 0) {\n        uVar4 = 0;\nLAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    \n                    \n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    \n          abort();\n        }\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 0x10) = *(undefined4 *)(param_1 + 0x30);\n      if (iVar2 != 0x16) {\n        if (iVar2 != 0x17) {\n          if (*(int *)(param_5 + 0x14) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }\nswitchD_0012bc67_caseD_16:\n      param_5 = 0;\n    }" (for "for") (( "(") (; ";") (comma_expression "iVar2 = *param_4, 1 < iVar2 - 0x16U" (assignment_expression "iVar2 = *param_4" (identifier "iVar2") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (, ",") (binary_expression "1 < iVar2 - 0x16U" (number_literal "1") (< "<") (binary_expression "iVar2 - 0x16U" (identifier "iVar2") (- "-") (number_literal "0x16U")))) (; ";") (assignment_expression "param_4 = *(int **)(*(long *)(param_4 + 4) + 8)" (identifier "param_4") (= "=") (pointer_expression "*(int **)(*(long *)(param_4 + 4) + 8)" (* "*") (cast_expression "(int **)(*(long *)(param_4 + 4) + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(param_4 + 4) + 8)" (( "(") (binary_expression "*(long *)(param_4 + 4) + 8" (pointer_expression "*(long *)(param_4 + 4)" (* "*") (cast_expression "(long *)(param_4 + 4)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) () ")") (compound_statement "{\nLAB_0012bc2b:\n      if (param_5 == 0) {\n        uVar4 = 0;\nLAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    \n                    \n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    \n          abort();\n        }\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);\n        return uVar4;\n      }\n      *(undefined4 *)(param_5 + 0x10) = *(undefined4 *)(param_1 + 0x30);\n      if (iVar2 != 0x16) {\n        if (iVar2 != 0x17) {\n          if (*(int *)(param_5 + 0x14) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }\nswitchD_0012bc67_caseD_16:\n      param_5 = 0;\n    }" ({ "{") (labeled_statement "LAB_0012bc2b:\n      if (param_5 == 0) {\n        uVar4 = 0;\nLAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    \n                    \n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    \n          abort();\n        }\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);\n        return uVar4;\n      }" (statement_identifier "LAB_0012bc2b") (: ":") (if_statement "if (param_5 == 0) {\n        uVar4 = 0;\nLAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    \n                    \n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    \n          abort();\n        }\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);\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        uVar4 = 0;\nLAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    \n                    \n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    \n          abort();\n        }\n                    \n                    \n        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);\n        return uVar4;\n      }" ({ "{") (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0012bc55:\n        switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    \n                    \n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    \n          abort();\n        }" (statement_identifier "LAB_0012bc55") (: ":") (switch_statement "switch(iVar2) {\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    \n                    \n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    \n          abort();\n        }" (switch "switch") (parenthesized_expression "(iVar2)" (( "(") (identifier "iVar2") () ")")) (compound_statement "{\n        case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%s\n",uVar4);\n          return 0;\n        case 1:\n          goto switchD_0012bc67_caseD_1;\n        case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;\n        case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;\n        case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;\n        case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;\n        case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;\n        case 7:\n        case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;\n        case 9:\n        case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;\n        case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;\n        case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;\n        case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    \n                    \n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;\n        case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;\n        case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;\n        case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;\n        case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;\n        case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;\n        case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;\n        case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;\n        case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;\n        case 0x16:\n          goto switchD_0012bc67_caseD_16;\n        case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;\n        default:\n                    \n          abort();\n        }" ({ "{") (case_statement "case 0:\n          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);\n          fprintf(stderr,"%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(stderr,"%s\n",uVar4);" (call_expression "fprintf(stderr,"%s\n",uVar4)" (identifier "fprintf") (argument_list "(stderr,"%s\n",uVar4)" (( "(") (identifier "stderr") (, ",") (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 switchD_0012bc67_caseD_1;" (case "case") (number_literal "1") (: ":") (goto_statement "goto switchD_0012bc67_caseD_1;" (goto "goto") (statement_identifier "switchD_0012bc67_caseD_1") (; ";"))) (case_statement "case 2:\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);\n          goto LAB_0012bfcc;" (case "case") (number_literal "2") (: ":") (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")) () ")"))))) (; ";")) (goto_statement "goto LAB_0012bfcc;" (goto "goto") (statement_identifier "LAB_0012bfcc") (; ";"))) (case_statement "case 3:\n          iVar1 = param_4[4];\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);\n          goto LAB_0012c31a;" (case "case") (number_literal "3") (: ":") (expression_statement "iVar1 = param_4[4];" (assignment_expression "iVar1 = param_4[4]" (identifier "iVar1") (= "=") (subscript_expression "param_4[4]" (identifier "param_4") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "iVar2 = param_4[1];" (assignment_expression "iVar2 = param_4[1]" (identifier "iVar2") (= "=") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20)" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (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")) () ")"))))) (; ";")) (goto_statement "goto LAB_0012c31a;" (goto "goto") (statement_identifier "LAB_0012c31a") (; ";"))) (case_statement "case 4:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);\n          break;" (case "case") (number_literal "4") (: ":") (expression_statement "iVar2 = param_4[1];" (assignment_expression "iVar2 = param_4[1]" (identifier "iVar2") (= "=") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28)" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (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")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 5:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);\n          break;" (case "case") (number_literal "5") (: ":") (expression_statement "iVar2 = param_4[1];" (assignment_expression "iVar2 = param_4[1]" (identifier "iVar2") (= "=") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30)" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (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")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 6:\n          iVar2 = param_4[1];\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);\n          break;" (case "case") (number_literal "6") (: ":") (expression_statement "iVar2 = param_4[1];" (assignment_expression "iVar2 = param_4[1]" (identifier "iVar2") (= "=") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (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 7:" (case "case") (number_literal "7") (: ":")) (case_statement "case 8:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }\n          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);\n          goto LAB_0012bfcc;" (case "case") (number_literal "8") (: ":") (expression_statement "lVar3 = *(long *)(param_4 + 4);" (assignment_expression "lVar3 = *(long *)(param_4 + 4)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(param_4 + 4)" (* "*") (cast_expression "(long *)(param_4 + 4)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (lVar3 == 0) {\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }" (if "if") (parenthesized_expression "(lVar3 == 0)" (( "(") (binary_expression "lVar3 == 0" (identifier "lVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            uVar10 = 0;\n          }" ({ "{") (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98)" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (pointer_expression "*(code **)(param_2 + 0x98)" (* "*") (cast_expression "(code **)(param_2 + 0x98)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x98)" (( "(") (binary_expression "param_2 + 0x98" (identifier "param_2") (+ "+") (number_literal "0x98")) () ")"))))) (; ";")) (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 "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }" (else "else") (compound_statement "{\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }\n            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);\n            iVar1 = param_4[1];\n            *(int *)(lVar3 + 8) = iVar2;\n            uVar10 = *(undefined4 *)(lVar3 + 0xc);\n            iVar2 = *param_4;\n          }" ({ "{") (expression_statement "uVar12 = *(uint *)(lVar3 + 0xc);" (assignment_expression "uVar12 = *(uint *)(lVar3 + 0xc)" (identifier "uVar12") (= "=") (pointer_expression "*(uint *)(lVar3 + 0xc)" (* "*") (cast_expression "(uint *)(lVar3 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0xc)" (( "(") (binary_expression "lVar3 + 0xc" (identifier "lVar3") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }" (if "if") (parenthesized_expression "(*(uint *)(param_1 + 0x38) < uVar12)" (( "(") (binary_expression "*(uint *)(param_1 + 0x38) < uVar12" (pointer_expression "*(uint *)(param_1 + 0x38)" (* "*") (cast_expression "(uint *)(param_1 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (< "<") (identifier "uVar12")) () ")")) (compound_statement "{\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }\n            }" ({ "{") (expression_statement "iVar2 = *(int *)(param_1 + 0x30);" (assignment_expression "iVar2 = *(int *)(param_1 + 0x30)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(param_1 + 0x30)" (* "*") (cast_expression "(int *)(param_1 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (if_statement "if (*(int *)(lVar3 + 8) == iVar2) {\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }" (if "if") (parenthesized_expression "(*(int *)(lVar3 + 8) == iVar2)" (( "(") (binary_expression "*(int *)(lVar3 + 8) == iVar2" (pointer_expression "*(int *)(lVar3 + 8)" (* "*") (cast_expression "(int *)(lVar3 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 8)" (( "(") (binary_expression "lVar3 + 8" (identifier "lVar3") (+ "+") (number_literal "8")) () ")")))) (== "==") (identifier "iVar2")) () ")")) (compound_statement "{\nLAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                iVar2 = *param_4;\nLAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);\n                return uVar4;\n              }" ({ "{") (labeled_statement "LAB_0012c414:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);" (statement_identifier "LAB_0012c414") (: ":") (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8)" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (pointer_expression "*(code **)(param_2 + 0xf8)" (* "*") (cast_expression "(code **)(param_2 + 0xf8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0xf8)" (( "(") (binary_expression "param_2 + 0xf8" (identifier "param_2") (+ "+") (number_literal "0xf8")) () ")"))))) (; ";"))) (expression_statement "iVar2 = *param_4;" (assignment_expression "iVar2 = *param_4" (identifier "iVar2") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (labeled_statement "LAB_0012c3c5:\n                    \n                    \n                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);" (statement_identifier "LAB_0012c3c5") (: ":") (expression_statement "uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);" (assignment_expression "uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2)" (identifier "uVar4") (= "=") (call_expression "(*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE_00)" (( "(") (pointer_expression "*UNRECOVERED_JUMPTABLE_00" (* "*") (identifier "UNRECOVERED_JUMPTABLE_00")) () ")")) (argument_list "(param_3,uVar4,uVar12,iVar2)" (( "(") (identifier "param_3") (, ",") (identifier "uVar4") (, ",") (identifier "uVar12") (, ",") (identifier "iVar2") () ")")))) (; ";"))) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }" (else "else") (compound_statement "{\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar2 = *(int *)(param_1 + 0x30);\n              if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }\n            }" ({ "{") (expression_statement "iVar2 = FUN_0012bae0(param_1,uVar4,param_4);" (assignment_expression "iVar2 = FUN_0012bae0(param_1,uVar4,param_4)" (identifier "iVar2") (= "=") (call_expression "FUN_0012bae0(param_1,uVar4,param_4)" (identifier "FUN_0012bae0") (argument_list "(param_1,uVar4,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "uVar4") (, ",") (identifier "param_4") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n                return 0;\n              }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                return 0;\n              }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "lVar3 = *(long *)(param_4 + 4);" (assignment_expression "lVar3 = *(long *)(param_4 + 4)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(param_4 + 4)" (* "*") (cast_expression "(long *)(param_4 + 4)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar2 = *(int *)(param_1 + 0x30);" (assignment_expression "iVar2 = *(int *)(param_1 + 0x30)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(param_1 + 0x30)" (* "*") (cast_expression "(int *)(param_1 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (if_statement "if (iVar2 == *(int *)(lVar3 + 8)) {\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }" (if "if") (parenthesized_expression "(iVar2 == *(int *)(lVar3 + 8))" (( "(") (binary_expression "iVar2 == *(int *)(lVar3 + 8)" (identifier "iVar2") (== "==") (pointer_expression "*(int *)(lVar3 + 8)" (* "*") (cast_expression "(int *)(lVar3 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 8)" (( "(") (binary_expression "lVar3 + 8" (identifier "lVar3") (+ "+") (number_literal "8")) () ")"))))) () ")")) (compound_statement "{\n                uVar12 = *(uint *)(lVar3 + 0xc);\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }\n                goto LAB_0012c414;\n              }" ({ "{") (expression_statement "uVar12 = *(uint *)(lVar3 + 0xc);" (assignment_expression "uVar12 = *(uint *)(lVar3 + 0xc)" (identifier "uVar12") (= "=") (pointer_expression "*(uint *)(lVar3 + 0xc)" (* "*") (cast_expression "(uint *)(lVar3 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0xc)" (( "(") (binary_expression "lVar3 + 0xc" (identifier "lVar3") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }" (if "if") (parenthesized_expression "(uVar12 <= *(uint *)(param_1 + 0x38))" (( "(") (binary_expression "uVar12 <= *(uint *)(param_1 + 0x38)" (identifier "uVar12") (<= "<=") (pointer_expression "*(uint *)(param_1 + 0x38)" (* "*") (cast_expression "(uint *)(param_1 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (compound_statement "{\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");\n                }" ({ "{") (expression_statement "__assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type");" (call_expression "__assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type")" (identifier "__assert_fail") (argument_list "("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,\n                                "debug_write_type")" (( "(") (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") (" """)) (, ",") (number_literal "0x9d1") (, ",") (string_literal ""debug_write_type"" (" """) (string_content "debug_write_type") (" """)) () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_0012c414;" (goto "goto") (statement_identifier "LAB_0012c414") (; ";")) (} "}"))) (} "}")))) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98)" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (pointer_expression "*(code **)(param_2 + 0x98)" (* "*") (cast_expression "(code **)(param_2 + 0x98)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x98)" (( "(") (binary_expression "param_2 + 0x98" (identifier "param_2") (+ "+") (number_literal "0x98")) () ")"))))) (; ";")) (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 *)(lVar3 + 8) = iVar2;" (assignment_expression "*(int *)(lVar3 + 8) = iVar2" (pointer_expression "*(int *)(lVar3 + 8)" (* "*") (cast_expression "(int *)(lVar3 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 8)" (( "(") (binary_expression "lVar3 + 8" (identifier "lVar3") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar2")) (; ";")) (expression_statement "uVar10 = *(undefined4 *)(lVar3 + 0xc);" (assignment_expression "uVar10 = *(undefined4 *)(lVar3 + 0xc)" (identifier "uVar10") (= "=") (pointer_expression "*(undefined4 *)(lVar3 + 0xc)" (* "*") (cast_expression "(undefined4 *)(lVar3 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0xc)" (( "(") (binary_expression "lVar3 + 0xc" (identifier "lVar3") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "iVar2 = *param_4;" (assignment_expression "iVar2 = *param_4" (identifier "iVar2") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (} "}")))) (expression_statement "iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);" (assignment_expression "iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1)" (identifier "iVar2") (= "=") (call_expression "(*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE_00)" (( "(") (pointer_expression "*UNRECOVERED_JUMPTABLE_00" (* "*") (identifier "UNRECOVERED_JUMPTABLE_00")) () ")")) (argument_list "(param_3,uVar4,uVar10,iVar2 == 7,iVar1)" (( "(") (identifier "param_3") (, ",") (identifier "uVar4") (, ",") (identifier "uVar10") (, ",") (binary_expression "iVar2 == 7" (identifier "iVar2") (== "==") (number_literal "7")) (, ",") (identifier "iVar1") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }" (if "if") (parenthesized_expression "(((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0))" (( "(") (binary_expression "((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&\n             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)" (parenthesized_expression "((*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0))" (( "(") (binary_expression "(*(long **)(param_4 + 4) != (long *)0x0) &&\n              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)" (parenthesized_expression "(*(long **)(param_4 + 4) != (long *)0x0)" (( "(") (binary_expression "*(long **)(param_4 + 4) != (long *)0x0" (pointer_expression "*(long **)(param_4 + 4)" (* "*") (cast_expression "(long **)(param_4 + 4)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)" (( "(") (comma_expression "plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0" (assignment_expression "plVar6 = (long *)**(long **)(param_4 + 4)" (identifier "plVar6") (= "=") (cast_expression "(long *)**(long **)(param_4 + 4)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(long **)(param_4 + 4)" (* "*") (pointer_expression "*(long **)(param_4 + 4)" (* "*") (cast_expression "(long **)(param_4 + 4)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")"))))))) (, ",") (binary_expression "plVar6 != (long *)0x0" (identifier "plVar6") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)" (( "(") (comma_expression "puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0" (assignment_expression "puVar14 = (undefined8 *)*plVar6" (identifier "puVar14") (= "=") (cast_expression "(undefined8 *)*plVar6" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar6" (* "*") (identifier "plVar6")))) (, ",") (binary_expression "puVar14 != (undefined8 *)0x0" (identifier "puVar14") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n            uVar9 = 0;\n            do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);\n          }" ({ "{") (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            } while (puVar14 != (undefined8 *)0x0);" (do "do") (compound_statement "{\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));\n              if (iVar2 == 0) {\n                return 0;\n              }\n              uVar9 = (ulong)((int)uVar9 + 1);\n              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);\n            }" ({ "{") (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0)" (identifier "iVar2") (= "=") (call_expression "FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0)" (identifier "FUN_0012bc00") (argument_list "(param_1,param_2,param_3,puVar14[1],0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (subscript_expression "puVar14[1]" (identifier "puVar14") ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n                return 0;\n              }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                return 0;\n              }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c));" (assignment_expression "iVar2 = (**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c))" (identifier "iVar2") (= "=") (call_expression "(**(code **)(param_2 + 0xa0))\n                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c))" (parenthesized_expression "(**(code **)(param_2 + 0xa0))" (( "(") (pointer_expression "**(code **)(param_2 + 0xa0)" (* "*") (pointer_expression "*(code **)(param_2 + 0xa0)" (* "*") (cast_expression "(code **)(param_2 + 0xa0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0xa0)" (( "(") (binary_expression "param_2 + 0xa0" (identifier "param_2") (+ "+") (number_literal "0xa0")) () ")"))))) () ")")) (argument_list "(param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                 *(undefined4 *)((long)puVar14 + 0x1c))" (( "(") (identifier "param_3") (, ",") (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (, ",") (pointer_expression "*(undefined4 *)(puVar14 + 3)" (* "*") (cast_expression "(undefined4 *)(puVar14 + 3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 3)" (( "(") (binary_expression "puVar14 + 3" (identifier "puVar14") (+ "+") (number_literal "3")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)((long)puVar14 + 0x1c)" (* "*") (cast_expression "(undefined4 *)((long)puVar14 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar14 + 0x1c)" (( "(") (binary_expression "(long)puVar14 + 0x1c" (cast_expression "(long)puVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar14")) (+ "+") (number_literal "0x1c")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n                return 0;\n              }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                return 0;\n              }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar9 = (ulong)((int)uVar9 + 1);" (assignment_expression "uVar9 = (ulong)((int)uVar9 + 1)" (identifier "uVar9") (= "=") (call_expression "(ulong)((int)uVar9 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((int)uVar9 + 1)" (( "(") (binary_expression "(int)uVar9 + 1" (cast_expression "(int)uVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar9")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);" (assignment_expression "puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8)" (identifier "puVar14") (= "=") (pointer_expression "*(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8)" (* "*") (cast_expression "(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(long **)(param_4 + 4) + uVar9 * 8)" (( "(") (binary_expression "**(long **)(param_4 + 4) + uVar9 * 8" (pointer_expression "**(long **)(param_4 + 4)" (* "*") (pointer_expression "*(long **)(param_4 + 4)" (* "*") (cast_expression "(long **)(param_4 + 4)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")"))))) (+ "+") (binary_expression "uVar9 * 8" (identifier "uVar9") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar14 != (undefined8 *)0x0)" (( "(") (binary_expression "puVar14 != (undefined8 *)0x0" (identifier "puVar14") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8)" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (pointer_expression "*(code **)(param_2 + 0xa8)" (* "*") (cast_expression "(code **)(param_2 + 0xa8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0xa8)" (( "(") (binary_expression "param_2 + 0xa8" (identifier "param_2") (+ "+") (number_literal "0xa8")) () ")"))))) (; ";")) (goto_statement "goto LAB_0012bfcc;" (goto "goto") (statement_identifier "LAB_0012bfcc") (; ";"))) (case_statement "case 9:" (case "case") (number_literal "9") (: ":")) (case_statement "case 10:\n          lVar3 = *(long *)(param_4 + 4);\n          if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }\n          iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          plVar6 = *(long **)(param_4 + 4);\n          if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);\n          goto LAB_0012bfcc;" (case "case") (number_literal "10") (: ":") (expression_statement "lVar3 = *(long *)(param_4 + 4);" (assignment_expression "lVar3 = *(long *)(param_4 + 4)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(param_4 + 4)" (* "*") (cast_expression "(long *)(param_4 + 4)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (lVar3 == 0) {\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }\n          else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }" (if "if") (parenthesized_expression "(lVar3 == 0)" (( "(") (binary_expression "lVar3 == 0" (identifier "lVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            bVar15 = false;\n            uVar12 = 0;\n            piVar5 = (int *)0x0;\n          }" ({ "{") (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" (identifier "bVar15") (= "=") (false "false")) (; ";")) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar5 = (int *)0x0;" (assignment_expression "piVar5 = (int *)0x0" (identifier "piVar5") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }" (else "else") (compound_statement "{\n            uVar12 = *(uint *)(lVar3 + 0xc);\n            if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }\n            *(int *)(lVar3 + 8) = iVar1;\n            piVar5 = *(int **)(lVar3 + 0x20);\n            bVar15 = piVar5 != (int *)0x0;\n            if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }\n          }" ({ "{") (expression_statement "uVar12 = *(uint *)(lVar3 + 0xc);" (assignment_expression "uVar12 = *(uint *)(lVar3 + 0xc)" (identifier "uVar12") (= "=") (pointer_expression "*(uint *)(lVar3 + 0xc)" (* "*") (cast_expression "(uint *)(lVar3 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0xc)" (( "(") (binary_expression "lVar3 + 0xc" (identifier "lVar3") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (*(uint *)(param_1 + 0x38) < uVar12) {\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }\n            else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }" (if "if") (parenthesized_expression "(*(uint *)(param_1 + 0x38) < uVar12)" (( "(") (binary_expression "*(uint *)(param_1 + 0x38) < uVar12" (pointer_expression "*(uint *)(param_1 + 0x38)" (* "*") (cast_expression "(uint *)(param_1 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (< "<") (identifier "uVar12")) () ")")) (compound_statement "{\n              iVar1 = *(int *)(param_1 + 0x30);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }\n            }" ({ "{") (expression_statement "iVar1 = *(int *)(param_1 + 0x30);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x30)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_1 + 0x30)" (* "*") (cast_expression "(int *)(param_1 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (if_statement "if (iVar1 == *(int *)(lVar3 + 8)) {\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }" (if "if") (parenthesized_expression "(iVar1 == *(int *)(lVar3 + 8))" (( "(") (binary_expression "iVar1 == *(int *)(lVar3 + 8)" (identifier "iVar1") (== "==") (pointer_expression "*(int *)(lVar3 + 8)" (* "*") (cast_expression "(int *)(lVar3 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 8)" (( "(") (binary_expression "lVar3 + 8" (identifier "lVar3") (+ "+") (number_literal "8")) () ")"))))) () ")")) (compound_statement "{\nLAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n                goto LAB_0012c3c5;\n              }" ({ "{") (labeled_statement "LAB_0012c3b8:\n                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);" (statement_identifier "LAB_0012c3b8") (: ":") (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8)" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (pointer_expression "*(code **)(param_2 + 0xf8)" (* "*") (cast_expression "(code **)(param_2 + 0xf8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0xf8)" (( "(") (binary_expression "param_2 + 0xf8" (identifier "param_2") (+ "+") (number_literal "0xf8")) () ")"))))) (; ";"))) (goto_statement "goto LAB_0012c3c5;" (goto "goto") (statement_identifier "LAB_0012c3c5") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }" (else "else") (compound_statement "{\n              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              lVar3 = *(long *)(param_4 + 4);\n              iVar1 = *(int *)(param_1 + 0x30);\n              uVar12 = *(uint *)(lVar3 + 0xc);\n              if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }\n            }" ({ "{") (expression_statement "iVar2 = FUN_0012bae0(param_1,uVar4,param_4);" (assignment_expression "iVar2 = FUN_0012bae0(param_1,uVar4,param_4)" (identifier "iVar2") (= "=") (call_expression "FUN_0012bae0(param_1,uVar4,param_4)" (identifier "FUN_0012bae0") (argument_list "(param_1,uVar4,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "uVar4") (, ",") (identifier "param_4") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n                return 0;\n              }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                return 0;\n              }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "lVar3 = *(long *)(param_4 + 4);" (assignment_expression "lVar3 = *(long *)(param_4 + 4)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(param_4 + 4)" (* "*") (cast_expression "(long *)(param_4 + 4)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar1 = *(int *)(param_1 + 0x30);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x30)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_1 + 0x30)" (* "*") (cast_expression "(int *)(param_1 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "uVar12 = *(uint *)(lVar3 + 0xc);" (assignment_expression "uVar12 = *(uint *)(lVar3 + 0xc)" (identifier "uVar12") (= "=") (pointer_expression "*(uint *)(lVar3 + 0xc)" (* "*") (cast_expression "(uint *)(lVar3 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0xc)" (( "(") (binary_expression "lVar3 + 0xc" (identifier "lVar3") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (iVar1 == *(int *)(lVar3 + 8)) {\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }" (if "if") (parenthesized_expression "(iVar1 == *(int *)(lVar3 + 8))" (( "(") (binary_expression "iVar1 == *(int *)(lVar3 + 8)" (identifier "iVar1") (== "==") (pointer_expression "*(int *)(lVar3 + 8)" (* "*") (cast_expression "(int *)(lVar3 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 8)" (( "(") (binary_expression "lVar3 + 8" (identifier "lVar3") (+ "+") (number_literal "8")) () ")"))))) () ")")) (compound_statement "{\n                if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }\n                iVar2 = *param_4;\n                goto LAB_0012c3b8;\n              }" ({ "{") (if_statement "if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }" (if "if") (parenthesized_expression "(uVar12 <= *(uint *)(param_1 + 0x38))" (( "(") (binary_expression "uVar12 <= *(uint *)(param_1 + 0x38)" (identifier "uVar12") (<= "<=") (pointer_expression "*(uint *)(param_1 + 0x38)" (* "*") (cast_expression "(uint *)(param_1 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (compound_statement "{\n                    \n                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");\n                }" ({ "{") (expression_statement "__assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type");" (call_expression "__assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type")" (identifier "__assert_fail") (argument_list "("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,\n                                "debug_write_class_type")" (( "(") (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") (" """)) (, ",") (number_literal "0xa7d") (, ",") (string_literal ""debug_write_class_type"" (" """) (string_content "debug_write_class_type") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar2 = *param_4;" (assignment_expression "iVar2 = *param_4" (identifier "iVar2") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (goto_statement "goto LAB_0012c3b8;" (goto "goto") (statement_identifier "LAB_0012c3b8") (; ";")) (} "}"))) (} "}")))) (expression_statement "*(int *)(lVar3 + 8) = iVar1;" (assignment_expression "*(int *)(lVar3 + 8) = iVar1" (pointer_expression "*(int *)(lVar3 + 8)" (* "*") (cast_expression "(int *)(lVar3 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 8)" (( "(") (binary_expression "lVar3 + 8" (identifier "lVar3") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar1")) (; ";")) (expression_statement "piVar5 = *(int **)(lVar3 + 0x20);" (assignment_expression "piVar5 = *(int **)(lVar3 + 0x20)" (identifier "piVar5") (= "=") (pointer_expression "*(int **)(lVar3 + 0x20)" (* "*") (cast_expression "(int **)(lVar3 + 0x20)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar3 + 0x20)" (( "(") (binary_expression "lVar3 + 0x20" (identifier "lVar3") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "bVar15 = piVar5 != (int *)0x0;" (assignment_expression "bVar15 = piVar5 != (int *)0x0" (identifier "bVar15") (= "=") (binary_expression "piVar5 != (int *)0x0" (identifier "piVar5") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (if_statement "if ((param_4 == piVar5) || (!bVar15)) {\n              iVar2 = *param_4;\n            }\n            else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }" (if "if") (parenthesized_expression "((param_4 == piVar5) || (!bVar15))" (( "(") (binary_expression "(param_4 == piVar5) || (!bVar15)" (parenthesized_expression "(param_4 == piVar5)" (( "(") (binary_expression "param_4 == piVar5" (identifier "param_4") (== "==") (identifier "piVar5")) () ")")) (|| "||") (parenthesized_expression "(!bVar15)" (( "(") (unary_expression "!bVar15" (! "!") (identifier "bVar15")) () ")"))) () ")")) (compound_statement "{\n              iVar2 = *param_4;\n            }" ({ "{") (expression_statement "iVar2 = *param_4;" (assignment_expression "iVar2 = *param_4" (identifier "iVar2") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (} "}")) (else_clause "else {\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }" (else "else") (compound_statement "{\n              iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);\n              if (iVar2 == 0) {\n                return 0;\n              }\n              iVar2 = *param_4;\n              bVar15 = true;\n            }" ({ "{") (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,piVar5,0)" (identifier "iVar2") (= "=") (call_expression "FUN_0012bc00(param_1,param_2,param_3,piVar5,0)" (identifier "FUN_0012bc00") (argument_list "(param_1,param_2,param_3,piVar5,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "piVar5") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n                return 0;\n              }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                return 0;\n              }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar2 = *param_4;" (assignment_expression "iVar2 = *param_4" (identifier "iVar2") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = true" (identifier "bVar15") (= "=") (true "true")) (; ";")) (} "}")))) (} "}")))) (expression_statement "iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);" (assignment_expression "iVar2 = (**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(param_2 + 0xb0))\n                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5)" (parenthesized_expression "(**(code **)(param_2 + 0xb0))" (( "(") (pointer_expression "**(code **)(param_2 + 0xb0)" (* "*") (pointer_expression "*(code **)(param_2 + 0xb0)" (* "*") (cast_expression "(code **)(param_2 + 0xb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0xb0)" (( "(") (binary_expression "param_2 + 0xb0" (identifier "param_2") (+ "+") (number_literal "0xb0")) () ")"))))) () ")")) (argument_list "(param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5)" (( "(") (identifier "param_3") (, ",") (identifier "uVar4") (, ",") (identifier "uVar12") (, ",") (binary_expression "iVar2 == 9" (identifier "iVar2") (== "==") (number_literal "9")) (, ",") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]")) (, ",") (identifier "bVar15") (, ",") (binary_expression "param_4 == piVar5" (identifier "param_4") (== "==") (identifier "piVar5")) () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "plVar6 = *(long **)(param_4 + 4);" (assignment_expression "plVar6 = *(long **)(param_4 + 4)" (identifier "plVar6") (= "=") (pointer_expression "*(long **)(param_4 + 4)" (* "*") (cast_expression "(long **)(param_4 + 4)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (plVar6 != (long *)0x0) {\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }" (if "if") (parenthesized_expression "(plVar6 != (long *)0x0)" (( "(") (binary_expression "plVar6 != (long *)0x0" (identifier "plVar6") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }\n            if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }\n          }" ({ "{") (if_statement "if (((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }" (if "if") (parenthesized_expression "(((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0))" (( "(") (binary_expression "((long *)*plVar6 != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)" (parenthesized_expression "((long *)*plVar6 != (long *)0x0)" (( "(") (binary_expression "(long *)*plVar6 != (long *)0x0" (cast_expression "(long *)*plVar6" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar6" (* "*") (identifier "plVar6"))) (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)" (( "(") (comma_expression "puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0" (assignment_expression "puVar14 = *(undefined8 **)*plVar6" (identifier "puVar14") (= "=") (pointer_expression "*(undefined8 **)*plVar6" (* "*") (cast_expression "(undefined8 **)*plVar6" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*plVar6" (* "*") (identifier "plVar6"))))) (, ",") (binary_expression "puVar14 != (undefined8 *)0x0" (identifier "puVar14") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }" ({ "{") (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);" (do "do") (compound_statement "{\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);\n              }" ({ "{") (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0)" (identifier "iVar2") (= "=") (call_expression "FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0)" (identifier "FUN_0012bc00") (argument_list "(param_1,param_2,param_3,puVar14[1],0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (subscript_expression "puVar14[1]" (identifier "puVar14") ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n                  return 0;\n                }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  return 0;\n                }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (*(int *)((long)puVar14 + 0x14) == 0) {\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }\n                else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }" (if "if") (parenthesized_expression "(*(int *)((long)puVar14 + 0x14) == 0)" (( "(") (binary_expression "*(int *)((long)puVar14 + 0x14) == 0" (pointer_expression "*(int *)((long)puVar14 + 0x14)" (* "*") (cast_expression "(int *)((long)puVar14 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar14 + 0x14)" (( "(") (binary_expression "(long)puVar14 + 0x14" (cast_expression "(long)puVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar14")) (+ "+") (number_literal "0x14")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));\n                }" ({ "{") (expression_statement "iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c));" (assignment_expression "iVar2 = (**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c))" (identifier "iVar2") (= "=") (call_expression "(**(code **)(param_2 + 0xa0))\n                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c))" (parenthesized_expression "(**(code **)(param_2 + 0xa0))" (( "(") (pointer_expression "**(code **)(param_2 + 0xa0)" (* "*") (pointer_expression "*(code **)(param_2 + 0xa0)" (* "*") (cast_expression "(code **)(param_2 + 0xa0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0xa0)" (( "(") (binary_expression "param_2 + 0xa0" (identifier "param_2") (+ "+") (number_literal "0xa0")) () ")"))))) () ")")) (argument_list "(param_3,*puVar14,*(undefined4 *)(puVar14 + 3),\n                                     *(undefined4 *)((long)puVar14 + 0x1c))" (( "(") (identifier "param_3") (, ",") (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (, ",") (pointer_expression "*(undefined4 *)(puVar14 + 3)" (* "*") (cast_expression "(undefined4 *)(puVar14 + 3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 3)" (( "(") (binary_expression "puVar14 + 3" (identifier "puVar14") (+ "+") (number_literal "3")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)((long)puVar14 + 0x1c)" (* "*") (cast_expression "(undefined4 *)((long)puVar14 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar14 + 0x1c)" (( "(") (binary_expression "(long)puVar14 + 0x1c" (cast_expression "(long)puVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar14")) (+ "+") (number_literal "0x1c")) () ")")))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }" (else "else") (compound_statement "{\n                  iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));\n                }" ({ "{") (expression_statement "iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));" (assignment_expression "iVar2 = (**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2))" (identifier "iVar2") (= "=") (call_expression "(**(code **)(param_2 + 0xb8))\n                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2))" (parenthesized_expression "(**(code **)(param_2 + 0xb8))" (( "(") (pointer_expression "**(code **)(param_2 + 0xb8)" (* "*") (pointer_expression "*(code **)(param_2 + 0xb8)" (* "*") (cast_expression "(code **)(param_2 + 0xb8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0xb8)" (( "(") (binary_expression "param_2 + 0xb8" (identifier "param_2") (+ "+") (number_literal "0xb8")) () ")"))))) () ")")) (argument_list "(param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2))" (( "(") (identifier "param_3") (, ",") (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (, ",") (subscript_expression "puVar14[3]" (identifier "puVar14") ([ "[") (number_literal "3") (] "]")) (, ",") (pointer_expression "*(undefined4 *)(puVar14 + 2)" (* "*") (cast_expression "(undefined4 *)(puVar14 + 2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 2)" (( "(") (binary_expression "puVar14 + 2" (identifier "puVar14") (+ "+") (number_literal "2")) () ")")))) () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar2 == 0) {\n                  return 0;\n                }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  return 0;\n                }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "plVar6 = *(long **)(param_4 + 4);" (assignment_expression "plVar6 = *(long **)(param_4 + 4)" (identifier "plVar6") (= "=") (pointer_expression "*(long **)(param_4 + 4)" (* "*") (cast_expression "(long **)(param_4 + 4)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar9 = (ulong)((int)uVar9 + 1);" (assignment_expression "uVar9 = (ulong)((int)uVar9 + 1)" (identifier "uVar9") (= "=") (call_expression "(ulong)((int)uVar9 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((int)uVar9 + 1)" (( "(") (binary_expression "(int)uVar9 + 1" (cast_expression "(int)uVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar9")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);" (assignment_expression "puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8)" (identifier "puVar14") (= "=") (pointer_expression "*(undefined8 **)(*plVar6 + uVar9 * 8)" (* "*") (cast_expression "(undefined8 **)(*plVar6 + uVar9 * 8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar6 + uVar9 * 8)" (( "(") (binary_expression "*plVar6 + uVar9 * 8" (pointer_expression "*plVar6" (* "*") (identifier "plVar6")) (+ "+") (binary_expression "uVar9 * 8" (identifier "uVar9") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar14 != (undefined8 *)0x0)" (( "(") (binary_expression "puVar14 != (undefined8 *)0x0" (identifier "puVar14") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (if_statement "if (((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }" (if "if") (parenthesized_expression "(((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0))" (( "(") (binary_expression "((long *)plVar6[2] != (long *)0x0) &&\n               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)" (parenthesized_expression "((long *)plVar6[2] != (long *)0x0)" (( "(") (binary_expression "(long *)plVar6[2] != (long *)0x0" (cast_expression "(long *)plVar6[2]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar6[2]" (identifier "plVar6") ([ "[") (number_literal "2") (] "]"))) (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)" (( "(") (comma_expression "puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0" (assignment_expression "puVar14 = *(undefined8 **)plVar6[2]" (identifier "puVar14") (= "=") (pointer_expression "*(undefined8 **)plVar6[2]" (* "*") (cast_expression "(undefined8 **)plVar6[2]" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "plVar6[2]" (identifier "plVar6") ([ "[") (number_literal "2") (] "]"))))) (, ",") (binary_expression "puVar14 != (undefined8 *)0x0" (identifier "puVar14") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n              uVar9 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);\n            }" ({ "{") (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              } while (puVar14 != (undefined8 *)0x0);" (do "do") (compound_statement "{\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                plVar6 = *(long **)(param_4 + 4);\n                uVar9 = (ulong)((int)uVar9 + 1);\n                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);\n              }" ({ "{") (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*puVar14,0)" (identifier "iVar2") (= "=") (call_expression "FUN_0012bc00(param_1,param_2,param_3,*puVar14,0)" (identifier "FUN_0012bc00") (argument_list "(param_1,param_2,param_3,*puVar14,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n                  return 0;\n                }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  return 0;\n                }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  );" (assignment_expression "iVar2 = (**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  )" (identifier "iVar2") (= "=") (call_expression "(**(code **)(param_2 + 0xc0))\n                                  (param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  )" (parenthesized_expression "(**(code **)(param_2 + 0xc0))" (( "(") (pointer_expression "**(code **)(param_2 + 0xc0)" (* "*") (pointer_expression "*(code **)(param_2 + 0xc0)" (* "*") (cast_expression "(code **)(param_2 + 0xc0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0xc0)" (( "(") (binary_expression "param_2 + 0xc0" (identifier "param_2") (+ "+") (number_literal "0xc0")) () ")"))))) () ")")) (argument_list "(param_3,*(undefined4 *)(puVar14 + 1),\n                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)\n                                  )" (( "(") (identifier "param_3") (, ",") (pointer_expression "*(undefined4 *)(puVar14 + 1)" (* "*") (cast_expression "(undefined4 *)(puVar14 + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 1)" (( "(") (binary_expression "puVar14 + 1" (identifier "puVar14") (+ "+") (number_literal "1")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)((long)puVar14 + 0xc)" (* "*") (cast_expression "(undefined4 *)((long)puVar14 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar14 + 0xc)" (( "(") (binary_expression "(long)puVar14 + 0xc" (cast_expression "(long)puVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar14")) (+ "+") (number_literal "0xc")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(puVar14 + 2)" (* "*") (cast_expression "(undefined4 *)(puVar14 + 2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 2)" (( "(") (binary_expression "puVar14 + 2" (identifier "puVar14") (+ "+") (number_literal "2")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n                  return 0;\n                }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  return 0;\n                }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "plVar6 = *(long **)(param_4 + 4);" (assignment_expression "plVar6 = *(long **)(param_4 + 4)" (identifier "plVar6") (= "=") (pointer_expression "*(long **)(param_4 + 4)" (* "*") (cast_expression "(long **)(param_4 + 4)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar9 = (ulong)((int)uVar9 + 1);" (assignment_expression "uVar9 = (ulong)((int)uVar9 + 1)" (identifier "uVar9") (= "=") (call_expression "(ulong)((int)uVar9 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((int)uVar9 + 1)" (( "(") (binary_expression "(int)uVar9 + 1" (cast_expression "(int)uVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar9")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);" (assignment_expression "puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8)" (identifier "puVar14") (= "=") (pointer_expression "*(undefined8 **)(plVar6[2] + uVar9 * 8)" (* "*") (cast_expression "(undefined8 **)(plVar6[2] + uVar9 * 8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(plVar6[2] + uVar9 * 8)" (( "(") (binary_expression "plVar6[2] + uVar9 * 8" (subscript_expression "plVar6[2]" (identifier "plVar6") ([ "[") (number_literal "2") (] "]")) (+ "+") (binary_expression "uVar9 * 8" (identifier "uVar9") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar14 != (undefined8 *)0x0)" (( "(") (binary_expression "puVar14 != (undefined8 *)0x0" (identifier "puVar14") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (if_statement "if (((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }" (if "if") (parenthesized_expression "(((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0))" (( "(") (binary_expression "((long *)plVar6[3] != (long *)0x0) &&\n               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)" (parenthesized_expression "((long *)plVar6[3] != (long *)0x0)" (( "(") (binary_expression "(long *)plVar6[3] != (long *)0x0" (cast_expression "(long *)plVar6[3]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar6[3]" (identifier "plVar6") ([ "[") (number_literal "3") (] "]"))) (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)" (( "(") (comma_expression "local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0" (assignment_expression "local_48 = *(undefined8 **)plVar6[3]" (identifier "local_48") (= "=") (pointer_expression "*(undefined8 **)plVar6[3]" (* "*") (cast_expression "(undefined8 **)plVar6[3]" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "plVar6[3]" (identifier "plVar6") ([ "[") (number_literal "3") (] "]"))))) (, ",") (binary_expression "local_48 != (undefined8 *)0x0" (identifier "local_48") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n              local_3c = 0;\n              do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);\n            }" ({ "{") (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" (identifier "local_3c") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              } while (local_48 != (undefined8 *)0x0);" (do "do") (compound_statement "{\n                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                uVar9 = 0;\n                puVar14 = *(undefined8 **)local_48[1];\n                while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }\n                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                local_3c = local_3c + 1;\n                local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);\n              }" ({ "{") (expression_statement "iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);" (assignment_expression "iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(param_2 + 200))(param_3,*local_48)" (parenthesized_expression "(**(code **)(param_2 + 200))" (( "(") (pointer_expression "**(code **)(param_2 + 200)" (* "*") (pointer_expression "*(code **)(param_2 + 200)" (* "*") (cast_expression "(code **)(param_2 + 200)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 200)" (( "(") (binary_expression "param_2 + 200" (identifier "param_2") (+ "+") (number_literal "200")) () ")"))))) () ")")) (argument_list "(param_3,*local_48)" (( "(") (identifier "param_3") (, ",") (pointer_expression "*local_48" (* "*") (identifier "local_48")) () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n                  return 0;\n                }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  return 0;\n                }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14 = *(undefined8 **)local_48[1];" (assignment_expression "puVar14 = *(undefined8 **)local_48[1]" (identifier "puVar14") (= "=") (pointer_expression "*(undefined8 **)local_48[1]" (* "*") (cast_expression "(undefined8 **)local_48[1]" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "local_48[1]" (identifier "local_48") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (while_statement "while (puVar14 != (undefined8 *)0x0) {\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }" (while "while") (parenthesized_expression "(puVar14 != (undefined8 *)0x0)" (( "(") (binary_expression "puVar14 != (undefined8 *)0x0" (identifier "puVar14") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }\n                  iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }\n                  if (iVar2 == 0) {\n                    return 0;\n                  }\n                  uVar9 = (ulong)((int)uVar9 + 1);\n                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);\n                }" ({ "{") (if_statement "if ((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {\n                    return 0;\n                  }" (if "if") (parenthesized_expression "((puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0))" (( "(") (binary_expression "(puVar14[5] != 0) &&\n                     (iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)" (parenthesized_expression "(puVar14[5] != 0)" (( "(") (binary_expression "puVar14[5] != 0" (subscript_expression "puVar14[5]" (identifier "puVar14") ([ "[") (number_literal "5") (] "]")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)" (( "(") (comma_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0)" (identifier "iVar2") (= "=") (call_expression "FUN_0012bc00(param_1,param_2,param_3,puVar14[5],0)" (identifier "FUN_0012bc00") (argument_list "(param_1,param_2,param_3,puVar14[5],0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (subscript_expression "puVar14[5]" (identifier "puVar14") ([ "[") (number_literal "5") (] "]")) (, ",") (number_literal "0") () ")")))) (, ",") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                    return 0;\n                  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0)" (identifier "iVar2") (= "=") (call_expression "FUN_0012bc00(param_1,param_2,param_3,puVar14[1],0)" (identifier "FUN_0012bc00") (argument_list "(param_1,param_2,param_3,puVar14[1],0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (subscript_expression "puVar14[1]" (identifier "puVar14") ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n                    return 0;\n                  }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    return 0;\n                  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (puVar14[4] == -1) {\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }\n                  else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }" (if "if") (parenthesized_expression "(puVar14[4] == -1)" (( "(") (binary_expression "puVar14[4] == -1" (subscript_expression "puVar14[4]" (identifier "puVar14") ([ "[") (number_literal "4") (] "]")) (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);\n                  }" ({ "{") (expression_statement "iVar2 = (**(code **)(param_2 + 0xd8))(param_3);" (assignment_expression "iVar2 = (**(code **)(param_2 + 0xd8))(param_3)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(param_2 + 0xd8))(param_3)" (parenthesized_expression "(**(code **)(param_2 + 0xd8))" (( "(") (pointer_expression "**(code **)(param_2 + 0xd8)" (* "*") (pointer_expression "*(code **)(param_2 + 0xd8)" (* "*") (cast_expression "(code **)(param_2 + 0xd8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0xd8)" (( "(") (binary_expression "param_2 + 0xd8" (identifier "param_2") (+ "+") (number_literal "0xd8")) () ")"))))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (} "}")) (else_clause "else {\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }" (else "else") (compound_statement "{\n                    iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);\n                  }" ({ "{") (expression_statement "iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);" (assignment_expression "iVar2 = (**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(param_2 + 0xd0))\n                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0)" (parenthesized_expression "(**(code **)(param_2 + 0xd0))" (( "(") (pointer_expression "**(code **)(param_2 + 0xd0)" (* "*") (pointer_expression "*(code **)(param_2 + 0xd0)" (* "*") (cast_expression "(code **)(param_2 + 0xd0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0xd0)" (( "(") (binary_expression "param_2 + 0xd0" (identifier "param_2") (+ "+") (number_literal "0xd0")) () ")"))))) () ")")) (argument_list "(param_3,*puVar14,*(undefined4 *)(puVar14 + 2),\n                                       *(undefined4 *)((long)puVar14 + 0x14),\n                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0)" (( "(") (identifier "param_3") (, ",") (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (, ",") (pointer_expression "*(undefined4 *)(puVar14 + 2)" (* "*") (cast_expression "(undefined4 *)(puVar14 + 2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 2)" (( "(") (binary_expression "puVar14 + 2" (identifier "puVar14") (+ "+") (number_literal "2")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)((long)puVar14 + 0x14)" (* "*") (cast_expression "(undefined4 *)((long)puVar14 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar14 + 0x14)" (( "(") (binary_expression "(long)puVar14 + 0x14" (cast_expression "(long)puVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar14")) (+ "+") (number_literal "0x14")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(puVar14 + 3)" (* "*") (cast_expression "(undefined4 *)(puVar14 + 3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 3)" (( "(") (binary_expression "puVar14 + 3" (identifier "puVar14") (+ "+") (number_literal "3")) () ")")))) (, ",") (subscript_expression "puVar14[4]" (identifier "puVar14") ([ "[") (number_literal "4") (] "]")) (, ",") (binary_expression "puVar14[5] != 0" (subscript_expression "puVar14[5]" (identifier "puVar14") ([ "[") (number_literal "5") (] "]")) (!= "!=") (number_literal "0")) () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar2 == 0) {\n                    return 0;\n                  }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    return 0;\n                  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar9 = (ulong)((int)uVar9 + 1);" (assignment_expression "uVar9 = (ulong)((int)uVar9 + 1)" (identifier "uVar9") (= "=") (call_expression "(ulong)((int)uVar9 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((int)uVar9 + 1)" (( "(") (binary_expression "(int)uVar9 + 1" (cast_expression "(int)uVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar9")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);" (assignment_expression "puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8)" (identifier "puVar14") (= "=") (pointer_expression "*(undefined8 **)(local_48[1] + uVar9 * 8)" (* "*") (cast_expression "(undefined8 **)(local_48[1] + uVar9 * 8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_48[1] + uVar9 * 8)" (( "(") (binary_expression "local_48[1] + uVar9 * 8" (subscript_expression "local_48[1]" (identifier "local_48") ([ "[") (number_literal "1") (] "]")) (+ "+") (binary_expression "uVar9 * 8" (identifier "uVar9") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar2 = (**(code **)(param_2 + 0xe0))(param_3);" (assignment_expression "iVar2 = (**(code **)(param_2 + 0xe0))(param_3)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(param_2 + 0xe0))(param_3)" (parenthesized_expression "(**(code **)(param_2 + 0xe0))" (( "(") (pointer_expression "**(code **)(param_2 + 0xe0)" (* "*") (pointer_expression "*(code **)(param_2 + 0xe0)" (* "*") (cast_expression "(code **)(param_2 + 0xe0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0xe0)" (( "(") (binary_expression "param_2 + 0xe0" (identifier "param_2") (+ "+") (number_literal "0xe0")) () ")"))))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n                  return 0;\n                }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  return 0;\n                }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "local_3c = local_3c + 1;" (assignment_expression "local_3c = local_3c + 1" (identifier "local_3c") (= "=") (binary_expression "local_3c + 1" (identifier "local_3c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);" (assignment_expression "local_48 = *(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8)" (identifier "local_48") (= "=") (pointer_expression "*(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8)" (* "*") (cast_expression "(undefined8 **)\n                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8)" (( "(") (binary_expression "*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8" (pointer_expression "*(long *)(*(long *)(param_4 + 4) + 0x18)" (* "*") (cast_expression "(long *)(*(long *)(param_4 + 4) + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_4 + 4) + 0x18)" (( "(") (binary_expression "*(long *)(param_4 + 4) + 0x18" (pointer_expression "*(long *)(param_4 + 4)" (* "*") (cast_expression "(long *)(param_4 + 4)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (binary_expression "(ulong)local_3c * 8" (cast_expression "(ulong)local_3c" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_3c")) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_48 != (undefined8 *)0x0)" (( "(") (binary_expression "local_48 != (undefined8 *)0x0" (identifier "local_48") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (} "}"))) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8)" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (pointer_expression "*(code **)(param_2 + 0xe8)" (* "*") (cast_expression "(code **)(param_2 + 0xe8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0xe8)" (( "(") (binary_expression "param_2 + 0xe8" (identifier "param_2") (+ "+") (number_literal "0xe8")) () ")"))))) (; ";")) (goto_statement "goto LAB_0012bfcc;" (goto "goto") (statement_identifier "LAB_0012bfcc") (; ";"))) (case_statement "case 0xb:\n          puVar14 = *(undefined8 **)(param_4 + 4);\n          uVar8 = 0;\n          uVar11 = 0;\n          if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));\n          return uVar4;" (case "case") (number_literal "0xb") (: ":") (expression_statement "puVar14 = *(undefined8 **)(param_4 + 4);" (assignment_expression "puVar14 = *(undefined8 **)(param_4 + 4)" (identifier "puVar14") (= "=") (pointer_expression "*(undefined8 **)(param_4 + 4)" (* "*") (cast_expression "(undefined8 **)(param_4 + 4)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (if_statement "if (puVar14 != (undefined8 *)0x0) {\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }" (if "if") (parenthesized_expression "(puVar14 != (undefined8 *)0x0)" (( "(") (binary_expression "puVar14 != (undefined8 *)0x0" (identifier "puVar14") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            uVar8 = puVar14[1];\n            uVar11 = *puVar14;\n          }" ({ "{") (expression_statement "uVar8 = puVar14[1];" (assignment_expression "uVar8 = puVar14[1]" (identifier "uVar8") (= "=") (subscript_expression "puVar14[1]" (identifier "puVar14") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar11 = *puVar14;" (assignment_expression "uVar11 = *puVar14" (identifier "uVar11") (= "=") (pointer_expression "*puVar14" (* "*") (identifier "puVar14"))) (; ";")) (} "}"))) (expression_statement "uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40))" (identifier "uVar4") (= "=") (call_expression "(**(code **)(param_2 + 0x40))\n                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40))" (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,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40))" (( "(") (identifier "param_3") (, ",") (identifier "uVar4") (, ",") (identifier "uVar11") (, ",") (identifier "uVar8") (, ",") (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")) () ")")))) () ")")))) (; ";")) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";"))) (case_statement "case 0xc:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);\n          goto LAB_0012bfcc;" (case "case") (number_literal "0xc") (: ":") (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" (identifier "iVar2") (= "=") (call_expression "FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" (identifier "FUN_0012bc00") (argument_list "(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (pointer_expression "*(undefined8 *)(param_4 + 4)" (* "*") (cast_expression "(undefined8 *)(param_4 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")")))) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (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_0012bfcc;" (goto "goto") (statement_identifier "LAB_0012bfcc") (; ";"))) (case_statement "case 0xd:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          iVar1 = *(int *)(lVar3 + 0x10);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);\nLAB_0012c31a:\n                    \n                    \n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);\n          return uVar4;" (case "case") (number_literal "0xd") (: ":") (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" (identifier "iVar2") (= "=") (call_expression "FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" (identifier "FUN_0012bc00") (argument_list "(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (pointer_expression "**(undefined8 **)(param_4 + 4)" (* "*") (pointer_expression "*(undefined8 **)(param_4 + 4)" (* "*") (cast_expression "(undefined8 **)(param_4 + 4)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")"))))) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "lVar3 = *(long *)(param_4 + 4);" (assignment_expression "lVar3 = *(long *)(param_4 + 4)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(param_4 + 4)" (* "*") (cast_expression "(long *)(param_4 + 4)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (*(long **)(lVar3 + 8) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }" (if "if") (parenthesized_expression "(*(long **)(lVar3 + 8) == (long *)0x0)" (( "(") (binary_expression "*(long **)(lVar3 + 8) == (long *)0x0" (pointer_expression "*(long **)(lVar3 + 8)" (* "*") (cast_expression "(long **)(lVar3 + 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar3 + 8)" (( "(") (binary_expression "lVar3 + 8" (identifier "lVar3") (+ "+") (number_literal "8")) () ")")))) (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            iVar2 = -1;\n          }" ({ "{") (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" (identifier "iVar2") (= "=") (number_literal "-1")) (; ";")) (} "}")) (else_clause "else {\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }" (else "else") (compound_statement "{\n            lVar7 = **(long **)(lVar3 + 8);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }" ({ "{") (expression_statement "lVar7 = **(long **)(lVar3 + 8);" (assignment_expression "lVar7 = **(long **)(lVar3 + 8)" (identifier "lVar7") (= "=") (pointer_expression "**(long **)(lVar3 + 8)" (* "*") (pointer_expression "*(long **)(lVar3 + 8)" (* "*") (cast_expression "(long **)(lVar3 + 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar3 + 8)" (( "(") (binary_expression "lVar3 + 8" (identifier "lVar3") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (if_statement "if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }" (if "if") (parenthesized_expression "(lVar7 == 0)" (( "(") (binary_expression "lVar7 == 0" (identifier "lVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              iVar2 = 0;\n            }" ({ "{") (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }" (else "else") (compound_statement "{\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }" ({ "{") (expression_statement "lVar13 = 0;" (assignment_expression "lVar13 = 0" (identifier "lVar13") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              } while (lVar7 != 0);" (do "do") (compound_statement "{\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);\n              }" ({ "{") (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0)" (identifier "iVar2") (= "=") (call_expression "FUN_0012bc00(param_1,param_2,param_3,lVar7,0)" (identifier "FUN_0012bc00") (argument_list "(param_1,param_2,param_3,lVar7,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "lVar7") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n                  return 0;\n                }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  return 0;\n                }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "lVar3 = *(long *)(param_4 + 4);" (assignment_expression "lVar3 = *(long *)(param_4 + 4)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(param_4 + 4)" (* "*") (cast_expression "(long *)(param_4 + 4)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar2 = (int)lVar13 + 1;" (assignment_expression "iVar2 = (int)lVar13 + 1" (identifier "iVar2") (= "=") (binary_expression "(int)lVar13 + 1" (cast_expression "(int)lVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar13")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar13 = lVar13 + 1;" (assignment_expression "lVar13 = lVar13 + 1" (identifier "lVar13") (= "=") (binary_expression "lVar13 + 1" (identifier "lVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);" (assignment_expression "lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8)" (identifier "lVar7") (= "=") (pointer_expression "*(long *)(*(long *)(lVar3 + 8) + lVar13 * 8)" (* "*") (cast_expression "(long *)(*(long *)(lVar3 + 8) + lVar13 * 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(lVar3 + 8) + lVar13 * 8)" (( "(") (binary_expression "*(long *)(lVar3 + 8) + lVar13 * 8" (pointer_expression "*(long *)(lVar3 + 8)" (* "*") (cast_expression "(long *)(lVar3 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 8)" (( "(") (binary_expression "lVar3 + 8" (identifier "lVar3") (+ "+") (number_literal "8")) () ")")))) (+ "+") (binary_expression "lVar13 * 8" (identifier "lVar13") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar7 != 0)" (( "(") (binary_expression "lVar7 != 0" (identifier "lVar7") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}")))) (} "}")))) (expression_statement "iVar1 = *(int *)(lVar3 + 0x10);" (assignment_expression "iVar1 = *(int *)(lVar3 + 0x10)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(lVar3 + 0x10)" (* "*") (cast_expression "(int *)(lVar3 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x10)" (( "(") (binary_expression "lVar3 + 0x10" (identifier "lVar3") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50)" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (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")) () ")"))))) (; ";")) (labeled_statement "LAB_0012c31a:\n                    \n                    \n          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);" (statement_identifier "LAB_0012c31a") (: ":") (expression_statement "uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);" (assignment_expression "uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1)" (identifier "uVar4") (= "=") (call_expression "(*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE_00)" (( "(") (pointer_expression "*UNRECOVERED_JUMPTABLE_00" (* "*") (identifier "UNRECOVERED_JUMPTABLE_00")) () ")")) (argument_list "(param_3,iVar2,iVar1)" (( "(") (identifier "param_3") (, ",") (identifier "iVar2") (, ",") (identifier "iVar1") () ")")))) (; ";"))) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";"))) (case_statement "case 0xe:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);\n          goto LAB_0012bfcc;" (case "case") (number_literal "0xe") (: ":") (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" (identifier "iVar2") (= "=") (call_expression "FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" (identifier "FUN_0012bc00") (argument_list "(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (pointer_expression "*(undefined8 *)(param_4 + 4)" (* "*") (cast_expression "(undefined8 *)(param_4 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")")))) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (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 + 0x58);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58)" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (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")) () ")"))))) (; ";")) (goto_statement "goto LAB_0012bfcc;" (goto "goto") (statement_identifier "LAB_0012bfcc") (; ";"))) (case_statement "case 0xf:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));\n          return uVar4;" (case "case") (number_literal "0xf") (: ":") (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" (identifier "iVar2") (= "=") (call_expression "FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" (identifier "FUN_0012bc00") (argument_list "(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (pointer_expression "**(undefined8 **)(param_4 + 4)" (* "*") (pointer_expression "*(undefined8 **)(param_4 + 4)" (* "*") (cast_expression "(undefined8 **)(param_4 + 4)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")"))))) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10))" (identifier "uVar4") (= "=") (call_expression "(**(code **)(param_2 + 0x60))\n                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10))" (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,*(undefined8 *)(*(long *)(param_4 + 4) + 8),\n                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10))" (( "(") (identifier "param_3") (, ",") (pointer_expression "*(undefined8 *)(*(long *)(param_4 + 4) + 8)" (* "*") (cast_expression "(undefined8 *)(*(long *)(param_4 + 4) + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_4 + 4) + 8)" (( "(") (binary_expression "*(long *)(param_4 + 4) + 8" (pointer_expression "*(long *)(param_4 + 4)" (* "*") (cast_expression "(long *)(param_4 + 4)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (, ",") (pointer_expression "*(undefined8 *)(*(long *)(param_4 + 4) + 0x10)" (* "*") (cast_expression "(undefined8 *)(*(long *)(param_4 + 4) + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_4 + 4) + 0x10)" (( "(") (binary_expression "*(long *)(param_4 + 4) + 0x10" (pointer_expression "*(long *)(param_4 + 4)" (* "*") (cast_expression "(long *)(param_4 + 4)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x10")) () ")")))) () ")")))) (; ";")) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";"))) (case_statement "case 0x10:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));\n          return uVar4;" (case "case") (number_literal "0x10") (: ":") (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" (identifier "iVar2") (= "=") (call_expression "FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" (identifier "FUN_0012bc00") (argument_list "(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (pointer_expression "**(undefined8 **)(param_4 + 4)" (* "*") (pointer_expression "*(undefined8 **)(param_4 + 4)" (* "*") (cast_expression "(undefined8 **)(param_4 + 4)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")"))))) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              )" (identifier "iVar2") (= "=") (call_expression "FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              )" (identifier "FUN_0012bc00") (argument_list "(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              )" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (pointer_expression "*(undefined8 *)(*(long *)(param_4 + 4) + 8)" (* "*") (cast_expression "(undefined8 *)(*(long *)(param_4 + 4) + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_4 + 4) + 8)" (( "(") (binary_expression "*(long *)(param_4 + 4) + 8" (pointer_expression "*(long *)(param_4 + 4)" (* "*") (cast_expression "(long *)(param_4 + 4)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "lVar3 = *(long *)(param_4 + 4);" (assignment_expression "lVar3 = *(long *)(param_4 + 4)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(param_4 + 4)" (* "*") (cast_expression "(long *)(param_4 + 4)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20));" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20))" (identifier "uVar4") (= "=") (call_expression "(**(code **)(param_2 + 0x68))\n                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20))" (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,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),\n                             *(undefined4 *)(lVar3 + 0x20))" (( "(") (identifier "param_3") (, ",") (pointer_expression "*(undefined8 *)(lVar3 + 0x10)" (* "*") (cast_expression "(undefined8 *)(lVar3 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x10)" (( "(") (binary_expression "lVar3 + 0x10" (identifier "lVar3") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (pointer_expression "*(undefined8 *)(lVar3 + 0x18)" (* "*") (cast_expression "(undefined8 *)(lVar3 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x18)" (( "(") (binary_expression "lVar3 + 0x18" (identifier "lVar3") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(lVar3 + 0x20)" (* "*") (cast_expression "(undefined4 *)(lVar3 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x20)" (( "(") (binary_expression "lVar3 + 0x20" (identifier "lVar3") (+ "+") (number_literal "0x20")) () ")")))) () ")")))) (; ";")) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";"))) (case_statement "case 0x11:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);\n          break;" (case "case") (number_literal "0x11") (: ":") (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" (identifier "iVar2") (= "=") (call_expression "FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" (identifier "FUN_0012bc00") (argument_list "(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (pointer_expression "**(undefined8 **)(param_4 + 4)" (* "*") (pointer_expression "*(undefined8 **)(param_4 + 4)" (* "*") (cast_expression "(undefined8 **)(param_4 + 4)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")"))))) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);" (assignment_expression "iVar2 = *(int *)(*(long *)(param_4 + 4) + 8)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(*(long *)(param_4 + 4) + 8)" (* "*") (cast_expression "(int *)(*(long *)(param_4 + 4) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_4 + 4) + 8)" (( "(") (binary_expression "*(long *)(param_4 + 4) + 8" (pointer_expression "*(long *)(param_4 + 4)" (* "*") (cast_expression "(long *)(param_4 + 4)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70)" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (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")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x12:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);\n          goto LAB_0012bfcc;" (case "case") (number_literal "0x12") (: ":") (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" (identifier "iVar2") (= "=") (call_expression "FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" (identifier "FUN_0012bc00") (argument_list "(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (pointer_expression "**(undefined8 **)(param_4 + 4)" (* "*") (pointer_expression "*(undefined8 **)(param_4 + 4)" (* "*") (cast_expression "(undefined8 **)(param_4 + 4)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")"))))) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              );" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              )" (identifier "iVar2") (= "=") (call_expression "FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              )" (identifier "FUN_0012bc00") (argument_list "(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0\n                              )" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (pointer_expression "*(undefined8 *)(*(long *)(param_4 + 4) + 8)" (* "*") (cast_expression "(undefined8 *)(*(long *)(param_4 + 4) + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_4 + 4) + 8)" (( "(") (binary_expression "*(long *)(param_4 + 4) + 8" (pointer_expression "*(long *)(param_4 + 4)" (* "*") (cast_expression "(long *)(param_4 + 4)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (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 + 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_0012bfcc;" (goto "goto") (statement_identifier "LAB_0012bfcc") (; ";"))) (case_statement "case 0x13:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          lVar3 = *(long *)(param_4 + 4);\n          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }\n          lVar7 = *(long *)(lVar3 + 8);\n          if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }\n                    \n                    \n          uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));\n          return uVar4;" (case "case") (number_literal "0x13") (: ":") (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" (identifier "iVar2") (= "=") (call_expression "FUN_0012bc00(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" (identifier "FUN_0012bc00") (argument_list "(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (pointer_expression "**(undefined8 **)(param_4 + 4)" (* "*") (pointer_expression "*(undefined8 **)(param_4 + 4)" (* "*") (cast_expression "(undefined8 **)(param_4 + 4)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")"))))) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "lVar3 = *(long *)(param_4 + 4);" (assignment_expression "lVar3 = *(long *)(param_4 + 4)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(param_4 + 4)" (* "*") (cast_expression "(long *)(param_4 + 4)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (*(long **)(lVar3 + 0x10) == (long *)0x0) {\n            iVar2 = -1;\n          }\n          else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }" (if "if") (parenthesized_expression "(*(long **)(lVar3 + 0x10) == (long *)0x0)" (( "(") (binary_expression "*(long **)(lVar3 + 0x10) == (long *)0x0" (pointer_expression "*(long **)(lVar3 + 0x10)" (* "*") (cast_expression "(long **)(lVar3 + 0x10)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar3 + 0x10)" (( "(") (binary_expression "lVar3 + 0x10" (identifier "lVar3") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            iVar2 = -1;\n          }" ({ "{") (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" (identifier "iVar2") (= "=") (number_literal "-1")) (; ";")) (} "}")) (else_clause "else {\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }" (else "else") (compound_statement "{\n            lVar7 = **(long **)(lVar3 + 0x10);\n            if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }\n          }" ({ "{") (expression_statement "lVar7 = **(long **)(lVar3 + 0x10);" (assignment_expression "lVar7 = **(long **)(lVar3 + 0x10)" (identifier "lVar7") (= "=") (pointer_expression "**(long **)(lVar3 + 0x10)" (* "*") (pointer_expression "*(long **)(lVar3 + 0x10)" (* "*") (cast_expression "(long **)(lVar3 + 0x10)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar3 + 0x10)" (( "(") (binary_expression "lVar3 + 0x10" (identifier "lVar3") (+ "+") (number_literal "0x10")) () ")")))))) (; ";")) (if_statement "if (lVar7 == 0) {\n              iVar2 = 0;\n            }\n            else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }" (if "if") (parenthesized_expression "(lVar7 == 0)" (( "(") (binary_expression "lVar7 == 0" (identifier "lVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              iVar2 = 0;\n            }" ({ "{") (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }" (else "else") (compound_statement "{\n              lVar13 = 0;\n              do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);\n            }" ({ "{") (expression_statement "lVar13 = 0;" (assignment_expression "lVar13 = 0" (identifier "lVar13") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              } while (lVar7 != 0);" (do "do") (compound_statement "{\n                iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n                if (iVar2 == 0) {\n                  return 0;\n                }\n                lVar3 = *(long *)(param_4 + 4);\n                iVar2 = (int)lVar13 + 1;\n                lVar13 = lVar13 + 1;\n                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);\n              }" ({ "{") (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0)" (identifier "iVar2") (= "=") (call_expression "FUN_0012bc00(param_1,param_2,param_3,lVar7,0)" (identifier "FUN_0012bc00") (argument_list "(param_1,param_2,param_3,lVar7,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "lVar7") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n                  return 0;\n                }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  return 0;\n                }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "lVar3 = *(long *)(param_4 + 4);" (assignment_expression "lVar3 = *(long *)(param_4 + 4)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(param_4 + 4)" (* "*") (cast_expression "(long *)(param_4 + 4)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar2 = (int)lVar13 + 1;" (assignment_expression "iVar2 = (int)lVar13 + 1" (identifier "iVar2") (= "=") (binary_expression "(int)lVar13 + 1" (cast_expression "(int)lVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar13")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar13 = lVar13 + 1;" (assignment_expression "lVar13 = lVar13 + 1" (identifier "lVar13") (= "=") (binary_expression "lVar13 + 1" (identifier "lVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);" (assignment_expression "lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8)" (identifier "lVar7") (= "=") (pointer_expression "*(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8)" (* "*") (cast_expression "(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(lVar3 + 0x10) + lVar13 * 8)" (( "(") (binary_expression "*(long *)(lVar3 + 0x10) + lVar13 * 8" (pointer_expression "*(long *)(lVar3 + 0x10)" (* "*") (cast_expression "(long *)(lVar3 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x10)" (( "(") (binary_expression "lVar3 + 0x10" (identifier "lVar3") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (binary_expression "lVar13 * 8" (identifier "lVar13") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar7 != 0)" (( "(") (binary_expression "lVar7 != 0" (identifier "lVar7") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}")))) (} "}")))) (expression_statement "lVar7 = *(long *)(lVar3 + 8);" (assignment_expression "lVar7 = *(long *)(lVar3 + 8)" (identifier "lVar7") (= "=") (pointer_expression "*(long *)(lVar3 + 8)" (* "*") (cast_expression "(long *)(lVar3 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 8)" (( "(") (binary_expression "lVar3 + 8" (identifier "lVar3") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (lVar7 != 0) {\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }" (if "if") (parenthesized_expression "(lVar7 != 0)" (( "(") (binary_expression "lVar7 != 0" (identifier "lVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);\n            if (iVar1 == 0) {\n              return 0;\n            }\n            lVar3 = *(long *)(param_4 + 4);\n            lVar7 = *(long *)(lVar3 + 8);\n          }" ({ "{") (expression_statement "iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0);" (assignment_expression "iVar1 = FUN_0012bc00(param_1,param_2,param_3,lVar7,0)" (identifier "iVar1") (= "=") (call_expression "FUN_0012bc00(param_1,param_2,param_3,lVar7,0)" (identifier "FUN_0012bc00") (argument_list "(param_1,param_2,param_3,lVar7,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "lVar7") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n              return 0;\n            }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              return 0;\n            }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "lVar3 = *(long *)(param_4 + 4);" (assignment_expression "lVar3 = *(long *)(param_4 + 4)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(param_4 + 4)" (* "*") (cast_expression "(long *)(param_4 + 4)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "lVar7 = *(long *)(lVar3 + 8);" (assignment_expression "lVar7 = *(long *)(lVar3 + 8)" (identifier "lVar7") (= "=") (pointer_expression "*(long *)(lVar3 + 8)" (* "*") (cast_expression "(long *)(lVar3 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 8)" (( "(") (binary_expression "lVar3 + 8" (identifier "lVar3") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));" (assignment_expression "uVar4 = (**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18))" (identifier "uVar4") (= "=") (call_expression "(**(code **)(param_2 + 0x80))\n                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18))" (parenthesized_expression "(**(code **)(param_2 + 0x80))" (( "(") (pointer_expression "**(code **)(param_2 + 0x80)" (* "*") (pointer_expression "*(code **)(param_2 + 0x80)" (* "*") (cast_expression "(code **)(param_2 + 0x80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x80)" (( "(") (binary_expression "param_2 + 0x80" (identifier "param_2") (+ "+") (number_literal "0x80")) () ")"))))) () ")")) (argument_list "(param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18))" (( "(") (identifier "param_3") (, ",") (binary_expression "lVar7 != 0" (identifier "lVar7") (!= "!=") (number_literal "0")) (, ",") (identifier "iVar2") (, ",") (pointer_expression "*(undefined4 *)(lVar3 + 0x18)" (* "*") (cast_expression "(undefined4 *)(lVar3 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x18)" (( "(") (binary_expression "lVar3 + 0x18" (identifier "lVar3") (+ "+") (number_literal "0x18")) () ")")))) () ")")))) (; ";")) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";"))) (case_statement "case 0x14:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);\n          goto LAB_0012bfcc;" (case "case") (number_literal "0x14") (: ":") (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" (identifier "iVar2") (= "=") (call_expression "FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" (identifier "FUN_0012bc00") (argument_list "(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (pointer_expression "*(undefined8 *)(param_4 + 4)" (* "*") (cast_expression "(undefined8 *)(param_4 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")")))) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (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 + 0x88);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88)" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (pointer_expression "*(code **)(param_2 + 0x88)" (* "*") (cast_expression "(code **)(param_2 + 0x88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x88)" (( "(") (binary_expression "param_2 + 0x88" (identifier "param_2") (+ "+") (number_literal "0x88")) () ")"))))) (; ";")) (goto_statement "goto LAB_0012bfcc;" (goto "goto") (statement_identifier "LAB_0012bfcc") (; ";"))) (case_statement "case 0x15:\n          iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);\n          if (iVar2 == 0) {\n            return 0;\n          }\n          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);\n          goto LAB_0012bfcc;" (case "case") (number_literal "0x15") (: ":") (expression_statement "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);" (assignment_expression "iVar2 = FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" (identifier "iVar2") (= "=") (call_expression "FUN_0012bc00(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" (identifier "FUN_0012bc00") (argument_list "(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (pointer_expression "*(undefined8 *)(param_4 + 4)" (* "*") (cast_expression "(undefined8 *)(param_4 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")")))) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (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 + 0x90);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90)" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (pointer_expression "*(code **)(param_2 + 0x90)" (* "*") (cast_expression "(code **)(param_2 + 0x90)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x90)" (( "(") (binary_expression "param_2 + 0x90" (identifier "param_2") (+ "+") (number_literal "0x90")) () ")"))))) (; ";")) (goto_statement "goto LAB_0012bfcc;" (goto "goto") (statement_identifier "LAB_0012bfcc") (; ";"))) (case_statement "case 0x16:\n          goto switchD_0012bc67_caseD_16;" (case "case") (number_literal "0x16") (: ":") (goto_statement "goto switchD_0012bc67_caseD_16;" (goto "goto") (statement_identifier "switchD_0012bc67_caseD_16") (; ";"))) (case_statement "case 0x17:\nswitchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);\n          param_5 = *plVar6;\n          goto LAB_0012bc96;" (case "case") (number_literal "0x17") (: ":") (labeled_statement "switchD_0012bc67_caseD_17:\n          plVar6 = *(long **)(param_4 + 4);" (statement_identifier "switchD_0012bc67_caseD_17") (: ":") (expression_statement "plVar6 = *(long **)(param_4 + 4);" (assignment_expression "plVar6 = *(long **)(param_4 + 4)" (identifier "plVar6") (= "=") (pointer_expression "*(long **)(param_4 + 4)" (* "*") (cast_expression "(long **)(param_4 + 4)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")"))))) (; ";"))) (expression_statement "param_5 = *plVar6;" (assignment_expression "param_5 = *plVar6" (identifier "param_5") (= "=") (pointer_expression "*plVar6" (* "*") (identifier "plVar6"))) (; ";")) (goto_statement "goto LAB_0012bc96;" (goto "goto") (statement_identifier "LAB_0012bc96") (; ";"))) (case_statement "default:\n                    \n          abort();" (default "default") (: ":") (expression_statement "abort();" (call_expression "abort()" (identifier "abort") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}")))) (expression_statement "uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);" (assignment_expression "uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2)" (identifier "uVar4") (= "=") (call_expression "(*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE_00)" (( "(") (pointer_expression "*UNRECOVERED_JUMPTABLE_00" (* "*") (identifier "UNRECOVERED_JUMPTABLE_00")) () ")")) (argument_list "(param_3,iVar2)" (( "(") (identifier "param_3") (, ",") (identifier "iVar2") () ")")))) (; ";")) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}")))) (expression_statement "*(undefined4 *)(param_5 + 0x10) = *(undefined4 *)(param_1 + 0x30);" (assignment_expression "*(undefined4 *)(param_5 + 0x10) = *(undefined4 *)(param_1 + 0x30)" (pointer_expression "*(undefined4 *)(param_5 + 0x10)" (* "*") (cast_expression "(undefined4 *)(param_5 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0x10)" (( "(") (binary_expression "param_5 + 0x10" (identifier "param_5") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x30)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (if_statement "if (iVar2 != 0x16) {\n        if (iVar2 != 0x17) {\n          if (*(int *)(param_5 + 0x14) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }" (if "if") (parenthesized_expression "(iVar2 != 0x16)" (( "(") (binary_expression "iVar2 != 0x16" (identifier "iVar2") (!= "!=") (number_literal "0x16")) () ")")) (compound_statement "{\n        if (iVar2 != 0x17) {\n          if (*(int *)(param_5 + 0x14) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }\n        goto switchD_0012bc67_caseD_17;\n      }" ({ "{") (if_statement "if (iVar2 != 0x17) {\n          if (*(int *)(param_5 + 0x14) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }" (if "if") (parenthesized_expression "(iVar2 != 0x17)" (( "(") (binary_expression "iVar2 != 0x17" (identifier "iVar2") (!= "!=") (number_literal "0x17")) () ")")) (compound_statement "{\n          if (*(int *)(param_5 + 0x14) != 1) {\n                    \n            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,\n                          "debug_write_type");\n          }\n          uVar4 = *(undefined8 *)(param_5 + 8);\n          goto LAB_0012bc55;\n        }" ({ "{") (if_statement "if (*(int *)(param_5 + 0x14) != 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 + 0x14) != 1)" (( "(") (binary_expression "*(int *)(param_5 + 0x14) != 1" (pointer_expression "*(int *)(param_5 + 0x14)" (* "*") (cast_expression "(int *)(param_5 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0x14)" (( "(") (binary_expression "param_5 + 0x14" (identifier "param_5") (+ "+") (number_literal "0x14")) () ")")))) (!= "!=") (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 "uVar4 = *(undefined8 *)(param_5 + 8);" (assignment_expression "uVar4 = *(undefined8 *)(param_5 + 8)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined8 *)(param_5 + 8)" (* "*") (cast_expression "(undefined8 *)(param_5 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 8)" (( "(") (binary_expression "param_5 + 8" (identifier "param_5") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (goto_statement "goto LAB_0012bc55;" (goto "goto") (statement_identifier "LAB_0012bc55") (; ";")) (} "}"))) (goto_statement "goto switchD_0012bc67_caseD_17;" (goto "goto") (statement_identifier "switchD_0012bc67_caseD_17") (; ";")) (} "}"))) (labeled_statement "switchD_0012bc67_caseD_16:\n      param_5 = 0;" (statement_identifier "switchD_0012bc67_caseD_16") (: ":") (expression_statement "param_5 = 0;" (assignment_expression "param_5 = 0" (identifier "param_5") (= "=") (number_literal "0")) (; ";"))) (} "}"))) (expression_statement "plVar6 = *(long **)(param_4 + 4);" (assignment_expression "plVar6 = *(long **)(param_4 + 4)" (identifier "plVar6") (= "=") (pointer_expression "*(long **)(param_4 + 4)" (* "*") (cast_expression "(long **)(param_4 + 4)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "lVar3 = *plVar6;" (assignment_expression "lVar3 = *plVar6" (identifier "lVar3") (= "=") (pointer_expression "*plVar6" (* "*") (identifier "plVar6"))) (; ";")) (if_statement "if (*(int *)(lVar3 + 0x10) == *(int *)(param_1 + 0x30)) {\n      if (iVar2 == 0x16) {\n                    \n                    \n        uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));\n        return uVar4;\n      }\nLAB_0012c43d:\n      piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0);\n      if (piVar5 != (int *)0x0) {\n        iVar2 = *piVar5;\n        uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n        if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n        goto LAB_0012c3c5;\n      }\n      goto LAB_0012bff3;\n    }" (if "if") (parenthesized_expression "(*(int *)(lVar3 + 0x10) == *(int *)(param_1 + 0x30))" (( "(") (binary_expression "*(int *)(lVar3 + 0x10) == *(int *)(param_1 + 0x30)" (pointer_expression "*(int *)(lVar3 + 0x10)" (* "*") (cast_expression "(int *)(lVar3 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x10)" (( "(") (binary_expression "lVar3 + 0x10" (identifier "lVar3") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (pointer_expression "*(int *)(param_1 + 0x30)" (* "*") (cast_expression "(int *)(param_1 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (compound_statement "{\n      if (iVar2 == 0x16) {\n                    \n                    \n        uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));\n        return uVar4;\n      }\nLAB_0012c43d:\n      piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0);\n      if (piVar5 != (int *)0x0) {\n        iVar2 = *piVar5;\n        uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n        if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n        goto LAB_0012c3c5;\n      }\n      goto LAB_0012bff3;\n    }" ({ "{") (if_statement "if (iVar2 == 0x16) {\n                    \n                    \n        uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));\n        return uVar4;\n      }" (if "if") (parenthesized_expression "(iVar2 == 0x16)" (( "(") (binary_expression "iVar2 == 0x16" (identifier "iVar2") (== "==") (number_literal "0x16")) () ")")) (compound_statement "{\n                    \n                    \n        uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));\n        return uVar4;\n      }" ({ "{") (expression_statement "uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));" (assignment_expression "uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8))" (identifier "uVar4") (= "=") (call_expression "(**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8))" (parenthesized_expression "(**(code **)(param_2 + 0xf0))" (( "(") (pointer_expression "**(code **)(param_2 + 0xf0)" (* "*") (pointer_expression "*(code **)(param_2 + 0xf0)" (* "*") (cast_expression "(code **)(param_2 + 0xf0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0xf0)" (( "(") (binary_expression "param_2 + 0xf0" (identifier "param_2") (+ "+") (number_literal "0xf0")) () ")"))))) () ")")) (argument_list "(param_3,*(undefined8 *)(lVar3 + 8))" (( "(") (identifier "param_3") (, ",") (pointer_expression "*(undefined8 *)(lVar3 + 8)" (* "*") (cast_expression "(undefined8 *)(lVar3 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 8)" (( "(") (binary_expression "lVar3 + 8" (identifier "lVar3") (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}"))) (labeled_statement "LAB_0012c43d:\n      piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0);" (statement_identifier "LAB_0012c43d") (: ":") (expression_statement "piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0);" (assignment_expression "piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0)" (identifier "piVar5") (= "=") (cast_expression "(int *)FUN_0012b0d0(param_1,param_4,0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0012b0d0(param_1,param_4,0)" (identifier "FUN_0012b0d0") (argument_list "(param_1,param_4,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_4") (, ",") (number_literal "0") () ")"))))) (; ";"))) (if_statement "if (piVar5 != (int *)0x0) {\n        iVar2 = *piVar5;\n        uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n        if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n        goto LAB_0012c3c5;\n      }" (if "if") (parenthesized_expression "(piVar5 != (int *)0x0)" (( "(") (binary_expression "piVar5 != (int *)0x0" (identifier "piVar5") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        iVar2 = *piVar5;\n        uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n        if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);\n        goto LAB_0012c3c5;\n      }" ({ "{") (expression_statement "iVar2 = *piVar5;" (assignment_expression "iVar2 = *piVar5" (identifier "iVar2") (= "=") (pointer_expression "*piVar5" (* "*") (identifier "piVar5"))) (; ";")) (expression_statement "uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);" (assignment_expression "uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined8 *)(**(long **)(param_4 + 4) + 8)" (* "*") (cast_expression "(undefined8 *)(**(long **)(param_4 + 4) + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(**(long **)(param_4 + 4) + 8)" (( "(") (binary_expression "**(long **)(param_4 + 4) + 8" (pointer_expression "**(long **)(param_4 + 4)" (* "*") (pointer_expression "*(long **)(param_4 + 4)" (* "*") (cast_expression "(long **)(param_4 + 4)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")"))))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }\n        else {\n          uVar12 = 0;\n        }" (if "if") (parenthesized_expression "((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0))" (( "(") (binary_expression "(iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)" (parenthesized_expression "(iVar2 - 7U < 4)" (( "(") (binary_expression "iVar2 - 7U < 4" (binary_expression "iVar2 - 7U" (identifier "iVar2") (- "-") (number_literal "7U")) (< "<") (number_literal "4")) () ")")) (&& "&&") (parenthesized_expression "(*(long *)(piVar5 + 4) != 0)" (( "(") (binary_expression "*(long *)(piVar5 + 4) != 0" (pointer_expression "*(long *)(piVar5 + 4)" (* "*") (cast_expression "(long *)(piVar5 + 4)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar5 + 4)" (( "(") (binary_expression "piVar5 + 4" (identifier "piVar5") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n          if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }\n        }" ({ "{") (expression_statement "uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);" (assignment_expression "uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc)" (identifier "uVar12") (= "=") (pointer_expression "*(uint *)(*(long *)(piVar5 + 4) + 0xc)" (* "*") (cast_expression "(uint *)(*(long *)(piVar5 + 4) + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(piVar5 + 4) + 0xc)" (( "(") (binary_expression "*(long *)(piVar5 + 4) + 0xc" (pointer_expression "*(long *)(piVar5 + 4)" (* "*") (cast_expression "(long *)(piVar5 + 4)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar5 + 4)" (( "(") (binary_expression "piVar5 + 4" (identifier "piVar5") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (uVar12 <= *(uint *)(param_1 + 0x38)) {\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }" (if "if") (parenthesized_expression "(uVar12 <= *(uint *)(param_1 + 0x38))" (( "(") (binary_expression "uVar12 <= *(uint *)(param_1 + 0x38)" (identifier "uVar12") (<= "<=") (pointer_expression "*(uint *)(param_1 + 0x38)" (* "*") (cast_expression "(uint *)(param_1 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (compound_statement "{\n            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);\n            if (iVar2 == 0) {\n              return 0;\n            }\n            iVar2 = *piVar5;\n            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);\n            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);\n          }" ({ "{") (expression_statement "iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);" (assignment_expression "iVar2 = FUN_0012bae0(param_1,uVar4,piVar5)" (identifier "iVar2") (= "=") (call_expression "FUN_0012bae0(param_1,uVar4,piVar5)" (identifier "FUN_0012bae0") (argument_list "(param_1,uVar4,piVar5)" (( "(") (identifier "param_1") (, ",") (identifier "uVar4") (, ",") (identifier "piVar5") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n              return 0;\n            }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              return 0;\n            }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar2 = *piVar5;" (assignment_expression "iVar2 = *piVar5" (identifier "iVar2") (= "=") (pointer_expression "*piVar5" (* "*") (identifier "piVar5"))) (; ";")) (expression_statement "uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);" (assignment_expression "uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc)" (identifier "uVar12") (= "=") (pointer_expression "*(uint *)(*(long *)(piVar5 + 4) + 0xc)" (* "*") (cast_expression "(uint *)(*(long *)(piVar5 + 4) + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(piVar5 + 4) + 0xc)" (( "(") (binary_expression "*(long *)(piVar5 + 4) + 0xc" (pointer_expression "*(long *)(piVar5 + 4)" (* "*") (cast_expression "(long *)(piVar5 + 4)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar5 + 4)" (( "(") (binary_expression "piVar5 + 4" (identifier "piVar5") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);" (assignment_expression "uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined8 *)(**(long **)(param_4 + 4) + 8)" (* "*") (cast_expression "(undefined8 *)(**(long **)(param_4 + 4) + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(**(long **)(param_4 + 4) + 8)" (( "(") (binary_expression "**(long **)(param_4 + 4) + 8" (pointer_expression "**(long **)(param_4 + 4)" (* "*") (pointer_expression "*(long **)(param_4 + 4)" (* "*") (cast_expression "(long **)(param_4 + 4)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")"))))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          uVar12 = 0;\n        }" (else "else") (compound_statement "{\n          uVar12 = 0;\n        }" ({ "{") (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8)" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (pointer_expression "*(code **)(param_2 + 0xf8)" (* "*") (cast_expression "(code **)(param_2 + 0xf8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0xf8)" (( "(") (binary_expression "param_2 + 0xf8" (identifier "param_2") (+ "+") (number_literal "0xf8")) () ")"))))) (; ";")) (goto_statement "goto LAB_0012c3c5;" (goto "goto") (statement_identifier "LAB_0012c3c5") (; ";")) (} "}"))) (goto_statement "goto LAB_0012bff3;" (goto "goto") (statement_identifier "LAB_0012bff3") (; ";")) (} "}"))) (if_statement "if (iVar2 != 0x17) goto LAB_0012bc2b;" (if "if") (parenthesized_expression "(iVar2 != 0x17)" (( "(") (binary_expression "iVar2 != 0x17" (identifier "iVar2") (!= "!=") (number_literal "0x17")) () ")")) (goto_statement "goto LAB_0012bc2b;" (goto "goto") (statement_identifier "LAB_0012bc2b") (; ";"))) (if_statement "if (lVar3 != param_5) goto LAB_0012c43d;" (if "if") (parenthesized_expression "(lVar3 != param_5)" (( "(") (binary_expression "lVar3 != param_5" (identifier "lVar3") (!= "!=") (identifier "param_5")) () ")")) (goto_statement "goto LAB_0012c43d;" (goto "goto") (statement_identifier "LAB_0012c43d") (; ";"))) (expression_statement "*(int *)(param_5 + 0x10) = *(int *)(param_1 + 0x30);" (assignment_expression "*(int *)(param_5 + 0x10) = *(int *)(param_1 + 0x30)" (pointer_expression "*(int *)(param_5 + 0x10)" (* "*") (cast_expression "(int *)(param_5 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0x10)" (( "(") (binary_expression "param_5 + 0x10" (identifier "param_5") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (pointer_expression "*(int *)(param_1 + 0x30)" (* "*") (cast_expression "(int *)(param_1 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (labeled_statement "LAB_0012bc96:\n    param_4 = (int *)plVar6[1];" (statement_identifier "LAB_0012bc96") (: ":") (expression_statement "param_4 = (int *)plVar6[1];" (assignment_expression "param_4 = (int *)plVar6[1]" (identifier "param_4") (= "=") (cast_expression "(int *)plVar6[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar6[1]" (identifier "plVar6") ([ "[") (number_literal "1") (] "]")))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (labeled_statement "switchD_0012bc67_caseD_1:\n  param_4 = *(int **)**(undefined8 **)(param_4 + 4);" (statement_identifier "switchD_0012bc67_caseD_1") (: ":") (expression_statement "param_4 = *(int **)**(undefined8 **)(param_4 + 4);" (assignment_expression "param_4 = *(int **)**(undefined8 **)(param_4 + 4)" (identifier "param_4") (= "=") (pointer_expression "*(int **)**(undefined8 **)(param_4 + 4)" (* "*") (cast_expression "(int **)**(undefined8 **)(param_4 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "**(undefined8 **)(param_4 + 4)" (* "*") (pointer_expression "*(undefined8 **)(param_4 + 4)" (* "*") (cast_expression "(undefined8 **)(param_4 + 4)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")")))))))) (; ";"))) (if_statement "if (param_4 == (int *)0x0) {\nLAB_0012bff3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x10);\nLAB_0012bfcc:\n                    \n                    \n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3);\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_0012bff3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x10);\nLAB_0012bfcc:\n                    \n                    \n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3);\n    return uVar4;\n  }" ({ "{") (labeled_statement "LAB_0012bff3:\n    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x10);" (statement_identifier "LAB_0012bff3") (: ":") (expression_statement "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x10);" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x10)" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (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")) () ")"))))) (; ";"))) (labeled_statement "LAB_0012bfcc:\n                    \n                    \n    uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3);" (statement_identifier "LAB_0012bfcc") (: ":") (expression_statement "uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3);" (assignment_expression "uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3)" (identifier "uVar4") (= "=") (call_expression "(*UNRECOVERED_JUMPTABLE_00)(param_3)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE_00)" (( "(") (pointer_expression "*UNRECOVERED_JUMPTABLE_00" (* "*") (identifier "UNRECOVERED_JUMPTABLE_00")) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";"))) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}"))) (goto_statement "goto LAB_0012bc21;" (goto "goto") (statement_identifier "LAB_0012bc21") (; ";")) (} "}")))

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

{
  type_5 *var_30;
  type_6 *pdVar2;
  type_7 *var_24;
  type_8 *var_13;
  type_9 *var_22;
  type_1 var_10;
  type_10 *pdVar7;
  type_11 *pdVar8;
  type_12 *UNRECOVERED_JUMPTABLE_02;
  type_13 uVar9;
  type_14 *UNRECOVERED_JUMPTABLE_00;
  type_15 *UNRECOVERED_JUMPTABLE_01;
  type_16 *UNRECOVERED_JUMPTABLE;
  type_4 *var_17;
  type_17 *var_6;
  type_18 var_8;
  type_19 var_1;
  type_20 *pbVar14;
  type_21 uVar15;
  char **ppcVar16;
  type_18 var_7;
  type_22 tag;
  type_23 *pdVar18;
  type_18 var_15;
  type_24 *p_Var20;
  long var_25;
  type_8 var_14;
  int var_19;
  type_25 var_20;
  type_26 var_21;
  type_18 var_23;
  
LAB_0012bc21:
  do {
    for (; var_1 = var_16->kind, 1 < var_1 - var_2; var_16 = ((var_16->u).karray)->range_type
        ) {
LAB_0012bc2b:
      if (var_3 == (type_5 *)0x0) {
        tag = (type_22)0x0;
LAB_0012bc55:
        switch(var_1) {
        case DEBUG_KIND_ILLEGAL:
          uVar9 = var_4(0,"debug_write_type: illegal type encountered",5);
          var_5(stderr,"%s\n",uVar9);
          return 0;
        case DEBUG_KIND_INDIRECT:
          goto switchD_0012bc67_caseD_1;
        case DEBUG_KIND_VOID:
          UNRECOVERED_JUMPTABLE_02 = fns->void_type;
          goto LAB_0012bfcc;
        case DEBUG_KIND_INT:
          var_10 = (var_16->u).kint;
          var_7 = var_16->size;
          UNRECOVERED_JUMPTABLE_01 = fns->int_type;
          goto LAB_0012c31a;
        case DEBUG_KIND_FLOAT:
          var_7 = var_16->size;
          UNRECOVERED_JUMPTABLE_00 = fns->float_type;
          break;
        case DEBUG_KIND_COMPLEX:
          var_7 = var_16->size;
          UNRECOVERED_JUMPTABLE_00 = fns->complex_type;
          break;
        case DEBUG_KIND_BOOL:
          var_7 = var_16->size;
          UNRECOVERED_JUMPTABLE_00 = fns->bool_type;
          break;
        case var_12:
        case DEBUG_KIND_UNION:
          var_6 = (var_16->u).kclass;
          if (var_6 == (type_17 *)0x0) {
            p_Var20 = fns->start_struct_type;
            var_15 = var_16->size;
            var_7 = 0;
          }
          else {
            var_7 = var_6->id;
            if (info->base_id < var_7) {
              var_8 = info->mark;
              if (var_6->mark == var_8) {
LAB_0012c414:
                UNRECOVERED_JUMPTABLE = fns->tag_type;
                var_1 = var_16->kind;
LAB_0012c3c5:
                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                var_10 = (*UNRECOVERED_JUMPTABLE)(fhandle,(char *)tag,var_7,var_1);
                return var_10;
              }
            }
            else {
              var_10 = var_9(info,(char *)tag,var_16);
              if (var_10 == 0) {
                return 0;
              }
              var_6 = (var_16->u).kclass;
              var_8 = info->mark;
              if (var_8 == var_6->mark) {
                var_7 = var_6->id;
                if (var_7 <= info->base_id) {
                    /* WARNING: Subroutine does not return */
                  var_11("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,
                                "debug_write_type");
                }
                goto LAB_0012c414;
              }
            }
            p_Var20 = fns->start_struct_type;
            var_15 = var_16->size;
            var_6->mark = var_8;
            var_7 = var_6->id;
            var_1 = var_16->kind;
          }
          var_10 = (*p_Var20)(fhandle,(char *)tag,var_7,(type_18)(var_1 == var_12),var_15);
          if (var_10 == 0) {
            return 0;
          }
          if ((((var_16->u).kclass != (type_17 *)0x0) &&
              (var_13 = ((var_16->u).kclass)->fields, var_13 != (type_8 *)0x0)) &&
             (var_14 = *var_13, var_14 != (type_8)0x0)) {
            uVar15 = 0;
            do {
              var_10 = function_1(info,fns,fhandle,var_14->var_16,(type_5 *)0x0);
              if (var_10 == 0) {
                return 0;
              }
              var_10 = (*fns->struct_field)
                                (fhandle,var_14->var_3,(type_21)(var_14->u).f.bitpos,
                                 (type_21)(var_14->u).f.bitsize,var_14->visibility);
              if (var_10 == 0) {
                return 0;
              }
              uVar15 = (type_21)((int)uVar15 + 1);
              var_14 = (type_8)((var_16->u).kindirect)->slot[uVar15];
            } while (var_14 != (type_8)0x0);
          }
          UNRECOVERED_JUMPTABLE_02 = fns->end_struct_type;
          goto LAB_0012bfcc;
        case var_18:
        case DEBUG_KIND_UNION_CLASS:
          var_6 = (var_16->u).kclass;
          if (var_6 == (type_17 *)0x0) {
            var_15 = 0;
            var_7 = 0;
            var_17 = (type_4 *)0x0;
          }
          else {
            var_7 = var_6->id;
            if (info->base_id < var_7) {
              var_15 = info->mark;
              if (var_15 == var_6->mark) {
LAB_0012c3b8:
                UNRECOVERED_JUMPTABLE = fns->tag_type;
                goto LAB_0012c3c5;
              }
            }
            else {
              var_10 = var_9(info,(char *)tag,var_16);
              if (var_10 == 0) {
                return 0;
              }
              var_6 = (var_16->u).kclass;
              var_15 = info->mark;
              var_7 = var_6->id;
              if (var_15 == var_6->mark) {
                if (var_7 <= info->base_id) {
                    /* WARNING: Subroutine does not return */
                  var_11("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,
                                "debug_write_class_type");
                }
                var_1 = var_16->kind;
                goto LAB_0012c3b8;
              }
            }
            var_6->mark = var_15;
            var_17 = var_6->vptrbase;
            if ((var_16 == var_17) || (var_17 == (type_4 *)0x0)) {
              var_15 = (type_18)(var_17 != (type_4 *)0x0);
              var_1 = var_16->kind;
            }
            else {
              var_10 = function_1(info,fns,fhandle,var_17,(type_5 *)0x0);
              if (var_10 == 0) {
                return 0;
              }
              var_1 = var_16->kind;
              var_15 = 1;
            }
          }
          var_10 = (*fns->start_class_type)
                            (fhandle,(char *)tag,var_7,(type_18)(var_1 == var_18),
                             var_16->size,var_15,(type_18)(var_16 == var_17));
          if (var_10 == 0) {
            return 0;
          }
          var_6 = (var_16->u).kclass;
          if (var_6 != (type_17 *)0x0) {
            if ((var_6->fields != (type_8 *)0x0) &&
               (var_14 = *var_6->fields, var_14 != (type_8)0x0)) {
              uVar15 = 0;
              do {
                var_10 = function_1(info,fns,fhandle,var_14->var_16,(type_5 *)0x0);
                if (var_10 == 0) {
                  return 0;
                }
                if (var_14->static_member == 0) {
                  var_19 = (*fns->struct_field)
                                     (fhandle,var_14->var_3,(type_21)(var_14->u).f.bitpos,
                                      (type_21)(var_14->u).f.bitsize,var_14->visibility);
                }
                else {
                  var_19 = (*fns->class_static_member)
                                     (fhandle,var_14->var_3,(char *)var_14->u,var_14->visibility);
                }
                if (var_19 == 0) {
                  return 0;
                }
                var_6 = (var_16->u).kclass;
                uVar15 = (type_21)((int)uVar15 + 1);
                var_14 = var_6->fields[uVar15];
              } while (var_14 != (type_8)0x0);
            }
            if ((var_6->baseclasses != (type_25 *)0x0) &&
               (var_20 = *var_6->baseclasses, var_20 != (type_25)0x0)) {
              uVar15 = 0;
              do {
                var_10 = function_1(info,fns,fhandle,var_20->var_16,(type_5 *)0x0);
                if (var_10 == 0) {
                  return 0;
                }
                var_10 = (*fns->class_baseclass)
                                  (fhandle,(type_21)var_20->bitpos,var_20->is_virtual,
                                   var_20->visibility);
                if (var_10 == 0) {
                  return 0;
                }
                var_6 = (var_16->u).kclass;
                uVar15 = (type_21)((int)uVar15 + 1);
                var_20 = var_6->baseclasses[uVar15];
              } while (var_20 != (type_25)0x0);
            }
            if ((var_6->methods != (type_26 *)0x0) &&
               (var_21 = *var_6->methods, var_21 != (type_26)0x0)) {
              var_23 = 0;
              do {
                var_10 = (*fns->class_start_method)(fhandle,var_21->var_3);
                if (var_10 == 0) {
                  return 0;
                }
                uVar15 = 0;
                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_16,(type_5 *)0x0);
                  if (var_10 == 0) {
                    return 0;
                  }
                  if (var_22->voffset == 0xffffffffffffffff) {
                    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_18)(var_22->context != (type_4 *)0x0));
                  }
                  if (var_19 == 0) {
                    return 0;
                  }
                  uVar15 = (type_21)((int)uVar15 + 1);
                  var_22 = var_21->variants[uVar15];
                }
                var_10 = (*fns->class_end_method)(fhandle);
                if (var_10 == 0) {
                  return 0;
                }
                var_23 = var_23 + 1;
                var_21 = ((var_16->u).kclass)->methods[var_23];
              } while (var_21 != (type_26)0x0);
            }
          }
          UNRECOVERED_JUMPTABLE_02 = fns->end_class_type;
          goto LAB_0012bfcc;
        case DEBUG_KIND_ENUM:
          var_24 = (var_16->u).kenum;
          pbVar14 = (type_20 *)0x0;
          ppcVar16 = (char **)0x0;
          if (var_24 != (type_7 *)0x0) {
            pbVar14 = var_24->values;
            ppcVar16 = var_24->names;
          }
                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          var_10 = (*fns->enum_type)(fhandle,(char *)tag,ppcVar16,pbVar14);
          return var_10;
        case DEBUG_KIND_POINTER:
          var_10 = function_1(info,fns,fhandle,(var_16->u).kpointer,(type_5 *)0x0);
          if (var_10 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_02 = fns->pointer_type;
          goto LAB_0012bfcc;
        case DEBUG_KIND_FUNCTION:
          var_10 = function_1(info,fns,fhandle,((var_16->u).kfunction)->return_type,
                                   (type_5 *)0x0);
          if (var_10 == 0) {
            return 0;
          }
          pdVar8 = (var_16->u).kfunction;
          if (pdVar8->arg_types == (type_27 *)0x0) {
            var_7 = 0xffffffff;
          }
          else {
            var_17 = *pdVar8->arg_types;
            if (var_17 == (type_4 *)0x0) {
              var_7 = 0;
            }
            else {
              var_25 = 0;
              do {
                var_10 = function_1(info,fns,fhandle,var_17,(type_5 *)0x0);
                if (var_10 == 0) {
                  return 0;
                }
                pdVar8 = (var_16->u).kfunction;
                var_7 = (int)var_25 + 1;
                var_25 = var_25 + 1;
                var_17 = pdVar8->arg_types[var_25];
              } while (var_17 != (type_4 *)0x0);
            }
          }
          var_10 = pdVar8->varargs;
          UNRECOVERED_JUMPTABLE_01 =
               (type_15 *)fns->function_type;
LAB_0012c31a:
                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          var_10 = (*UNRECOVERED_JUMPTABLE_01)(fhandle,var_7,var_10);
          return var_10;
        case DEBUG_KIND_REFERENCE:
          var_10 = function_1(info,fns,fhandle,(var_16->u).kpointer,(type_5 *)0x0);
          if (var_10 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_02 = fns->reference_type;
          goto LAB_0012bfcc;
        case DEBUG_KIND_RANGE:
          var_10 = function_1(info,fns,fhandle,((var_16->u).kfunction)->return_type,
                                   (type_5 *)0x0);
          if (var_10 == 0) {
            return 0;
          }
                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          var_10 = (*fns->range_type)(fhandle,((var_16->u).krange)->lower,((var_16->u).krange)->upper);
          return var_10;
        case DEBUG_KIND_ARRAY:
          var_10 = function_1(info,fns,fhandle,((var_16->u).kfunction)->return_type,
                                   (type_5 *)0x0);
          if (var_10 == 0) {
            return 0;
          }
          var_10 = function_1(info,fns,fhandle,((var_16->u).kpointer)->pointer,(type_5 *)0x0)
          ;
          if (var_10 == 0) {
            return 0;
          }
          pdVar2 = (var_16->u).karray;
                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          var_10 = (*fns->array_type)(fhandle,pdVar2->lower,pdVar2->upper,pdVar2->stringp);
          return var_10;
        case DEBUG_KIND_SET:
          var_10 = function_1(info,fns,fhandle,((var_16->u).kfunction)->return_type,
                                   (type_5 *)0x0);
          if (var_10 == 0) {
            return 0;
          }
          var_7 = ((var_16->u).kclass)->mark;
          UNRECOVERED_JUMPTABLE_00 = (type_14 *)fns->set_type;
          break;
        case DEBUG_KIND_OFFSET:
          var_10 = function_1(info,fns,fhandle,((var_16->u).kfunction)->return_type,
                                   (type_5 *)0x0);
          if (var_10 == 0) {
            return 0;
          }
          var_10 = function_1(info,fns,fhandle,((var_16->u).kpointer)->pointer,(type_5 *)0x0)
          ;
          if (var_10 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_02 = fns->offset_type;
          goto LAB_0012bfcc;
        case DEBUG_KIND_METHOD:
          var_10 = function_1(info,fns,fhandle,((var_16->u).kfunction)->return_type,
                                   (type_5 *)0x0);
          if (var_10 == 0) {
            return 0;
          }
          pdVar7 = (var_16->u).kmethod;
          if (pdVar7->arg_types == (type_27 *)0x0) {
            var_19 = -1;
          }
          else {
            var_17 = *pdVar7->arg_types;
            if (var_17 == (type_4 *)0x0) {
              var_19 = 0;
            }
            else {
              var_25 = 0;
              do {
                var_10 = function_1(info,fns,fhandle,var_17,(type_5 *)0x0);
                if (var_10 == 0) {
                  return 0;
                }
                pdVar7 = (var_16->u).kmethod;
                var_19 = (int)var_25 + 1;
                var_25 = var_25 + 1;
                var_17 = pdVar7->arg_types[var_25];
              } while (var_17 != (type_4 *)0x0);
            }
          }
          var_17 = pdVar7->domain_type;
          if (var_17 != (type_4 *)0x0) {
            var_10 = function_1(info,fns,fhandle,var_17,(type_5 *)0x0);
            if (var_10 == 0) {
              return 0;
            }
            pdVar7 = (var_16->u).kmethod;
            var_17 = pdVar7->domain_type;
          }
                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          var_10 = (*fns->method_type)(fhandle,(type_18)(var_17 != (type_4 *)0x0),var_19,
                                      pdVar7->varargs);
          return var_10;
        case DEBUG_KIND_CONST:
          var_10 = function_1(info,fns,fhandle,(var_16->u).kpointer,(type_5 *)0x0);
          if (var_10 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_02 = fns->const_type;
          goto LAB_0012bfcc;
        case DEBUG_KIND_VOLATILE:
          var_10 = function_1(info,fns,fhandle,(var_16->u).kpointer,(type_5 *)0x0);
          if (var_10 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_02 = fns->volatile_type;
          goto LAB_0012bfcc;
        case var_2:
          goto switchD_0012bc67_caseD_16;
        case var_27:
switchD_0012bc67_caseD_17:
          pdVar18 = (var_16->u).knamed;
          var_3 = pdVar18->var_3;
          goto LAB_0012bc96;
        default:
                    /* WARNING: Subroutine does not return */
          var_26();
        }
                    /* WARNING: Could not recover jumptable at 0x0012c2e8. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        var_10 = (*UNRECOVERED_JUMPTABLE_00)(fhandle,var_7);
        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");
          }
          tag = (type_22)var_3->var_3;
          goto LAB_0012bc55;
        }
        goto switchD_0012bc67_caseD_17;
      }
switchD_0012bc67_caseD_16:
      var_3 = (type_5 *)0x0;
    }
    pdVar18 = (var_16->u).knamed;
    var_30 = pdVar18->var_3;
    if (var_30->mark == info->mark) {
      if (var_1 == var_2) {
                    /* WARNING: Could not recover jumptable at 0x0012c67f. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        var_10 = (*fns->typedef_type)(fhandle,var_30->var_3);
        return var_10;
      }
LAB_0012c43d:
      var_17 = var_29(info,var_16,(type_28 *)0x0);
      if (var_17 != (type_4 *)0x0) {
        var_1 = var_17->kind;
        tag = (type_22)((var_16->u).knamed)->var_3->var_3;
        if ((var_1 - var_12 < 4) && ((var_17->u).kclass != (type_17 *)0x0)) {
          var_7 = ((var_17->u).kclass)->id;
          if (var_7 <= info->base_id) {
            var_10 = var_9(info,(char *)tag,var_17);
            if (var_10 == 0) {
              return 0;
            }
            var_1 = var_17->kind;
            var_7 = ((var_17->u).kclass)->id;
            tag = ((var_16->u).kfunction)->return_type->pointer;
          }
        }
        else {
          var_7 = 0;
        }
        UNRECOVERED_JUMPTABLE = fns->tag_type;
        goto LAB_0012c3c5;
      }
      goto LAB_0012bff3;
    }
    if (var_1 != var_27) goto LAB_0012bc2b;
    if (var_30 != var_3) goto LAB_0012c43d;
    var_3->mark = info->mark;
LAB_0012bc96:
    var_16 = pdVar18->var_16;
  } while( true );
switchD_0012bc67_caseD_1:
  var_16 = *((var_16->u).kindirect)->slot;
  if (var_16 == (type_27)0x0) {
LAB_0012bff3:
    UNRECOVERED_JUMPTABLE_02 = fns->empty_type;
LAB_0012bfcc:
                    /* WARNING: Could not recover jumptable at 0x0012bfdd. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    var_10 = (*UNRECOVERED_JUMPTABLE_02)(fhandle);
    return var_10;
  }
  goto LAB_0012bc21;
}


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

undefined8 MASKED(long param_1,long param_2,undefined8 param_3,int *param_4,long param_5)

{
  int iVar1;
  int iVar2;
  long lVar3;
  code *UNRECOVERED_JUMPTABLE_00;
  undefined8 uVar4;
  int *piVar5;
  long *plVar6;
  long lVar7;
  undefined8 uVar8;
  ulong uVar9;
  undefined4 uVar10;
  undefined8 uVar11;
  uint uVar12;
  long lVar13;
  undefined8 *puVar14;
  bool bVar15;
  undefined8 *local_48;
  uint local_3c;
  
LAB_0012bc21:
  do {
    for (; iVar2 = *param_4, 1 < iVar2 - 0x16U; param_4 = *(int **)(*(long *)(param_4 + 4) + 8)) {
LAB_0012bc2b:
      if (param_5 == 0) {
        uVar4 = 0;
LAB_0012bc55:
        switch(iVar2) {
        case 0:
          uVar4 = dcgettext(0,"debug_write_type: illegal type encountered",5);
          fprintf(stderr,"%s\n",uVar4);
          return 0;
        case 1:
          goto switchD_0012bc67_caseD_1;
        case 2:
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x18);
          goto LAB_0012bfcc;
        case 3:
          iVar1 = param_4[4];
          iVar2 = param_4[1];
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x20);
          goto LAB_0012c31a;
        case 4:
          iVar2 = param_4[1];
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x28);
          break;
        case 5:
          iVar2 = param_4[1];
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x30);
          break;
        case 6:
          iVar2 = param_4[1];
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x38);
          break;
        case 7:
        case 8:
          lVar3 = *(long *)(param_4 + 4);
          if (lVar3 == 0) {
            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);
            iVar1 = param_4[1];
            uVar10 = 0;
          }
          else {
            uVar12 = *(uint *)(lVar3 + 0xc);
            if (*(uint *)(param_1 + 0x38) < uVar12) {
              iVar2 = *(int *)(param_1 + 0x30);
              if (*(int *)(lVar3 + 8) == iVar2) {
LAB_0012c414:
                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);
                iVar2 = *param_4;
LAB_0012c3c5:
                    /* WARNING: Could not recover jumptable at 0x0012c3d6. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar12,iVar2);
                return uVar4;
              }
            }
            else {
              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);
              if (iVar2 == 0) {
                return 0;
              }
              lVar3 = *(long *)(param_4 + 4);
              iVar2 = *(int *)(param_1 + 0x30);
              if (iVar2 == *(int *)(lVar3 + 8)) {
                uVar12 = *(uint *)(lVar3 + 0xc);
                if (uVar12 <= *(uint *)(param_1 + 0x38)) {
                    /* WARNING: Subroutine does not return */
                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0x9d1,
                                "debug_write_type");
                }
                goto LAB_0012c414;
              }
            }
            UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x98);
            iVar1 = param_4[1];
            *(int *)(lVar3 + 8) = iVar2;
            uVar10 = *(undefined4 *)(lVar3 + 0xc);
            iVar2 = *param_4;
          }
          iVar2 = (*UNRECOVERED_JUMPTABLE_00)(param_3,uVar4,uVar10,iVar2 == 7,iVar1);
          if (iVar2 == 0) {
            return 0;
          }
          if (((*(long **)(param_4 + 4) != (long *)0x0) &&
              (plVar6 = (long *)**(long **)(param_4 + 4), plVar6 != (long *)0x0)) &&
             (puVar14 = (undefined8 *)*plVar6, puVar14 != (undefined8 *)0x0)) {
            uVar9 = 0;
            do {
              iVar2 = MASKED(param_1,param_2,param_3,puVar14[1],0);
              if (iVar2 == 0) {
                return 0;
              }
              iVar2 = (**(code **)(param_2 + 0xa0))
                                (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),
                                 *(undefined4 *)((long)puVar14 + 0x1c));
              if (iVar2 == 0) {
                return 0;
              }
              uVar9 = (ulong)((int)uVar9 + 1);
              puVar14 = *(undefined8 **)(**(long **)(param_4 + 4) + uVar9 * 8);
            } while (puVar14 != (undefined8 *)0x0);
          }
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xa8);
          goto LAB_0012bfcc;
        case 9:
        case 10:
          lVar3 = *(long *)(param_4 + 4);
          if (lVar3 == 0) {
            bVar15 = false;
            uVar12 = 0;
            piVar5 = (int *)0x0;
          }
          else {
            uVar12 = *(uint *)(lVar3 + 0xc);
            if (*(uint *)(param_1 + 0x38) < uVar12) {
              iVar1 = *(int *)(param_1 + 0x30);
              if (iVar1 == *(int *)(lVar3 + 8)) {
LAB_0012c3b8:
                UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);
                goto LAB_0012c3c5;
              }
            }
            else {
              iVar2 = FUN_0012bae0(param_1,uVar4,param_4);
              if (iVar2 == 0) {
                return 0;
              }
              lVar3 = *(long *)(param_4 + 4);
              iVar1 = *(int *)(param_1 + 0x30);
              uVar12 = *(uint *)(lVar3 + 0xc);
              if (iVar1 == *(int *)(lVar3 + 8)) {
                if (uVar12 <= *(uint *)(param_1 + 0x38)) {
                    /* WARNING: Subroutine does not return */
                  __assert_fail("type->u.kclass->id > info->base_id","../../binutils/debug.c",0xa7d,
                                "debug_write_class_type");
                }
                iVar2 = *param_4;
                goto LAB_0012c3b8;
              }
            }
            *(int *)(lVar3 + 8) = iVar1;
            piVar5 = *(int **)(lVar3 + 0x20);
            bVar15 = piVar5 != (int *)0x0;
            if ((param_4 == piVar5) || (!bVar15)) {
              iVar2 = *param_4;
            }
            else {
              iVar2 = MASKED(param_1,param_2,param_3,piVar5,0);
              if (iVar2 == 0) {
                return 0;
              }
              iVar2 = *param_4;
              bVar15 = true;
            }
          }
          iVar2 = (**(code **)(param_2 + 0xb0))
                            (param_3,uVar4,uVar12,iVar2 == 9,param_4[1],bVar15,param_4 == piVar5);
          if (iVar2 == 0) {
            return 0;
          }
          plVar6 = *(long **)(param_4 + 4);
          if (plVar6 != (long *)0x0) {
            if (((long *)*plVar6 != (long *)0x0) &&
               (puVar14 = *(undefined8 **)*plVar6, puVar14 != (undefined8 *)0x0)) {
              uVar9 = 0;
              do {
                iVar2 = MASKED(param_1,param_2,param_3,puVar14[1],0);
                if (iVar2 == 0) {
                  return 0;
                }
                if (*(int *)((long)puVar14 + 0x14) == 0) {
                  iVar2 = (**(code **)(param_2 + 0xa0))
                                    (param_3,*puVar14,*(undefined4 *)(puVar14 + 3),
                                     *(undefined4 *)((long)puVar14 + 0x1c));
                }
                else {
                  iVar2 = (**(code **)(param_2 + 0xb8))
                                    (param_3,*puVar14,puVar14[3],*(undefined4 *)(puVar14 + 2));
                }
                if (iVar2 == 0) {
                  return 0;
                }
                plVar6 = *(long **)(param_4 + 4);
                uVar9 = (ulong)((int)uVar9 + 1);
                puVar14 = *(undefined8 **)(*plVar6 + uVar9 * 8);
              } while (puVar14 != (undefined8 *)0x0);
            }
            if (((long *)plVar6[2] != (long *)0x0) &&
               (puVar14 = *(undefined8 **)plVar6[2], puVar14 != (undefined8 *)0x0)) {
              uVar9 = 0;
              do {
                iVar2 = MASKED(param_1,param_2,param_3,*puVar14,0);
                if (iVar2 == 0) {
                  return 0;
                }
                iVar2 = (**(code **)(param_2 + 0xc0))
                                  (param_3,*(undefined4 *)(puVar14 + 1),
                                   *(undefined4 *)((long)puVar14 + 0xc),*(undefined4 *)(puVar14 + 2)
                                  );
                if (iVar2 == 0) {
                  return 0;
                }
                plVar6 = *(long **)(param_4 + 4);
                uVar9 = (ulong)((int)uVar9 + 1);
                puVar14 = *(undefined8 **)(plVar6[2] + uVar9 * 8);
              } while (puVar14 != (undefined8 *)0x0);
            }
            if (((long *)plVar6[3] != (long *)0x0) &&
               (local_48 = *(undefined8 **)plVar6[3], local_48 != (undefined8 *)0x0)) {
              local_3c = 0;
              do {
                iVar2 = (**(code **)(param_2 + 200))(param_3,*local_48);
                if (iVar2 == 0) {
                  return 0;
                }
                uVar9 = 0;
                puVar14 = *(undefined8 **)local_48[1];
                while (puVar14 != (undefined8 *)0x0) {
                  if ((puVar14[5] != 0) &&
                     (iVar2 = MASKED(param_1,param_2,param_3,puVar14[5],0), iVar2 == 0)) {
                    return 0;
                  }
                  iVar2 = MASKED(param_1,param_2,param_3,puVar14[1],0);
                  if (iVar2 == 0) {
                    return 0;
                  }
                  if (puVar14[4] == -1) {
                    iVar2 = (**(code **)(param_2 + 0xd8))(param_3);
                  }
                  else {
                    iVar2 = (**(code **)(param_2 + 0xd0))
                                      (param_3,*puVar14,*(undefined4 *)(puVar14 + 2),
                                       *(undefined4 *)((long)puVar14 + 0x14),
                                       *(undefined4 *)(puVar14 + 3),puVar14[4],puVar14[5] != 0);
                  }
                  if (iVar2 == 0) {
                    return 0;
                  }
                  uVar9 = (ulong)((int)uVar9 + 1);
                  puVar14 = *(undefined8 **)(local_48[1] + uVar9 * 8);
                }
                iVar2 = (**(code **)(param_2 + 0xe0))(param_3);
                if (iVar2 == 0) {
                  return 0;
                }
                local_3c = local_3c + 1;
                local_48 = *(undefined8 **)
                            (*(long *)(*(long *)(param_4 + 4) + 0x18) + (ulong)local_3c * 8);
              } while (local_48 != (undefined8 *)0x0);
            }
          }
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xe8);
          goto LAB_0012bfcc;
        case 0xb:
          puVar14 = *(undefined8 **)(param_4 + 4);
          uVar8 = 0;
          uVar11 = 0;
          if (puVar14 != (undefined8 *)0x0) {
            uVar8 = puVar14[1];
            uVar11 = *puVar14;
          }
                    /* WARNING: Could not recover jumptable at 0x0012c094. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          uVar4 = (**(code **)(param_2 + 0x40))
                            (param_3,uVar4,uVar11,uVar8,*(code **)(param_2 + 0x40));
          return uVar4;
        case 0xc:
          iVar2 = MASKED(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);
          if (iVar2 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x48);
          goto LAB_0012bfcc;
        case 0xd:
          iVar2 = MASKED(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);
          if (iVar2 == 0) {
            return 0;
          }
          lVar3 = *(long *)(param_4 + 4);
          if (*(long **)(lVar3 + 8) == (long *)0x0) {
            iVar2 = -1;
          }
          else {
            lVar7 = **(long **)(lVar3 + 8);
            if (lVar7 == 0) {
              iVar2 = 0;
            }
            else {
              lVar13 = 0;
              do {
                iVar2 = MASKED(param_1,param_2,param_3,lVar7,0);
                if (iVar2 == 0) {
                  return 0;
                }
                lVar3 = *(long *)(param_4 + 4);
                iVar2 = (int)lVar13 + 1;
                lVar13 = lVar13 + 1;
                lVar7 = *(long *)(*(long *)(lVar3 + 8) + lVar13 * 8);
              } while (lVar7 != 0);
            }
          }
          iVar1 = *(int *)(lVar3 + 0x10);
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x50);
LAB_0012c31a:
                    /* WARNING: Could not recover jumptable at 0x0012c32b. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2,iVar1);
          return uVar4;
        case 0xe:
          iVar2 = MASKED(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);
          if (iVar2 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x58);
          goto LAB_0012bfcc;
        case 0xf:
          iVar2 = MASKED(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);
          if (iVar2 == 0) {
            return 0;
          }
                    /* WARNING: Could not recover jumptable at 0x0012bef1. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          uVar4 = (**(code **)(param_2 + 0x60))
                            (param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),
                             *(undefined8 *)(*(long *)(param_4 + 4) + 0x10));
          return uVar4;
        case 0x10:
          iVar2 = MASKED(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);
          if (iVar2 == 0) {
            return 0;
          }
          iVar2 = MASKED(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0
                              );
          if (iVar2 == 0) {
            return 0;
          }
          lVar3 = *(long *)(param_4 + 4);
                    /* WARNING: Could not recover jumptable at 0x0012bea5. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          uVar4 = (**(code **)(param_2 + 0x68))
                            (param_3,*(undefined8 *)(lVar3 + 0x10),*(undefined8 *)(lVar3 + 0x18),
                             *(undefined4 *)(lVar3 + 0x20));
          return uVar4;
        case 0x11:
          iVar2 = MASKED(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);
          if (iVar2 == 0) {
            return 0;
          }
          iVar2 = *(int *)(*(long *)(param_4 + 4) + 8);
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x70);
          break;
        case 0x12:
          iVar2 = MASKED(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);
          if (iVar2 == 0) {
            return 0;
          }
          iVar2 = MASKED(param_1,param_2,param_3,*(undefined8 *)(*(long *)(param_4 + 4) + 8),0
                              );
          if (iVar2 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x78);
          goto LAB_0012bfcc;
        case 0x13:
          iVar2 = MASKED(param_1,param_2,param_3,**(undefined8 **)(param_4 + 4),0);
          if (iVar2 == 0) {
            return 0;
          }
          lVar3 = *(long *)(param_4 + 4);
          if (*(long **)(lVar3 + 0x10) == (long *)0x0) {
            iVar2 = -1;
          }
          else {
            lVar7 = **(long **)(lVar3 + 0x10);
            if (lVar7 == 0) {
              iVar2 = 0;
            }
            else {
              lVar13 = 0;
              do {
                iVar2 = MASKED(param_1,param_2,param_3,lVar7,0);
                if (iVar2 == 0) {
                  return 0;
                }
                lVar3 = *(long *)(param_4 + 4);
                iVar2 = (int)lVar13 + 1;
                lVar13 = lVar13 + 1;
                lVar7 = *(long *)(*(long *)(lVar3 + 0x10) + lVar13 * 8);
              } while (lVar7 != 0);
            }
          }
          lVar7 = *(long *)(lVar3 + 8);
          if (lVar7 != 0) {
            iVar1 = MASKED(param_1,param_2,param_3,lVar7,0);
            if (iVar1 == 0) {
              return 0;
            }
            lVar3 = *(long *)(param_4 + 4);
            lVar7 = *(long *)(lVar3 + 8);
          }
                    /* WARNING: Could not recover jumptable at 0x0012bdb6. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          uVar4 = (**(code **)(param_2 + 0x80))
                            (param_3,lVar7 != 0,iVar2,*(undefined4 *)(lVar3 + 0x18));
          return uVar4;
        case 0x14:
          iVar2 = MASKED(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);
          if (iVar2 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x88);
          goto LAB_0012bfcc;
        case 0x15:
          iVar2 = MASKED(param_1,param_2,param_3,*(undefined8 *)(param_4 + 4),0);
          if (iVar2 == 0) {
            return 0;
          }
          UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x90);
          goto LAB_0012bfcc;
        case 0x16:
          goto switchD_0012bc67_caseD_16;
        case 0x17:
switchD_0012bc67_caseD_17:
          plVar6 = *(long **)(param_4 + 4);
          param_5 = *plVar6;
          goto LAB_0012bc96;
        default:
                    /* WARNING: Subroutine does not return */
          abort();
        }
                    /* WARNING: Could not recover jumptable at 0x0012c2e8. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3,iVar2);
        return uVar4;
      }
      *(undefined4 *)(param_5 + 0x10) = *(undefined4 *)(param_1 + 0x30);
      if (iVar2 != 0x16) {
        if (iVar2 != 0x17) {
          if (*(int *)(param_5 + 0x14) != 1) {
                    /* WARNING: Subroutine does not return */
            __assert_fail("name->kind == DEBUG_OBJECT_TAG","../../binutils/debug.c",0x9aa,
                          "debug_write_type");
          }
          uVar4 = *(undefined8 *)(param_5 + 8);
          goto LAB_0012bc55;
        }
        goto switchD_0012bc67_caseD_17;
      }
switchD_0012bc67_caseD_16:
      param_5 = 0;
    }
    plVar6 = *(long **)(param_4 + 4);
    lVar3 = *plVar6;
    if (*(int *)(lVar3 + 0x10) == *(int *)(param_1 + 0x30)) {
      if (iVar2 == 0x16) {
                    /* WARNING: Could not recover jumptable at 0x0012c67f. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        uVar4 = (**(code **)(param_2 + 0xf0))(param_3,*(undefined8 *)(lVar3 + 8));
        return uVar4;
      }
LAB_0012c43d:
      piVar5 = (int *)FUN_0012b0d0(param_1,param_4,0);
      if (piVar5 != (int *)0x0) {
        iVar2 = *piVar5;
        uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);
        if ((iVar2 - 7U < 4) && (*(long *)(piVar5 + 4) != 0)) {
          uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);
          if (uVar12 <= *(uint *)(param_1 + 0x38)) {
            iVar2 = FUN_0012bae0(param_1,uVar4,piVar5);
            if (iVar2 == 0) {
              return 0;
            }
            iVar2 = *piVar5;
            uVar12 = *(uint *)(*(long *)(piVar5 + 4) + 0xc);
            uVar4 = *(undefined8 *)(**(long **)(param_4 + 4) + 8);
          }
        }
        else {
          uVar12 = 0;
        }
        UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0xf8);
        goto LAB_0012c3c5;
      }
      goto LAB_0012bff3;
    }
    if (iVar2 != 0x17) goto LAB_0012bc2b;
    if (lVar3 != param_5) goto LAB_0012c43d;
    *(int *)(param_5 + 0x10) = *(int *)(param_1 + 0x30);
LAB_0012bc96:
    param_4 = (int *)plVar6[1];
  } while( true );
switchD_0012bc67_caseD_1:
  param_4 = *(int **)**(undefined8 **)(param_4 + 4);
  if (param_4 == (int *)0x0) {
LAB_0012bff3:
    UNRECOVERED_JUMPTABLE_00 = *(code **)(param_2 + 0x10);
LAB_0012bfcc:
                    /* WARNING: Could not recover jumptable at 0x0012bfdd. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    uVar4 = (*UNRECOVERED_JUMPTABLE_00)(param_3);
    return uVar4;
  }
  goto LAB_0012bc21;
}

