
/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */

bfd_boolean __regparm3 debug_type_samep(debug_handle *info,debug_type_s *t1,debug_type_s *t2)

{
  anon_union_4_15_2f2e1a09_for_u *paVar1;
  anon_union_4_15_2f2e1a09_for_u *paVar2;
  debug_type_kind dVar3;
  debug_type_kind dVar4;
  debug_type_compare_list *pdVar5;
  debug_field *ppdVar6;
  debug_field *ppdVar7;
  undefined4 *puVar8;
  undefined4 *puVar9;
  char *__s2;
  char *__s1;
  debug_named_type *pdVar10;
  debug_named_type *pdVar11;
  debug_baseclass *ppdVar12;
  debug_baseclass *ppdVar13;
  debug_method *ppdVar14;
  debug_method *ppdVar15;
  code *pcVar16;
  debug_type_s *pdVar17;
  debug_type_s *pdVar18;
  int iVar19;
  uint uVar20;
  debug_class_type *pdVar21;
  bfd_boolean bVar22;
  debug_name *__s1_00;
  debug_class_type *pdVar23;
  debug_name *__s2_00;
  debug_type_conflict *ppdVar24;
  debug_type *ppdVar25;
  debug_type_conflict pdVar26;
  debug_type_conflict *ppdVar27;
  debug_type *ppdVar28;
  debug_type_conflict pdVar29;
  debug_name *local_4c;
  int local_48;
  debug_name *local_44;
  debug_type_compare_list top;
  
  while (dVar3 = t1->kind, dVar3 == DEBUG_KIND_INDIRECT) {
    t1 = *((t1->u).kindirect)->slot;
    if (t1 == (debug_type_conflict)0x0) {
      return 0;
    }
  }
  while (dVar4 = t2->kind, dVar4 == DEBUG_KIND_INDIRECT) {
    t2 = *((t2->u).kindirect)->slot;
    if (t2 == (debug_type_conflict)0x0) {
      return 0;
    }
  }
  if (t1 == t2) {
    return 1;
  }
  if (dVar3 == DEBUG_KIND_NAMED) {
    if (dVar4 == DEBUG_KIND_TAGGED) {
      bVar22 = debug_type_samep(info,((t1->u).karray)->range_type,t2);
      return bVar22;
    }
  }
  else if ((dVar3 == DEBUG_KIND_TAGGED) && (dVar4 == DEBUG_KIND_NAMED)) {
    bVar22 = debug_type_samep(info,t1,((t2->u).karray)->range_type);
    return bVar22;
  }
  if (dVar3 != dVar4) {
    return 0;
  }
  if (t1->size != t2->size) {
    return 0;
  }
  if (dVar3 == DEBUG_KIND_INT) {
    return (uint)((t1->u).kindirect == (t2->u).kindirect);
  }
  if (dVar3 < DEBUG_KIND_FLOAT) {
    if (dVar3 == DEBUG_KIND_VOID) {
      return 1;
    }
  }
  else if (dVar3 < DEBUG_KIND_STRUCT) {
    return 1;
  }
  top.next = info->compare_list;
  for (pdVar5 = top.next; pdVar5 != (debug_type_compare_list *)0x0; pdVar5 = pdVar5->next) {
    if ((t1 == pdVar5->t1) && (t2 == pdVar5->t2)) {
      return 1;
    }
  }
  info->compare_list = &top;
  top.t1 = t1;
  top.t2 = t2;
  switch(dVar3) {
  case DEBUG_KIND_STRUCT:
  case DEBUG_KIND_UNION:
  case DEBUG_KIND_CLASS:
  case DEBUG_KIND_UNION_CLASS:
    pdVar23 = (t1->u).kclass;
    pdVar21 = (t2->u).kclass;
    if (pdVar23 == (debug_class_type *)0x0) {
LAB_0003c14c:
      uVar20 = (uint)(pdVar21 == (debug_class_type *)0x0);
      goto LAB_0003bc14;
    }
    if (pdVar21 != (debug_class_type *)0x0) {
      if ((info->base_id < pdVar23->id) && (pdVar23->id == pdVar21->id)) goto LAB_0003c016;
      ppdVar6 = pdVar21->fields;
      ppdVar7 = pdVar23->fields;
      if (((ppdVar7 == (debug_field *)0x0) == (ppdVar6 == (debug_field *)0x0)) &&
         ((((pdVar23->baseclasses == (debug_baseclass *)0x0) ==
            (pdVar21->baseclasses == (debug_baseclass *)0x0) &&
           ((pdVar23->methods == (debug_method *)0x0) == (pdVar21->methods == (debug_method *)0x0)))
          && ((pdVar23->vptrbase == (debug_type_conflict)0x0) ==
              (pdVar21->vptrbase == (debug_type_conflict)0x0))))) {
        local_48 = 0;
        if (ppdVar7 == (debug_field *)0x0) {
LAB_0003c02c:
          if ((pdVar23->vptrbase == (debug_type_s *)0x0) ||
             (bVar22 = debug_type_samep(info,pdVar23->vptrbase,pdVar21->vptrbase), bVar22 != 0)) {
            ppdVar12 = pdVar23->baseclasses;
            if (ppdVar12 == (debug_baseclass *)0x0) {
LAB_0003c0bd:
              ppdVar14 = pdVar23->methods;
              if (ppdVar14 != (debug_method *)0x0) {
                ppdVar15 = pdVar21->methods;
                local_4c = (debug_name *)0x0;
                while( true ) {
                  puVar8 = *(undefined4 **)((int)ppdVar14 + (int)local_4c);
                  pdVar21 = *(debug_class_type **)((int)ppdVar15 + (int)local_4c);
                  if (puVar8 == (undefined4 *)0x0) break;
                  if (pdVar21 == (debug_class_type *)0x0) goto LAB_0003bc6c;
                  if (((*(char *)*puVar8 != *(char *)pdVar21->fields) ||
                      (iVar19 = strcmp((char *)*puVar8,(char *)pdVar21->fields), iVar19 != 0)) ||
                     ((puVar8[1] == 0) != (pdVar21->mark == 0))) goto LAB_0003bc6c;
                  local_4c = (debug_name *)((int)local_4c + 4);
                  if (puVar8[1] == 0) {
                    /* WARNING: Does not return */
                    pcVar16 = (code *)invalidInstructionException();
                    (*pcVar16)();
                  }
                }
                goto LAB_0003c14c;
              }
              goto LAB_0003c016;
            }
            ppdVar13 = pdVar21->baseclasses;
            iVar19 = 0;
            while( true ) {
              puVar8 = *(undefined4 **)((int)ppdVar12 + iVar19);
              puVar9 = *(undefined4 **)((int)ppdVar13 + iVar19);
              if (puVar8 == (undefined4 *)0x0) break;
              if ((((puVar9 == (undefined4 *)0x0) || (puVar8[1] != puVar9[1])) ||
                  (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3])) goto LAB_0003bc6c;
              iVar19 = iVar19 + 4;
              bVar22 = debug_type_samep(info,(debug_type_s *)*puVar8,(debug_type_s *)*puVar9);
              if (bVar22 == 0) goto LAB_0003bc6c;
            }
            if (puVar9 == (undefined4 *)0x0) goto LAB_0003c0bd;
          }
        }
        else {
          while( true ) {
            puVar8 = *(undefined4 **)((int)ppdVar7 + local_48);
            puVar9 = *(undefined4 **)((int)ppdVar6 + local_48);
            if (puVar8 == (undefined4 *)0x0) break;
            if (puVar9 == (undefined4 *)0x0) goto LAB_0003bc6c;
            __s2 = (char *)*puVar9;
            __s1 = (char *)*puVar8;
            if (((*__s1 != *__s2) || (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3]))
            goto LAB_0003bc6c;
            if (puVar8[3] == 0) {
              if ((char *)puVar8[4] != (char *)puVar9[4]) goto LAB_0003bc6c;
              if (puVar8[5] != puVar9[5]) {
                uVar20 = 0;
                goto LAB_0003bc14;
              }
            }
            else {
              iVar19 = strcmp((char *)puVar8[4],(char *)puVar9[4]);
              if (iVar19 != 0) goto LAB_0003bc6c;
            }
            iVar19 = strcmp(__s1,__s2);
            if (iVar19 != 0) goto LAB_0003bc6c;
            pdVar17 = debug_get_real_type(info,(debug_type_conflict)puVar9[1],
                                          (debug_type_real_list *)0x0);
            pdVar18 = debug_get_real_type(info,(debug_type_conflict)puVar8[1],
                                          (debug_type_real_list *)0x0);
            bVar22 = debug_type_samep(info,pdVar18,pdVar17);
            local_48 = local_48 + 4;
            if (bVar22 == 0) goto LAB_0003bc6c;
          }
          if (puVar9 == (undefined4 *)0x0) goto LAB_0003c02c;
        }
      }
    }
    break;
  case DEBUG_KIND_ENUM:
    pdVar10 = (t1->u).knamed;
    pdVar11 = (t2->u).knamed;
    if (pdVar10 == (debug_named_type *)0x0) {
      uVar20 = (uint)(pdVar11 == (debug_named_type *)0x0);
      goto LAB_0003bc14;
    }
    if (pdVar11 != (debug_named_type *)0x0) {
      local_44 = pdVar10->name;
      local_4c = pdVar11->name;
      pdVar29 = pdVar10->type;
      pdVar26 = pdVar11->type;
      __s1_00 = local_44->next;
      __s2_00 = local_4c->next;
      if (__s1_00 == (debug_name *)0x0) {
LAB_0003c1d9:
        uVar20 = (uint)(local_4c->next == (debug_name *)0x0);
        goto LAB_0003bc14;
      }
      if ((((__s2_00 != (debug_name *)0x0) && (*(char *)&__s2_00->next == *(char *)&__s1_00->next))
          && (pdVar26->size == pdVar29->size)) && (pdVar26->kind == pdVar29->kind)) {
        while (iVar19 = strcmp((char *)__s1_00,(char *)__s2_00), iVar19 == 0) {
          local_44 = (debug_name *)&local_44->name;
          ppdVar28 = &pdVar29->pointer;
          ppdVar25 = &pdVar26->pointer;
          local_4c = (debug_name *)&local_4c->name;
          __s1_00 = *(debug_name **)local_44;
          __s2_00 = *(debug_name **)local_4c;
          if (__s1_00 == (debug_name *)0x0) goto LAB_0003c1d9;
          if (((__s2_00 == (debug_name *)0x0) ||
              (*(char *)&__s1_00->next != *(char *)&__s2_00->next)) ||
             (paVar1 = &pdVar29->u, paVar2 = &pdVar26->u, pdVar26 = (debug_type_conflict)ppdVar25,
             pdVar29 = (debug_type_conflict)ppdVar28,
             paVar1->kindirect != paVar2->kindirect || *ppdVar28 != *ppdVar25)) break;
        }
        uVar20 = 0;
        goto LAB_0003bc14;
      }
    }
    break;
  case DEBUG_KIND_POINTER:
  case DEBUG_KIND_REFERENCE:
  case DEBUG_KIND_CONST:
  case DEBUG_KIND_VOLATILE:
    uVar20 = debug_type_samep(info,(t1->u).kpointer,(t2->u).kpointer);
    goto LAB_0003bc14;
  case DEBUG_KIND_FUNCTION:
    if ((((t1->u).kfunction)->varargs == ((t2->u).kfunction)->varargs) &&
       (bVar22 = debug_type_samep(info,((t1->u).kfunction)->return_type,
                                  ((t2->u).kfunction)->return_type), bVar22 != 0)) {
      ppdVar27 = ((t1->u).kfunction)->arg_types;
      ppdVar24 = ((t2->u).kfunction)->arg_types;
      if ((ppdVar27 == (debug_type_conflict *)0x0) == (ppdVar24 == (debug_type_conflict *)0x0)) {
        if (ppdVar27 == (debug_type_conflict *)0x0) goto LAB_0003c016;
        while( true ) {
          if (*ppdVar27 == (debug_type_s *)0x0) break;
          if (*ppdVar24 == (debug_type_s *)0x0) goto LAB_0003bc6c;
          bVar22 = debug_type_samep(info,*ppdVar27,*ppdVar24);
          if (bVar22 == 0) goto LAB_0003c004;
          ppdVar27 = ppdVar27 + 1;
          ppdVar24 = ppdVar24 + 1;
        }
        goto LAB_0003c00d;
      }
    }
    break;
  case DEBUG_KIND_RANGE:
    pdVar21 = (debug_class_type *)(t1->u).kmethod;
    pdVar23 = (debug_class_type *)(t2->u).kmethod;
    if (((pdVar21->id == pdVar23->id) &&
        ((debug_type_conflict *)pdVar21->mark == (debug_type_conflict *)pdVar23->mark)) &&
       (pdVar21->methods == pdVar23->methods)) {
      if (pdVar21->baseclasses != pdVar23->baseclasses) {
        uVar20 = 0;
        goto LAB_0003bc14;
      }
LAB_0003be6e:
      pdVar17 = (debug_type_s *)pdVar23->fields;
      pdVar18 = (debug_type_s *)pdVar21->fields;
LAB_0003be48:
      bVar22 = debug_type_samep(info,pdVar18,pdVar17);
      uVar20 = (uint)(bVar22 != 0);
      goto LAB_0003bc14;
    }
    break;
  case DEBUG_KIND_ARRAY:
    pdVar21 = (t1->u).kclass;
    pdVar23 = (t2->u).kclass;
    if (((pdVar21->baseclasses == pdVar23->baseclasses) && (pdVar21->id == pdVar23->id)) &&
       ((pdVar21->vptrbase == pdVar23->vptrbase && (pdVar21->methods == pdVar23->methods)))) {
      if ((debug_type_conflict)pdVar21[1].fields != (debug_type_conflict)pdVar23[1].fields) {
        uVar20 = 0;
        goto LAB_0003bc14;
      }
      goto LAB_0003be6e;
    }
    break;
  case DEBUG_KIND_SET:
    pdVar23 = (debug_class_type *)(t2->u).kfunction;
    pdVar21 = (debug_class_type *)(t1->u).kfunction;
    if ((debug_type_conflict *)pdVar21->mark == (debug_type_conflict *)pdVar23->mark)
    goto LAB_0003be6e;
    break;
  case DEBUG_KIND_OFFSET:
    bVar22 = debug_type_samep(info,((t1->u).kfunction)->return_type,((t2->u).kfunction)->return_type
                             );
    if (bVar22 != 0) {
      pdVar17 = ((t2->u).karray)->range_type;
      pdVar18 = ((t1->u).karray)->range_type;
      goto LAB_0003be48;
    }
    break;
  case DEBUG_KIND_METHOD:
    if (((((t1->u).kmethod)->varargs == ((t2->u).kmethod)->varargs) &&
        (bVar22 = debug_type_samep(info,((t1->u).kmethod)->return_type,
                                   ((t2->u).kmethod)->return_type), bVar22 != 0)) &&
       (bVar22 = debug_type_samep(info,((t1->u).karray)->range_type,((t2->u).karray)->range_type),
       bVar22 != 0)) {
      ppdVar27 = ((t1->u).kmethod)->arg_types;
      ppdVar24 = ((t2->u).kmethod)->arg_types;
      if ((ppdVar27 == (debug_type_conflict *)0x0) == (ppdVar24 == (debug_type_conflict *)0x0)) {
        if (ppdVar27 == (debug_type_conflict *)0x0) goto LAB_0003c016;
        while( true ) {
          if (*ppdVar27 == (debug_type_s *)0x0) break;
          if (*ppdVar24 == (debug_type_s *)0x0) goto LAB_0003bc6c;
          bVar22 = debug_type_samep(info,*ppdVar27,*ppdVar24);
          if (bVar22 == 0) goto LAB_0003c004;
          ppdVar27 = ppdVar27 + 1;
          ppdVar24 = ppdVar24 + 1;
        }
        goto LAB_0003c00d;
      }
    }
    break;
  case DEBUG_KIND_NAMED:
  case DEBUG_KIND_TAGGED:
    pdVar10 = (t2->u).knamed;
    pdVar11 = (t1->u).knamed;
    iVar19 = strcmp(pdVar11->name->name,pdVar10->name->name);
    if (iVar19 == 0) {
      pdVar17 = pdVar10->type;
      pdVar18 = pdVar11->type;
      goto LAB_0003be48;
    }
    break;
  default:
                    /* WARNING: Subroutine does not return */
    abort();
  }
LAB_0003bc6c:
  uVar20 = 0;
LAB_0003bc14:
  info->compare_list = top.next;
  return uVar20;
LAB_0003c004:
  if (*ppdVar27 == (debug_type_conflict)0x0) {
LAB_0003c00d:
    if (*ppdVar24 == (debug_type_conflict)0x0) {
LAB_0003c016:
      uVar20 = 1;
      goto LAB_0003bc14;
    }
  }
  goto LAB_0003bc6c;
}



uint FUN_0003bb00(void)

{
  uint uVar1;
  int *piVar2;
  uint uVar3;
  uint *extraout_ECX;
  int unaff_EBP;
  undefined8 uVar4;
  int *local_28;
  uint *local_24;
  uint *local_20;
  
  uVar4 = FUN_0003690f();
  local_24 = (uint *)((ulonglong)uVar4 >> 0x20);
  while (uVar3 = *local_24, local_20 = extraout_ECX, uVar3 == 1) {
    local_24 = (uint *)**(int **)local_24[3];
    if (local_24 == (uint *)0x0) {
      return 0;
    }
  }
  while (uVar1 = *local_20, uVar1 == 1) {
    local_20 = (uint *)**(undefined4 **)local_20[3];
    if (local_20 == (uint *)0x0) {
      return 0;
    }
  }
  if (local_24 == local_20) {
    return 1;
  }
  if (uVar3 == 0x16) {
    if (uVar1 == 0x17) {
      uVar3 = FUN_0003c1f0();
      return uVar3;
    }
  }
  else if ((uVar3 == 0x17) && (uVar1 == 0x16)) {
    uVar3 = FUN_0003c1f0();
    return uVar3;
  }
  if (uVar3 != uVar1) {
    return 0;
  }
  if (local_24[1] != local_20[1]) {
    return 0;
  }
  if (uVar3 == 3) {
    return (uint)(local_24[3] == local_20[3]);
  }
  if (uVar3 < 4) {
    if (uVar3 == 2) {
      return 1;
    }
  }
  else if (uVar3 < 7) {
    return 1;
  }
  local_28 = *(int **)((int)uVar4 + 0x30);
  piVar2 = local_28;
  while( true ) {
    if (piVar2 == (int *)0x0) {
      *(int ***)((int)uVar4 + 0x30) = &local_28;
      if (uVar3 - 7 < 0x11) {
                    /* WARNING: Could not recover jumptable at 0x0003bc05. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()
        ;
        return uVar3;
      }
                    /* WARNING: Subroutine does not return */
      abort();
    }
    if ((local_24 == (uint *)piVar2[1]) && (local_20 == (uint *)piVar2[2])) break;
    piVar2 = (int *)*piVar2;
  }
  return 1;
}


PUSH EBP
CALL 0x0003690f
ADD EBP,0x374fa
PUSH EDI
MOV EDI,EDX
PUSH ESI
MOV ESI,EAX
PUSH EBX
MOV EBX,ECX
SUB ESP,0x3c
JMP 0x0003bb2b
MOV EAX,dword ptr [EDI + 0xc]
MOV EAX,dword ptr [EAX]
MOV EDI,dword ptr [EAX]
TEST EDI,EDI
JZ 0x0003bba8
MOV EAX,dword ptr [EDI]
CMP EAX,0x1
JZ 0x0003bb20
JMP 0x0003bb43
MOV EDX,dword ptr [EBX + 0xc]
MOV EDX,dword ptr [EDX]
MOV EBX,dword ptr [EDX]
TEST EBX,EBX
JZ 0x0003bba8
MOV EDX,dword ptr [EBX]
CMP EDX,0x1
JZ 0x0003bb38
CMP EDI,EBX
JZ 0x0003bb98
CMP EAX,0x16
JZ 0x0003bbb2
CMP EAX,0x17
JNZ 0x0003bb61
CMP EDX,0x16
JZ 0x0003bff0
CMP EAX,EDX
JNZ 0x0003bba8
MOV ECX,dword ptr [EBX + 0x4]
CMP dword ptr [EDI + 0x4],ECX
JNZ 0x0003bba8
CMP EAX,0x3
JZ 0x0003bbcf
JA 0x0003bbc8
CMP EAX,0x2
JZ 0x0003bb98
MOV ECX,dword ptr [ESI + 0x30]
TEST ECX,ECX
JZ 0x0003bbdd
MOV EDX,ECX
JMP 0x0003bb8e
MOV EDX,dword ptr [EDX]
TEST EDX,EDX
JZ 0x0003bbdd
CMP EDI,dword ptr [EDX + 0x4]
JNZ 0x0003bb88
CMP EBX,dword ptr [EDX + 0x8]
JNZ 0x0003bb88
ADD ESP,0x3c
MOV EAX,0x1
POP EBX
POP ESI
POP EDI
POP EBP
RET
XOR EAX,EAX
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP EDX,0x17
JNZ 0x0003bb61
MOV EAX,dword ptr [EDI + 0xc]
MOV ECX,EBX
MOV EDX,dword ptr [EAX + 0x4]
MOV EAX,ESI
CALL 0x0003c1f0
JMP 0x0003bbaa
CMP EAX,0x6
JA 0x0003bb79
JMP 0x0003bb98
MOV EAX,dword ptr [EBX + 0xc]
CMP dword ptr [EDI + 0xc],EAX
SETZ AL
MOVZX EAX,AL
JMP 0x0003bbaa
LEA EDX,[ESP + 0x24]
SUB EAX,0x7
MOV dword ptr [ESP + 0x28],EDI
MOV dword ptr [ESP + 0x2c],EBX
MOV dword ptr [ESP + 0x24],ECX
MOV dword ptr [ESI + 0x30],EDX
CMP EAX,0x10
JA 0x0001489a
MOV ECX,dword ptr [EBP + EAX*0x4 + 0xfffe4f14]
ADD ECX,EBP
JMP ECX
MOV EAX,dword ptr [EBX + 0xc]
MOV EDX,EDI
MOV ECX,dword ptr [EAX + 0x4]
MOV EAX,ESI
CALL 0x0003c1f0
JMP 0x0003bbaa
(translation_unit "uint FUN_0003bb00(void)\n\n{\n  uint uVar1;\n  int *piVar2;\n  uint uVar3;\n  uint *extraout_ECX;\n  int unaff_EBP;\n  undefined8 uVar4;\n  int *local_28;\n  uint *local_24;\n  uint *local_20;\n  \n  uVar4 = FUN_0003690f();\n  local_24 = (uint *)((ulonglong)uVar4 >> 0x20);\n  while (uVar3 = *local_24, local_20 = extraout_ECX, uVar3 == 1) {\n    local_24 = (uint *)**(int **)local_24[3];\n    if (local_24 == (uint *)0x0) {\n      return 0;\n    }\n  }\n  while (uVar1 = *local_20, uVar1 == 1) {\n    local_20 = (uint *)**(undefined4 **)local_20[3];\n    if (local_20 == (uint *)0x0) {\n      return 0;\n    }\n  }\n  if (local_24 == local_20) {\n    return 1;\n  }\n  if (uVar3 == 0x16) {\n    if (uVar1 == 0x17) {\n      uVar3 = FUN_0003c1f0();\n      return uVar3;\n    }\n  }\n  else if ((uVar3 == 0x17) && (uVar1 == 0x16)) {\n    uVar3 = FUN_0003c1f0();\n    return uVar3;\n  }\n  if (uVar3 != uVar1) {\n    return 0;\n  }\n  if (local_24[1] != local_20[1]) {\n    return 0;\n  }\n  if (uVar3 == 3) {\n    return (uint)(local_24[3] == local_20[3]);\n  }\n  if (uVar3 < 4) {\n    if (uVar3 == 2) {\n      return 1;\n    }\n  }\n  else if (uVar3 < 7) {\n    return 1;\n  }\n  local_28 = *(int **)((int)uVar4 + 0x30);\n  piVar2 = local_28;\n  while( true ) {\n    if (piVar2 == (int *)0x0) {\n      *(int ***)((int)uVar4 + 0x30) = &local_28;\n      if (uVar3 - 7 < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0003bc05. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()\n        ;\n        return uVar3;\n      }\n                    /* WARNING: Subroutine does not return */\n      abort();\n    }\n    if ((local_24 == (uint *)piVar2[1]) && (local_20 == (uint *)piVar2[2])) break;\n    piVar2 = (int *)*piVar2;\n  }\n  return 1;\n}\n\n" (function_definition "uint FUN_0003bb00(void)\n\n{\n  uint uVar1;\n  int *piVar2;\n  uint uVar3;\n  uint *extraout_ECX;\n  int unaff_EBP;\n  undefined8 uVar4;\n  int *local_28;\n  uint *local_24;\n  uint *local_20;\n  \n  uVar4 = FUN_0003690f();\n  local_24 = (uint *)((ulonglong)uVar4 >> 0x20);\n  while (uVar3 = *local_24, local_20 = extraout_ECX, uVar3 == 1) {\n    local_24 = (uint *)**(int **)local_24[3];\n    if (local_24 == (uint *)0x0) {\n      return 0;\n    }\n  }\n  while (uVar1 = *local_20, uVar1 == 1) {\n    local_20 = (uint *)**(undefined4 **)local_20[3];\n    if (local_20 == (uint *)0x0) {\n      return 0;\n    }\n  }\n  if (local_24 == local_20) {\n    return 1;\n  }\n  if (uVar3 == 0x16) {\n    if (uVar1 == 0x17) {\n      uVar3 = FUN_0003c1f0();\n      return uVar3;\n    }\n  }\n  else if ((uVar3 == 0x17) && (uVar1 == 0x16)) {\n    uVar3 = FUN_0003c1f0();\n    return uVar3;\n  }\n  if (uVar3 != uVar1) {\n    return 0;\n  }\n  if (local_24[1] != local_20[1]) {\n    return 0;\n  }\n  if (uVar3 == 3) {\n    return (uint)(local_24[3] == local_20[3]);\n  }\n  if (uVar3 < 4) {\n    if (uVar3 == 2) {\n      return 1;\n    }\n  }\n  else if (uVar3 < 7) {\n    return 1;\n  }\n  local_28 = *(int **)((int)uVar4 + 0x30);\n  piVar2 = local_28;\n  while( true ) {\n    if (piVar2 == (int *)0x0) {\n      *(int ***)((int)uVar4 + 0x30) = &local_28;\n      if (uVar3 - 7 < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0003bc05. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()\n        ;\n        return uVar3;\n      }\n                    /* WARNING: Subroutine does not return */\n      abort();\n    }\n    if ((local_24 == (uint *)piVar2[1]) && (local_20 == (uint *)piVar2[2])) break;\n    piVar2 = (int *)*piVar2;\n  }\n  return 1;\n}" type_identifier (function_declarator "FUN_0003bb00(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  uint uVar1;\n  int *piVar2;\n  uint uVar3;\n  uint *extraout_ECX;\n  int unaff_EBP;\n  undefined8 uVar4;\n  int *local_28;\n  uint *local_24;\n  uint *local_20;\n  \n  uVar4 = FUN_0003690f();\n  local_24 = (uint *)((ulonglong)uVar4 >> 0x20);\n  while (uVar3 = *local_24, local_20 = extraout_ECX, uVar3 == 1) {\n    local_24 = (uint *)**(int **)local_24[3];\n    if (local_24 == (uint *)0x0) {\n      return 0;\n    }\n  }\n  while (uVar1 = *local_20, uVar1 == 1) {\n    local_20 = (uint *)**(undefined4 **)local_20[3];\n    if (local_20 == (uint *)0x0) {\n      return 0;\n    }\n  }\n  if (local_24 == local_20) {\n    return 1;\n  }\n  if (uVar3 == 0x16) {\n    if (uVar1 == 0x17) {\n      uVar3 = FUN_0003c1f0();\n      return uVar3;\n    }\n  }\n  else if ((uVar3 == 0x17) && (uVar1 == 0x16)) {\n    uVar3 = FUN_0003c1f0();\n    return uVar3;\n  }\n  if (uVar3 != uVar1) {\n    return 0;\n  }\n  if (local_24[1] != local_20[1]) {\n    return 0;\n  }\n  if (uVar3 == 3) {\n    return (uint)(local_24[3] == local_20[3]);\n  }\n  if (uVar3 < 4) {\n    if (uVar3 == 2) {\n      return 1;\n    }\n  }\n  else if (uVar3 < 7) {\n    return 1;\n  }\n  local_28 = *(int **)((int)uVar4 + 0x30);\n  piVar2 = local_28;\n  while( true ) {\n    if (piVar2 == (int *)0x0) {\n      *(int ***)((int)uVar4 + 0x30) = &local_28;\n      if (uVar3 - 7 < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0003bc05. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()\n        ;\n        return uVar3;\n      }\n                    /* WARNING: Subroutine does not return */\n      abort();\n    }\n    if ((local_24 == (uint *)piVar2[1]) && (local_20 == (uint *)piVar2[2])) break;\n    piVar2 = (int *)*piVar2;\n  }\n  return 1;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint *extraout_ECX;" type_identifier (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "int *local_28;" primitive_type (pointer_declarator "*local_28" * identifier) ;) (declaration "uint *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (declaration "uint *local_20;" type_identifier (pointer_declarator "*local_20" * identifier) ;) (expression_statement "uVar4 = FUN_0003690f();" (assignment_expression "uVar4 = FUN_0003690f()" identifier = (call_expression "FUN_0003690f()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_24 = (uint *)((ulonglong)uVar4 >> 0x20);" (assignment_expression "local_24 = (uint *)((ulonglong)uVar4 >> 0x20)" identifier = (cast_expression "(uint *)((ulonglong)uVar4 >> 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar4 >> 0x20)" ( (binary_expression "(ulonglong)uVar4 >> 0x20" (cast_expression "(ulonglong)uVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (while_statement "while (uVar3 = *local_24, local_20 = extraout_ECX, uVar3 == 1) {\n    local_24 = (uint *)**(int **)local_24[3];\n    if (local_24 == (uint *)0x0) {\n      return 0;\n    }\n  }" while (parenthesized_expression "(uVar3 = *local_24, local_20 = extraout_ECX, uVar3 == 1)" ( (comma_expression "uVar3 = *local_24, local_20 = extraout_ECX, uVar3 == 1" (assignment_expression "uVar3 = *local_24" identifier = (pointer_expression "*local_24" * identifier)) , (comma_expression "local_20 = extraout_ECX, uVar3 == 1" (assignment_expression "local_20 = extraout_ECX" identifier = identifier) , (binary_expression "uVar3 == 1" identifier == number_literal))) )) (compound_statement "{\n    local_24 = (uint *)**(int **)local_24[3];\n    if (local_24 == (uint *)0x0) {\n      return 0;\n    }\n  }" { (expression_statement "local_24 = (uint *)**(int **)local_24[3];" (assignment_expression "local_24 = (uint *)**(int **)local_24[3]" identifier = (cast_expression "(uint *)**(int **)local_24[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)local_24[3]" * (pointer_expression "*(int **)local_24[3]" * (cast_expression "(int **)local_24[3]" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "local_24[3]" identifier [ number_literal ])))))) ;) (if_statement "if (local_24 == (uint *)0x0) {\n      return 0;\n    }" if (parenthesized_expression "(local_24 == (uint *)0x0)" ( (binary_expression "local_24 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) })) (while_statement "while (uVar1 = *local_20, uVar1 == 1) {\n    local_20 = (uint *)**(undefined4 **)local_20[3];\n    if (local_20 == (uint *)0x0) {\n      return 0;\n    }\n  }" while (parenthesized_expression "(uVar1 = *local_20, uVar1 == 1)" ( (comma_expression "uVar1 = *local_20, uVar1 == 1" (assignment_expression "uVar1 = *local_20" identifier = (pointer_expression "*local_20" * identifier)) , (binary_expression "uVar1 == 1" identifier == number_literal)) )) (compound_statement "{\n    local_20 = (uint *)**(undefined4 **)local_20[3];\n    if (local_20 == (uint *)0x0) {\n      return 0;\n    }\n  }" { (expression_statement "local_20 = (uint *)**(undefined4 **)local_20[3];" (assignment_expression "local_20 = (uint *)**(undefined4 **)local_20[3]" identifier = (cast_expression "(uint *)**(undefined4 **)local_20[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)local_20[3]" * (pointer_expression "*(undefined4 **)local_20[3]" * (cast_expression "(undefined4 **)local_20[3]" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "local_20[3]" identifier [ number_literal ])))))) ;) (if_statement "if (local_20 == (uint *)0x0) {\n      return 0;\n    }" if (parenthesized_expression "(local_20 == (uint *)0x0)" ( (binary_expression "local_20 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) })) (if_statement "if (local_24 == local_20) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == local_20)" ( (binary_expression "local_24 == local_20" identifier == identifier) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (uVar3 == 0x16) {\n    if (uVar1 == 0x17) {\n      uVar3 = FUN_0003c1f0();\n      return uVar3;\n    }\n  }\n  else if ((uVar3 == 0x17) && (uVar1 == 0x16)) {\n    uVar3 = FUN_0003c1f0();\n    return uVar3;\n  }" if (parenthesized_expression "(uVar3 == 0x16)" ( (binary_expression "uVar3 == 0x16" identifier == number_literal) )) (compound_statement "{\n    if (uVar1 == 0x17) {\n      uVar3 = FUN_0003c1f0();\n      return uVar3;\n    }\n  }" { (if_statement "if (uVar1 == 0x17) {\n      uVar3 = FUN_0003c1f0();\n      return uVar3;\n    }" if (parenthesized_expression "(uVar1 == 0x17)" ( (binary_expression "uVar1 == 0x17" identifier == number_literal) )) (compound_statement "{\n      uVar3 = FUN_0003c1f0();\n      return uVar3;\n    }" { (expression_statement "uVar3 = FUN_0003c1f0();" (assignment_expression "uVar3 = FUN_0003c1f0()" identifier = (call_expression "FUN_0003c1f0()" identifier (argument_list "()" ( )))) ;) (return_statement "return uVar3;" return identifier ;) })) }) (else_clause "else if ((uVar3 == 0x17) && (uVar1 == 0x16)) {\n    uVar3 = FUN_0003c1f0();\n    return uVar3;\n  }" else (if_statement "if ((uVar3 == 0x17) && (uVar1 == 0x16)) {\n    uVar3 = FUN_0003c1f0();\n    return uVar3;\n  }" if (parenthesized_expression "((uVar3 == 0x17) && (uVar1 == 0x16))" ( (binary_expression "(uVar3 == 0x17) && (uVar1 == 0x16)" (parenthesized_expression "(uVar3 == 0x17)" ( (binary_expression "uVar3 == 0x17" identifier == number_literal) )) && (parenthesized_expression "(uVar1 == 0x16)" ( (binary_expression "uVar1 == 0x16" identifier == number_literal) ))) )) (compound_statement "{\n    uVar3 = FUN_0003c1f0();\n    return uVar3;\n  }" { (expression_statement "uVar3 = FUN_0003c1f0();" (assignment_expression "uVar3 = FUN_0003c1f0()" identifier = (call_expression "FUN_0003c1f0()" identifier (argument_list "()" ( )))) ;) (return_statement "return uVar3;" return identifier ;) })))) (if_statement "if (uVar3 != uVar1) {\n    return 0;\n  }" if (parenthesized_expression "(uVar3 != uVar1)" ( (binary_expression "uVar3 != uVar1" identifier != identifier) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (local_24[1] != local_20[1]) {\n    return 0;\n  }" if (parenthesized_expression "(local_24[1] != local_20[1])" ( (binary_expression "local_24[1] != local_20[1]" (subscript_expression "local_24[1]" identifier [ number_literal ]) != (subscript_expression "local_20[1]" identifier [ number_literal ])) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (uVar3 == 3) {\n    return (uint)(local_24[3] == local_20[3]);\n  }" if (parenthesized_expression "(uVar3 == 3)" ( (binary_expression "uVar3 == 3" identifier == number_literal) )) (compound_statement "{\n    return (uint)(local_24[3] == local_20[3]);\n  }" { (return_statement "return (uint)(local_24[3] == local_20[3]);" return (call_expression "(uint)(local_24[3] == local_20[3])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_24[3] == local_20[3])" ( (binary_expression "local_24[3] == local_20[3]" (subscript_expression "local_24[3]" identifier [ number_literal ]) == (subscript_expression "local_20[3]" identifier [ number_literal ])) ))) ;) })) (if_statement "if (uVar3 < 4) {\n    if (uVar3 == 2) {\n      return 1;\n    }\n  }\n  else if (uVar3 < 7) {\n    return 1;\n  }" if (parenthesized_expression "(uVar3 < 4)" ( (binary_expression "uVar3 < 4" identifier < number_literal) )) (compound_statement "{\n    if (uVar3 == 2) {\n      return 1;\n    }\n  }" { (if_statement "if (uVar3 == 2) {\n      return 1;\n    }" if (parenthesized_expression "(uVar3 == 2)" ( (binary_expression "uVar3 == 2" identifier == number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) }) (else_clause "else if (uVar3 < 7) {\n    return 1;\n  }" else (if_statement "if (uVar3 < 7) {\n    return 1;\n  }" if (parenthesized_expression "(uVar3 < 7)" ( (binary_expression "uVar3 < 7" identifier < number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })))) (expression_statement "local_28 = *(int **)((int)uVar4 + 0x30);" (assignment_expression "local_28 = *(int **)((int)uVar4 + 0x30)" identifier = (pointer_expression "*(int **)((int)uVar4 + 0x30)" * (cast_expression "(int **)((int)uVar4 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)uVar4 + 0x30)" ( (binary_expression "(int)uVar4 + 0x30" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "piVar2 = local_28;" (assignment_expression "piVar2 = local_28" identifier = identifier) ;) (while_statement "while( true ) {\n    if (piVar2 == (int *)0x0) {\n      *(int ***)((int)uVar4 + 0x30) = &local_28;\n      if (uVar3 - 7 < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0003bc05. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()\n        ;\n        return uVar3;\n      }\n                    /* WARNING: Subroutine does not return */\n      abort();\n    }\n    if ((local_24 == (uint *)piVar2[1]) && (local_20 == (uint *)piVar2[2])) break;\n    piVar2 = (int *)*piVar2;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if (piVar2 == (int *)0x0) {\n      *(int ***)((int)uVar4 + 0x30) = &local_28;\n      if (uVar3 - 7 < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0003bc05. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()\n        ;\n        return uVar3;\n      }\n                    /* WARNING: Subroutine does not return */\n      abort();\n    }\n    if ((local_24 == (uint *)piVar2[1]) && (local_20 == (uint *)piVar2[2])) break;\n    piVar2 = (int *)*piVar2;\n  }" { (if_statement "if (piVar2 == (int *)0x0) {\n      *(int ***)((int)uVar4 + 0x30) = &local_28;\n      if (uVar3 - 7 < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0003bc05. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()\n        ;\n        return uVar3;\n      }\n                    /* WARNING: Subroutine does not return */\n      abort();\n    }" if (parenthesized_expression "(piVar2 == (int *)0x0)" ( (binary_expression "piVar2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *(int ***)((int)uVar4 + 0x30) = &local_28;\n      if (uVar3 - 7 < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0003bc05. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()\n        ;\n        return uVar3;\n      }\n                    /* WARNING: Subroutine does not return */\n      abort();\n    }" { (expression_statement "*(int ***)((int)uVar4 + 0x30) = &local_28;" (assignment_expression "*(int ***)((int)uVar4 + 0x30) = &local_28" (pointer_expression "*(int ***)((int)uVar4 + 0x30)" * (cast_expression "(int ***)((int)uVar4 + 0x30)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)uVar4 + 0x30)" ( (binary_expression "(int)uVar4 + 0x30" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_28" & identifier)) ;) (if_statement "if (uVar3 - 7 < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0003bc05. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()\n        ;\n        return uVar3;\n      }" if (parenthesized_expression "(uVar3 - 7 < 0x11)" ( (binary_expression "uVar3 - 7 < 0x11" (binary_expression "uVar3 - 7" identifier - number_literal) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0003bc05. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()\n        ;\n        return uVar3;\n      }" { comment comment (expression_statement "uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()\n        ;" (assignment_expression "uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()" identifier = (call_expression "(*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()" (parenthesized_expression "(*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))" ( (pointer_expression "*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa)" * (cast_expression "(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa)" ( (binary_expression "*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa" (binary_expression "*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP" (pointer_expression "*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4)" * (cast_expression "(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4)" ( (binary_expression "unaff_EBP + 0x1c40e + (uVar3 - 7) * 4" (binary_expression "unaff_EBP + 0x1c40e" identifier + number_literal) + (binary_expression "(uVar3 - 7) * 4" (parenthesized_expression "(uVar3 - 7)" ( (binary_expression "uVar3 - 7" identifier - number_literal) )) * number_literal)) )))) + identifier) + number_literal) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar3;" return identifier ;) })) comment (expression_statement "abort();" (call_expression "abort()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((local_24 == (uint *)piVar2[1]) && (local_20 == (uint *)piVar2[2])) break;" if (parenthesized_expression "((local_24 == (uint *)piVar2[1]) && (local_20 == (uint *)piVar2[2]))" ( (binary_expression "(local_24 == (uint *)piVar2[1]) && (local_20 == (uint *)piVar2[2])" (parenthesized_expression "(local_24 == (uint *)piVar2[1])" ( (binary_expression "local_24 == (uint *)piVar2[1]" identifier == (cast_expression "(uint *)piVar2[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar2[1]" identifier [ number_literal ]))) )) && (parenthesized_expression "(local_20 == (uint *)piVar2[2])" ( (binary_expression "local_20 == (uint *)piVar2[2]" identifier == (cast_expression "(uint *)piVar2[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar2[2]" identifier [ number_literal ]))) ))) )) (break_statement "break;" break ;)) (expression_statement "piVar2 = (int *)*piVar2;" (assignment_expression "piVar2 = (int *)*piVar2" identifier = (cast_expression "(int *)*piVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar2" * identifier))) ;) })) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */\n\nbfd_boolean __regparm3 debug_type_samep(debug_handle *info,debug_type_s *t1,debug_type_s *t2)\n\n{\n  anon_union_4_15_2f2e1a09_for_u *paVar1;\n  anon_union_4_15_2f2e1a09_for_u *paVar2;\n  debug_type_kind dVar3;\n  debug_type_kind dVar4;\n  debug_type_compare_list *pdVar5;\n  debug_field *ppdVar6;\n  debug_field *ppdVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  char *__s2;\n  char *__s1;\n  debug_named_type *pdVar10;\n  debug_named_type *pdVar11;\n  debug_baseclass *ppdVar12;\n  debug_baseclass *ppdVar13;\n  debug_method *ppdVar14;\n  debug_method *ppdVar15;\n  code *pcVar16;\n  debug_type_s *pdVar17;\n  debug_type_s *pdVar18;\n  int iVar19;\n  uint uVar20;\n  debug_class_type *pdVar21;\n  bfd_boolean bVar22;\n  debug_name *__s1_00;\n  debug_class_type *pdVar23;\n  debug_name *__s2_00;\n  debug_type_conflict *ppdVar24;\n  debug_type *ppdVar25;\n  debug_type_conflict pdVar26;\n  debug_type_conflict *ppdVar27;\n  debug_type *ppdVar28;\n  debug_type_conflict pdVar29;\n  debug_name *local_4c;\n  int local_48;\n  debug_name *local_44;\n  debug_type_compare_list top;\n  \n  while (dVar3 = t1->kind, dVar3 == DEBUG_KIND_INDIRECT) {\n    t1 = *((t1->u).kindirect)->slot;\n    if (t1 == (debug_type_conflict)0x0) {\n      return 0;\n    }\n  }\n  while (dVar4 = t2->kind, dVar4 == DEBUG_KIND_INDIRECT) {\n    t2 = *((t2->u).kindirect)->slot;\n    if (t2 == (debug_type_conflict)0x0) {\n      return 0;\n    }\n  }\n  if (t1 == t2) {\n    return 1;\n  }\n  if (dVar3 == DEBUG_KIND_NAMED) {\n    if (dVar4 == DEBUG_KIND_TAGGED) {\n      bVar22 = debug_type_samep(info,((t1->u).karray)->range_type,t2);\n      return bVar22;\n    }\n  }\n  else if ((dVar3 == DEBUG_KIND_TAGGED) && (dVar4 == DEBUG_KIND_NAMED)) {\n    bVar22 = debug_type_samep(info,t1,((t2->u).karray)->range_type);\n    return bVar22;\n  }\n  if (dVar3 != dVar4) {\n    return 0;\n  }\n  if (t1->size != t2->size) {\n    return 0;\n  }\n  if (dVar3 == DEBUG_KIND_INT) {\n    return (uint)((t1->u).kindirect == (t2->u).kindirect);\n  }\n  if (dVar3 < DEBUG_KIND_FLOAT) {\n    if (dVar3 == DEBUG_KIND_VOID) {\n      return 1;\n    }\n  }\n  else if (dVar3 < DEBUG_KIND_STRUCT) {\n    return 1;\n  }\n  top.next = info->compare_list;\n  for (pdVar5 = top.next; pdVar5 != (debug_type_compare_list *)0x0; pdVar5 = pdVar5->next) {\n    if ((t1 == pdVar5->t1) && (t2 == pdVar5->t2)) {\n      return 1;\n    }\n  }\n  info->compare_list = &top;\n  top.t1 = t1;\n  top.t2 = t2;\n  switch(dVar3) {\n  case DEBUG_KIND_STRUCT:\n  case DEBUG_KIND_UNION:\n  case DEBUG_KIND_CLASS:\n  case DEBUG_KIND_UNION_CLASS:\n    pdVar23 = (t1->u).kclass;\n    pdVar21 = (t2->u).kclass;\n    if (pdVar23 == (debug_class_type *)0x0) {\nLAB_0003c14c:\n      uVar20 = (uint)(pdVar21 == (debug_class_type *)0x0);\n      goto LAB_0003bc14;\n    }\n    if (pdVar21 != (debug_class_type *)0x0) {\n      if ((info->base_id < pdVar23->id) && (pdVar23->id == pdVar21->id)) goto LAB_0003c016;\n      ppdVar6 = pdVar21->fields;\n      ppdVar7 = pdVar23->fields;\n      if (((ppdVar7 == (debug_field *)0x0) == (ppdVar6 == (debug_field *)0x0)) &&\n         ((((pdVar23->baseclasses == (debug_baseclass *)0x0) ==\n            (pdVar21->baseclasses == (debug_baseclass *)0x0) &&\n           ((pdVar23->methods == (debug_method *)0x0) == (pdVar21->methods == (debug_method *)0x0)))\n          && ((pdVar23->vptrbase == (debug_type_conflict)0x0) ==\n              (pdVar21->vptrbase == (debug_type_conflict)0x0))))) {\n        local_48 = 0;\n        if (ppdVar7 == (debug_field *)0x0) {\nLAB_0003c02c:\n          if ((pdVar23->vptrbase == (debug_type_s *)0x0) ||\n             (bVar22 = debug_type_samep(info,pdVar23->vptrbase,pdVar21->vptrbase), bVar22 != 0)) {\n            ppdVar12 = pdVar23->baseclasses;\n            if (ppdVar12 == (debug_baseclass *)0x0) {\nLAB_0003c0bd:\n              ppdVar14 = pdVar23->methods;\n              if (ppdVar14 != (debug_method *)0x0) {\n                ppdVar15 = pdVar21->methods;\n                local_4c = (debug_name *)0x0;\n                while( true ) {\n                  puVar8 = *(undefined4 **)((int)ppdVar14 + (int)local_4c);\n                  pdVar21 = *(debug_class_type **)((int)ppdVar15 + (int)local_4c);\n                  if (puVar8 == (undefined4 *)0x0) break;\n                  if (pdVar21 == (debug_class_type *)0x0) goto LAB_0003bc6c;\n                  if (((*(char *)*puVar8 != *(char *)pdVar21->fields) ||\n                      (iVar19 = strcmp((char *)*puVar8,(char *)pdVar21->fields), iVar19 != 0)) ||\n                     ((puVar8[1] == 0) != (pdVar21->mark == 0))) goto LAB_0003bc6c;\n                  local_4c = (debug_name *)((int)local_4c + 4);\n                  if (puVar8[1] == 0) {\n                    /* WARNING: Does not return */\n                    pcVar16 = (code *)invalidInstructionException();\n                    (*pcVar16)();\n                  }\n                }\n                goto LAB_0003c14c;\n              }\n              goto LAB_0003c016;\n            }\n            ppdVar13 = pdVar21->baseclasses;\n            iVar19 = 0;\n            while( true ) {\n              puVar8 = *(undefined4 **)((int)ppdVar12 + iVar19);\n              puVar9 = *(undefined4 **)((int)ppdVar13 + iVar19);\n              if (puVar8 == (undefined4 *)0x0) break;\n              if ((((puVar9 == (undefined4 *)0x0) || (puVar8[1] != puVar9[1])) ||\n                  (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3])) goto LAB_0003bc6c;\n              iVar19 = iVar19 + 4;\n              bVar22 = debug_type_samep(info,(debug_type_s *)*puVar8,(debug_type_s *)*puVar9);\n              if (bVar22 == 0) goto LAB_0003bc6c;\n            }\n            if (puVar9 == (undefined4 *)0x0) goto LAB_0003c0bd;\n          }\n        }\n        else {\n          while( true ) {\n            puVar8 = *(undefined4 **)((int)ppdVar7 + local_48);\n            puVar9 = *(undefined4 **)((int)ppdVar6 + local_48);\n            if (puVar8 == (undefined4 *)0x0) break;\n            if (puVar9 == (undefined4 *)0x0) goto LAB_0003bc6c;\n            __s2 = (char *)*puVar9;\n            __s1 = (char *)*puVar8;\n            if (((*__s1 != *__s2) || (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3]))\n            goto LAB_0003bc6c;\n            if (puVar8[3] == 0) {\n              if ((char *)puVar8[4] != (char *)puVar9[4]) goto LAB_0003bc6c;\n              if (puVar8[5] != puVar9[5]) {\n                uVar20 = 0;\n                goto LAB_0003bc14;\n              }\n            }\n            else {\n              iVar19 = strcmp((char *)puVar8[4],(char *)puVar9[4]);\n              if (iVar19 != 0) goto LAB_0003bc6c;\n            }\n            iVar19 = strcmp(__s1,__s2);\n            if (iVar19 != 0) goto LAB_0003bc6c;\n            pdVar17 = debug_get_real_type(info,(debug_type_conflict)puVar9[1],\n                                          (debug_type_real_list *)0x0);\n            pdVar18 = debug_get_real_type(info,(debug_type_conflict)puVar8[1],\n                                          (debug_type_real_list *)0x0);\n            bVar22 = debug_type_samep(info,pdVar18,pdVar17);\n            local_48 = local_48 + 4;\n            if (bVar22 == 0) goto LAB_0003bc6c;\n          }\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0003c02c;\n        }\n      }\n    }\n    break;\n  case DEBUG_KIND_ENUM:\n    pdVar10 = (t1->u).knamed;\n    pdVar11 = (t2->u).knamed;\n    if (pdVar10 == (debug_named_type *)0x0) {\n      uVar20 = (uint)(pdVar11 == (debug_named_type *)0x0);\n      goto LAB_0003bc14;\n    }\n    if (pdVar11 != (debug_named_type *)0x0) {\n      local_44 = pdVar10->name;\n      local_4c = pdVar11->name;\n      pdVar29 = pdVar10->type;\n      pdVar26 = pdVar11->type;\n      __s1_00 = local_44->next;\n      __s2_00 = local_4c->next;\n      if (__s1_00 == (debug_name *)0x0) {\nLAB_0003c1d9:\n        uVar20 = (uint)(local_4c->next == (debug_name *)0x0);\n        goto LAB_0003bc14;\n      }\n      if ((((__s2_00 != (debug_name *)0x0) && (*(char *)&__s2_00->next == *(char *)&__s1_00->next))\n          && (pdVar26->size == pdVar29->size)) && (pdVar26->kind == pdVar29->kind)) {\n        while (iVar19 = strcmp((char *)__s1_00,(char *)__s2_00), iVar19 == 0) {\n          local_44 = (debug_name *)&local_44->name;\n          ppdVar28 = &pdVar29->pointer;\n          ppdVar25 = &pdVar26->pointer;\n          local_4c = (debug_name *)&local_4c->name;\n          __s1_00 = *(debug_name **)local_44;\n          __s2_00 = *(debug_name **)local_4c;\n          if (__s1_00 == (debug_name *)0x0) goto LAB_0003c1d9;\n          if (((__s2_00 == (debug_name *)0x0) ||\n              (*(char *)&__s1_00->next != *(char *)&__s2_00->next)) ||\n             (paVar1 = &pdVar29->u, paVar2 = &pdVar26->u, pdVar26 = (debug_type_conflict)ppdVar25,\n             pdVar29 = (debug_type_conflict)ppdVar28,\n             paVar1->kindirect != paVar2->kindirect || *ppdVar28 != *ppdVar25)) break;\n        }\n        uVar20 = 0;\n        goto LAB_0003bc14;\n      }\n    }\n    break;\n  case DEBUG_KIND_POINTER:\n  case DEBUG_KIND_REFERENCE:\n  case DEBUG_KIND_CONST:\n  case DEBUG_KIND_VOLATILE:\n    uVar20 = debug_type_samep(info,(t1->u).kpointer,(t2->u).kpointer);\n    goto LAB_0003bc14;\n  case DEBUG_KIND_FUNCTION:\n    if ((((t1->u).kfunction)->varargs == ((t2->u).kfunction)->varargs) &&\n       (bVar22 = debug_type_samep(info,((t1->u).kfunction)->return_type,\n                                  ((t2->u).kfunction)->return_type), bVar22 != 0)) {\n      ppdVar27 = ((t1->u).kfunction)->arg_types;\n      ppdVar24 = ((t2->u).kfunction)->arg_types;\n      if ((ppdVar27 == (debug_type_conflict *)0x0) == (ppdVar24 == (debug_type_conflict *)0x0)) {\n        if (ppdVar27 == (debug_type_conflict *)0x0) goto LAB_0003c016;\n        while( true ) {\n          if (*ppdVar27 == (debug_type_s *)0x0) break;\n          if (*ppdVar24 == (debug_type_s *)0x0) goto LAB_0003bc6c;\n          bVar22 = debug_type_samep(info,*ppdVar27,*ppdVar24);\n          if (bVar22 == 0) goto LAB_0003c004;\n          ppdVar27 = ppdVar27 + 1;\n          ppdVar24 = ppdVar24 + 1;\n        }\n        goto LAB_0003c00d;\n      }\n    }\n    break;\n  case DEBUG_KIND_RANGE:\n    pdVar21 = (debug_class_type *)(t1->u).kmethod;\n    pdVar23 = (debug_class_type *)(t2->u).kmethod;\n    if (((pdVar21->id == pdVar23->id) &&\n        ((debug_type_conflict *)pdVar21->mark == (debug_type_conflict *)pdVar23->mark)) &&\n       (pdVar21->methods == pdVar23->methods)) {\n      if (pdVar21->baseclasses != pdVar23->baseclasses) {\n        uVar20 = 0;\n        goto LAB_0003bc14;\n      }\nLAB_0003be6e:\n      pdVar17 = (debug_type_s *)pdVar23->fields;\n      pdVar18 = (debug_type_s *)pdVar21->fields;\nLAB_0003be48:\n      bVar22 = debug_type_samep(info,pdVar18,pdVar17);\n      uVar20 = (uint)(bVar22 != 0);\n      goto LAB_0003bc14;\n    }\n    break;\n  case DEBUG_KIND_ARRAY:\n    pdVar21 = (t1->u).kclass;\n    pdVar23 = (t2->u).kclass;\n    if (((pdVar21->baseclasses == pdVar23->baseclasses) && (pdVar21->id == pdVar23->id)) &&\n       ((pdVar21->vptrbase == pdVar23->vptrbase && (pdVar21->methods == pdVar23->methods)))) {\n      if ((debug_type_conflict)pdVar21[1].fields != (debug_type_conflict)pdVar23[1].fields) {\n        uVar20 = 0;\n        goto LAB_0003bc14;\n      }\n      goto LAB_0003be6e;\n    }\n    break;\n  case DEBUG_KIND_SET:\n    pdVar23 = (debug_class_type *)(t2->u).kfunction;\n    pdVar21 = (debug_class_type *)(t1->u).kfunction;\n    if ((debug_type_conflict *)pdVar21->mark == (debug_type_conflict *)pdVar23->mark)\n    goto LAB_0003be6e;\n    break;\n  case DEBUG_KIND_OFFSET:\n    bVar22 = debug_type_samep(info,((t1->u).kfunction)->return_type,((t2->u).kfunction)->return_type\n                             );\n    if (bVar22 != 0) {\n      pdVar17 = ((t2->u).karray)->range_type;\n      pdVar18 = ((t1->u).karray)->range_type;\n      goto LAB_0003be48;\n    }\n    break;\n  case DEBUG_KIND_METHOD:\n    if (((((t1->u).kmethod)->varargs == ((t2->u).kmethod)->varargs) &&\n        (bVar22 = debug_type_samep(info,((t1->u).kmethod)->return_type,\n                                   ((t2->u).kmethod)->return_type), bVar22 != 0)) &&\n       (bVar22 = debug_type_samep(info,((t1->u).karray)->range_type,((t2->u).karray)->range_type),\n       bVar22 != 0)) {\n      ppdVar27 = ((t1->u).kmethod)->arg_types;\n      ppdVar24 = ((t2->u).kmethod)->arg_types;\n      if ((ppdVar27 == (debug_type_conflict *)0x0) == (ppdVar24 == (debug_type_conflict *)0x0)) {\n        if (ppdVar27 == (debug_type_conflict *)0x0) goto LAB_0003c016;\n        while( true ) {\n          if (*ppdVar27 == (debug_type_s *)0x0) break;\n          if (*ppdVar24 == (debug_type_s *)0x0) goto LAB_0003bc6c;\n          bVar22 = debug_type_samep(info,*ppdVar27,*ppdVar24);\n          if (bVar22 == 0) goto LAB_0003c004;\n          ppdVar27 = ppdVar27 + 1;\n          ppdVar24 = ppdVar24 + 1;\n        }\n        goto LAB_0003c00d;\n      }\n    }\n    break;\n  case DEBUG_KIND_NAMED:\n  case DEBUG_KIND_TAGGED:\n    pdVar10 = (t2->u).knamed;\n    pdVar11 = (t1->u).knamed;\n    iVar19 = strcmp(pdVar11->name->name,pdVar10->name->name);\n    if (iVar19 == 0) {\n      pdVar17 = pdVar10->type;\n      pdVar18 = pdVar11->type;\n      goto LAB_0003be48;\n    }\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }\nLAB_0003bc6c:\n  uVar20 = 0;\nLAB_0003bc14:\n  info->compare_list = top.next;\n  return uVar20;\nLAB_0003c004:\n  if (*ppdVar27 == (debug_type_conflict)0x0) {\nLAB_0003c00d:\n    if (*ppdVar24 == (debug_type_conflict)0x0) {\nLAB_0003c016:\n      uVar20 = 1;\n      goto LAB_0003bc14;\n    }\n  }\n  goto LAB_0003bc6c;\n}\n\n" comment (function_definition "bfd_boolean __regparm3 debug_type_samep(debug_handle *info,debug_type_s *t1,debug_type_s *t2)\n\n{\n  anon_union_4_15_2f2e1a09_for_u *paVar1;\n  anon_union_4_15_2f2e1a09_for_u *paVar2;\n  debug_type_kind dVar3;\n  debug_type_kind dVar4;\n  debug_type_compare_list *pdVar5;\n  debug_field *ppdVar6;\n  debug_field *ppdVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  char *__s2;\n  char *__s1;\n  debug_named_type *pdVar10;\n  debug_named_type *pdVar11;\n  debug_baseclass *ppdVar12;\n  debug_baseclass *ppdVar13;\n  debug_method *ppdVar14;\n  debug_method *ppdVar15;\n  code *pcVar16;\n  debug_type_s *pdVar17;\n  debug_type_s *pdVar18;\n  int iVar19;\n  uint uVar20;\n  debug_class_type *pdVar21;\n  bfd_boolean bVar22;\n  debug_name *__s1_00;\n  debug_class_type *pdVar23;\n  debug_name *__s2_00;\n  debug_type_conflict *ppdVar24;\n  debug_type *ppdVar25;\n  debug_type_conflict pdVar26;\n  debug_type_conflict *ppdVar27;\n  debug_type *ppdVar28;\n  debug_type_conflict pdVar29;\n  debug_name *local_4c;\n  int local_48;\n  debug_name *local_44;\n  debug_type_compare_list top;\n  \n  while (dVar3 = t1->kind, dVar3 == DEBUG_KIND_INDIRECT) {\n    t1 = *((t1->u).kindirect)->slot;\n    if (t1 == (debug_type_conflict)0x0) {\n      return 0;\n    }\n  }\n  while (dVar4 = t2->kind, dVar4 == DEBUG_KIND_INDIRECT) {\n    t2 = *((t2->u).kindirect)->slot;\n    if (t2 == (debug_type_conflict)0x0) {\n      return 0;\n    }\n  }\n  if (t1 == t2) {\n    return 1;\n  }\n  if (dVar3 == DEBUG_KIND_NAMED) {\n    if (dVar4 == DEBUG_KIND_TAGGED) {\n      bVar22 = debug_type_samep(info,((t1->u).karray)->range_type,t2);\n      return bVar22;\n    }\n  }\n  else if ((dVar3 == DEBUG_KIND_TAGGED) && (dVar4 == DEBUG_KIND_NAMED)) {\n    bVar22 = debug_type_samep(info,t1,((t2->u).karray)->range_type);\n    return bVar22;\n  }\n  if (dVar3 != dVar4) {\n    return 0;\n  }\n  if (t1->size != t2->size) {\n    return 0;\n  }\n  if (dVar3 == DEBUG_KIND_INT) {\n    return (uint)((t1->u).kindirect == (t2->u).kindirect);\n  }\n  if (dVar3 < DEBUG_KIND_FLOAT) {\n    if (dVar3 == DEBUG_KIND_VOID) {\n      return 1;\n    }\n  }\n  else if (dVar3 < DEBUG_KIND_STRUCT) {\n    return 1;\n  }\n  top.next = info->compare_list;\n  for (pdVar5 = top.next; pdVar5 != (debug_type_compare_list *)0x0; pdVar5 = pdVar5->next) {\n    if ((t1 == pdVar5->t1) && (t2 == pdVar5->t2)) {\n      return 1;\n    }\n  }\n  info->compare_list = &top;\n  top.t1 = t1;\n  top.t2 = t2;\n  switch(dVar3) {\n  case DEBUG_KIND_STRUCT:\n  case DEBUG_KIND_UNION:\n  case DEBUG_KIND_CLASS:\n  case DEBUG_KIND_UNION_CLASS:\n    pdVar23 = (t1->u).kclass;\n    pdVar21 = (t2->u).kclass;\n    if (pdVar23 == (debug_class_type *)0x0) {\nLAB_0003c14c:\n      uVar20 = (uint)(pdVar21 == (debug_class_type *)0x0);\n      goto LAB_0003bc14;\n    }\n    if (pdVar21 != (debug_class_type *)0x0) {\n      if ((info->base_id < pdVar23->id) && (pdVar23->id == pdVar21->id)) goto LAB_0003c016;\n      ppdVar6 = pdVar21->fields;\n      ppdVar7 = pdVar23->fields;\n      if (((ppdVar7 == (debug_field *)0x0) == (ppdVar6 == (debug_field *)0x0)) &&\n         ((((pdVar23->baseclasses == (debug_baseclass *)0x0) ==\n            (pdVar21->baseclasses == (debug_baseclass *)0x0) &&\n           ((pdVar23->methods == (debug_method *)0x0) == (pdVar21->methods == (debug_method *)0x0)))\n          && ((pdVar23->vptrbase == (debug_type_conflict)0x0) ==\n              (pdVar21->vptrbase == (debug_type_conflict)0x0))))) {\n        local_48 = 0;\n        if (ppdVar7 == (debug_field *)0x0) {\nLAB_0003c02c:\n          if ((pdVar23->vptrbase == (debug_type_s *)0x0) ||\n             (bVar22 = debug_type_samep(info,pdVar23->vptrbase,pdVar21->vptrbase), bVar22 != 0)) {\n            ppdVar12 = pdVar23->baseclasses;\n            if (ppdVar12 == (debug_baseclass *)0x0) {\nLAB_0003c0bd:\n              ppdVar14 = pdVar23->methods;\n              if (ppdVar14 != (debug_method *)0x0) {\n                ppdVar15 = pdVar21->methods;\n                local_4c = (debug_name *)0x0;\n                while( true ) {\n                  puVar8 = *(undefined4 **)((int)ppdVar14 + (int)local_4c);\n                  pdVar21 = *(debug_class_type **)((int)ppdVar15 + (int)local_4c);\n                  if (puVar8 == (undefined4 *)0x0) break;\n                  if (pdVar21 == (debug_class_type *)0x0) goto LAB_0003bc6c;\n                  if (((*(char *)*puVar8 != *(char *)pdVar21->fields) ||\n                      (iVar19 = strcmp((char *)*puVar8,(char *)pdVar21->fields), iVar19 != 0)) ||\n                     ((puVar8[1] == 0) != (pdVar21->mark == 0))) goto LAB_0003bc6c;\n                  local_4c = (debug_name *)((int)local_4c + 4);\n                  if (puVar8[1] == 0) {\n                    /* WARNING: Does not return */\n                    pcVar16 = (code *)invalidInstructionException();\n                    (*pcVar16)();\n                  }\n                }\n                goto LAB_0003c14c;\n              }\n              goto LAB_0003c016;\n            }\n            ppdVar13 = pdVar21->baseclasses;\n            iVar19 = 0;\n            while( true ) {\n              puVar8 = *(undefined4 **)((int)ppdVar12 + iVar19);\n              puVar9 = *(undefined4 **)((int)ppdVar13 + iVar19);\n              if (puVar8 == (undefined4 *)0x0) break;\n              if ((((puVar9 == (undefined4 *)0x0) || (puVar8[1] != puVar9[1])) ||\n                  (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3])) goto LAB_0003bc6c;\n              iVar19 = iVar19 + 4;\n              bVar22 = debug_type_samep(info,(debug_type_s *)*puVar8,(debug_type_s *)*puVar9);\n              if (bVar22 == 0) goto LAB_0003bc6c;\n            }\n            if (puVar9 == (undefined4 *)0x0) goto LAB_0003c0bd;\n          }\n        }\n        else {\n          while( true ) {\n            puVar8 = *(undefined4 **)((int)ppdVar7 + local_48);\n            puVar9 = *(undefined4 **)((int)ppdVar6 + local_48);\n            if (puVar8 == (undefined4 *)0x0) break;\n            if (puVar9 == (undefined4 *)0x0) goto LAB_0003bc6c;\n            __s2 = (char *)*puVar9;\n            __s1 = (char *)*puVar8;\n            if (((*__s1 != *__s2) || (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3]))\n            goto LAB_0003bc6c;\n            if (puVar8[3] == 0) {\n              if ((char *)puVar8[4] != (char *)puVar9[4]) goto LAB_0003bc6c;\n              if (puVar8[5] != puVar9[5]) {\n                uVar20 = 0;\n                goto LAB_0003bc14;\n              }\n            }\n            else {\n              iVar19 = strcmp((char *)puVar8[4],(char *)puVar9[4]);\n              if (iVar19 != 0) goto LAB_0003bc6c;\n            }\n            iVar19 = strcmp(__s1,__s2);\n            if (iVar19 != 0) goto LAB_0003bc6c;\n            pdVar17 = debug_get_real_type(info,(debug_type_conflict)puVar9[1],\n                                          (debug_type_real_list *)0x0);\n            pdVar18 = debug_get_real_type(info,(debug_type_conflict)puVar8[1],\n                                          (debug_type_real_list *)0x0);\n            bVar22 = debug_type_samep(info,pdVar18,pdVar17);\n            local_48 = local_48 + 4;\n            if (bVar22 == 0) goto LAB_0003bc6c;\n          }\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0003c02c;\n        }\n      }\n    }\n    break;\n  case DEBUG_KIND_ENUM:\n    pdVar10 = (t1->u).knamed;\n    pdVar11 = (t2->u).knamed;\n    if (pdVar10 == (debug_named_type *)0x0) {\n      uVar20 = (uint)(pdVar11 == (debug_named_type *)0x0);\n      goto LAB_0003bc14;\n    }\n    if (pdVar11 != (debug_named_type *)0x0) {\n      local_44 = pdVar10->name;\n      local_4c = pdVar11->name;\n      pdVar29 = pdVar10->type;\n      pdVar26 = pdVar11->type;\n      __s1_00 = local_44->next;\n      __s2_00 = local_4c->next;\n      if (__s1_00 == (debug_name *)0x0) {\nLAB_0003c1d9:\n        uVar20 = (uint)(local_4c->next == (debug_name *)0x0);\n        goto LAB_0003bc14;\n      }\n      if ((((__s2_00 != (debug_name *)0x0) && (*(char *)&__s2_00->next == *(char *)&__s1_00->next))\n          && (pdVar26->size == pdVar29->size)) && (pdVar26->kind == pdVar29->kind)) {\n        while (iVar19 = strcmp((char *)__s1_00,(char *)__s2_00), iVar19 == 0) {\n          local_44 = (debug_name *)&local_44->name;\n          ppdVar28 = &pdVar29->pointer;\n          ppdVar25 = &pdVar26->pointer;\n          local_4c = (debug_name *)&local_4c->name;\n          __s1_00 = *(debug_name **)local_44;\n          __s2_00 = *(debug_name **)local_4c;\n          if (__s1_00 == (debug_name *)0x0) goto LAB_0003c1d9;\n          if (((__s2_00 == (debug_name *)0x0) ||\n              (*(char *)&__s1_00->next != *(char *)&__s2_00->next)) ||\n             (paVar1 = &pdVar29->u, paVar2 = &pdVar26->u, pdVar26 = (debug_type_conflict)ppdVar25,\n             pdVar29 = (debug_type_conflict)ppdVar28,\n             paVar1->kindirect != paVar2->kindirect || *ppdVar28 != *ppdVar25)) break;\n        }\n        uVar20 = 0;\n        goto LAB_0003bc14;\n      }\n    }\n    break;\n  case DEBUG_KIND_POINTER:\n  case DEBUG_KIND_REFERENCE:\n  case DEBUG_KIND_CONST:\n  case DEBUG_KIND_VOLATILE:\n    uVar20 = debug_type_samep(info,(t1->u).kpointer,(t2->u).kpointer);\n    goto LAB_0003bc14;\n  case DEBUG_KIND_FUNCTION:\n    if ((((t1->u).kfunction)->varargs == ((t2->u).kfunction)->varargs) &&\n       (bVar22 = debug_type_samep(info,((t1->u).kfunction)->return_type,\n                                  ((t2->u).kfunction)->return_type), bVar22 != 0)) {\n      ppdVar27 = ((t1->u).kfunction)->arg_types;\n      ppdVar24 = ((t2->u).kfunction)->arg_types;\n      if ((ppdVar27 == (debug_type_conflict *)0x0) == (ppdVar24 == (debug_type_conflict *)0x0)) {\n        if (ppdVar27 == (debug_type_conflict *)0x0) goto LAB_0003c016;\n        while( true ) {\n          if (*ppdVar27 == (debug_type_s *)0x0) break;\n          if (*ppdVar24 == (debug_type_s *)0x0) goto LAB_0003bc6c;\n          bVar22 = debug_type_samep(info,*ppdVar27,*ppdVar24);\n          if (bVar22 == 0) goto LAB_0003c004;\n          ppdVar27 = ppdVar27 + 1;\n          ppdVar24 = ppdVar24 + 1;\n        }\n        goto LAB_0003c00d;\n      }\n    }\n    break;\n  case DEBUG_KIND_RANGE:\n    pdVar21 = (debug_class_type *)(t1->u).kmethod;\n    pdVar23 = (debug_class_type *)(t2->u).kmethod;\n    if (((pdVar21->id == pdVar23->id) &&\n        ((debug_type_conflict *)pdVar21->mark == (debug_type_conflict *)pdVar23->mark)) &&\n       (pdVar21->methods == pdVar23->methods)) {\n      if (pdVar21->baseclasses != pdVar23->baseclasses) {\n        uVar20 = 0;\n        goto LAB_0003bc14;\n      }\nLAB_0003be6e:\n      pdVar17 = (debug_type_s *)pdVar23->fields;\n      pdVar18 = (debug_type_s *)pdVar21->fields;\nLAB_0003be48:\n      bVar22 = debug_type_samep(info,pdVar18,pdVar17);\n      uVar20 = (uint)(bVar22 != 0);\n      goto LAB_0003bc14;\n    }\n    break;\n  case DEBUG_KIND_ARRAY:\n    pdVar21 = (t1->u).kclass;\n    pdVar23 = (t2->u).kclass;\n    if (((pdVar21->baseclasses == pdVar23->baseclasses) && (pdVar21->id == pdVar23->id)) &&\n       ((pdVar21->vptrbase == pdVar23->vptrbase && (pdVar21->methods == pdVar23->methods)))) {\n      if ((debug_type_conflict)pdVar21[1].fields != (debug_type_conflict)pdVar23[1].fields) {\n        uVar20 = 0;\n        goto LAB_0003bc14;\n      }\n      goto LAB_0003be6e;\n    }\n    break;\n  case DEBUG_KIND_SET:\n    pdVar23 = (debug_class_type *)(t2->u).kfunction;\n    pdVar21 = (debug_class_type *)(t1->u).kfunction;\n    if ((debug_type_conflict *)pdVar21->mark == (debug_type_conflict *)pdVar23->mark)\n    goto LAB_0003be6e;\n    break;\n  case DEBUG_KIND_OFFSET:\n    bVar22 = debug_type_samep(info,((t1->u).kfunction)->return_type,((t2->u).kfunction)->return_type\n                             );\n    if (bVar22 != 0) {\n      pdVar17 = ((t2->u).karray)->range_type;\n      pdVar18 = ((t1->u).karray)->range_type;\n      goto LAB_0003be48;\n    }\n    break;\n  case DEBUG_KIND_METHOD:\n    if (((((t1->u).kmethod)->varargs == ((t2->u).kmethod)->varargs) &&\n        (bVar22 = debug_type_samep(info,((t1->u).kmethod)->return_type,\n                                   ((t2->u).kmethod)->return_type), bVar22 != 0)) &&\n       (bVar22 = debug_type_samep(info,((t1->u).karray)->range_type,((t2->u).karray)->range_type),\n       bVar22 != 0)) {\n      ppdVar27 = ((t1->u).kmethod)->arg_types;\n      ppdVar24 = ((t2->u).kmethod)->arg_types;\n      if ((ppdVar27 == (debug_type_conflict *)0x0) == (ppdVar24 == (debug_type_conflict *)0x0)) {\n        if (ppdVar27 == (debug_type_conflict *)0x0) goto LAB_0003c016;\n        while( true ) {\n          if (*ppdVar27 == (debug_type_s *)0x0) break;\n          if (*ppdVar24 == (debug_type_s *)0x0) goto LAB_0003bc6c;\n          bVar22 = debug_type_samep(info,*ppdVar27,*ppdVar24);\n          if (bVar22 == 0) goto LAB_0003c004;\n          ppdVar27 = ppdVar27 + 1;\n          ppdVar24 = ppdVar24 + 1;\n        }\n        goto LAB_0003c00d;\n      }\n    }\n    break;\n  case DEBUG_KIND_NAMED:\n  case DEBUG_KIND_TAGGED:\n    pdVar10 = (t2->u).knamed;\n    pdVar11 = (t1->u).knamed;\n    iVar19 = strcmp(pdVar11->name->name,pdVar10->name->name);\n    if (iVar19 == 0) {\n      pdVar17 = pdVar10->type;\n      pdVar18 = pdVar11->type;\n      goto LAB_0003be48;\n    }\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }\nLAB_0003bc6c:\n  uVar20 = 0;\nLAB_0003bc14:\n  info->compare_list = top.next;\n  return uVar20;\nLAB_0003c004:\n  if (*ppdVar27 == (debug_type_conflict)0x0) {\nLAB_0003c00d:\n    if (*ppdVar24 == (debug_type_conflict)0x0) {\nLAB_0003c016:\n      uVar20 = 1;\n      goto LAB_0003bc14;\n    }\n  }\n  goto LAB_0003bc6c;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "debug_type_samep(debug_handle *info,debug_type_s *t1,debug_type_s *t2)" identifier (parameter_list "(debug_handle *info,debug_type_s *t1,debug_type_s *t2)" ( (parameter_declaration "debug_handle *info" type_identifier (pointer_declarator "*info" * identifier)) , (parameter_declaration "debug_type_s *t1" type_identifier (pointer_declarator "*t1" * identifier)) , (parameter_declaration "debug_type_s *t2" type_identifier (pointer_declarator "*t2" * identifier)) ))) (compound_statement "{\n  anon_union_4_15_2f2e1a09_for_u *paVar1;\n  anon_union_4_15_2f2e1a09_for_u *paVar2;\n  debug_type_kind dVar3;\n  debug_type_kind dVar4;\n  debug_type_compare_list *pdVar5;\n  debug_field *ppdVar6;\n  debug_field *ppdVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  char *__s2;\n  char *__s1;\n  debug_named_type *pdVar10;\n  debug_named_type *pdVar11;\n  debug_baseclass *ppdVar12;\n  debug_baseclass *ppdVar13;\n  debug_method *ppdVar14;\n  debug_method *ppdVar15;\n  code *pcVar16;\n  debug_type_s *pdVar17;\n  debug_type_s *pdVar18;\n  int iVar19;\n  uint uVar20;\n  debug_class_type *pdVar21;\n  bfd_boolean bVar22;\n  debug_name *__s1_00;\n  debug_class_type *pdVar23;\n  debug_name *__s2_00;\n  debug_type_conflict *ppdVar24;\n  debug_type *ppdVar25;\n  debug_type_conflict pdVar26;\n  debug_type_conflict *ppdVar27;\n  debug_type *ppdVar28;\n  debug_type_conflict pdVar29;\n  debug_name *local_4c;\n  int local_48;\n  debug_name *local_44;\n  debug_type_compare_list top;\n  \n  while (dVar3 = t1->kind, dVar3 == DEBUG_KIND_INDIRECT) {\n    t1 = *((t1->u).kindirect)->slot;\n    if (t1 == (debug_type_conflict)0x0) {\n      return 0;\n    }\n  }\n  while (dVar4 = t2->kind, dVar4 == DEBUG_KIND_INDIRECT) {\n    t2 = *((t2->u).kindirect)->slot;\n    if (t2 == (debug_type_conflict)0x0) {\n      return 0;\n    }\n  }\n  if (t1 == t2) {\n    return 1;\n  }\n  if (dVar3 == DEBUG_KIND_NAMED) {\n    if (dVar4 == DEBUG_KIND_TAGGED) {\n      bVar22 = debug_type_samep(info,((t1->u).karray)->range_type,t2);\n      return bVar22;\n    }\n  }\n  else if ((dVar3 == DEBUG_KIND_TAGGED) && (dVar4 == DEBUG_KIND_NAMED)) {\n    bVar22 = debug_type_samep(info,t1,((t2->u).karray)->range_type);\n    return bVar22;\n  }\n  if (dVar3 != dVar4) {\n    return 0;\n  }\n  if (t1->size != t2->size) {\n    return 0;\n  }\n  if (dVar3 == DEBUG_KIND_INT) {\n    return (uint)((t1->u).kindirect == (t2->u).kindirect);\n  }\n  if (dVar3 < DEBUG_KIND_FLOAT) {\n    if (dVar3 == DEBUG_KIND_VOID) {\n      return 1;\n    }\n  }\n  else if (dVar3 < DEBUG_KIND_STRUCT) {\n    return 1;\n  }\n  top.next = info->compare_list;\n  for (pdVar5 = top.next; pdVar5 != (debug_type_compare_list *)0x0; pdVar5 = pdVar5->next) {\n    if ((t1 == pdVar5->t1) && (t2 == pdVar5->t2)) {\n      return 1;\n    }\n  }\n  info->compare_list = &top;\n  top.t1 = t1;\n  top.t2 = t2;\n  switch(dVar3) {\n  case DEBUG_KIND_STRUCT:\n  case DEBUG_KIND_UNION:\n  case DEBUG_KIND_CLASS:\n  case DEBUG_KIND_UNION_CLASS:\n    pdVar23 = (t1->u).kclass;\n    pdVar21 = (t2->u).kclass;\n    if (pdVar23 == (debug_class_type *)0x0) {\nLAB_0003c14c:\n      uVar20 = (uint)(pdVar21 == (debug_class_type *)0x0);\n      goto LAB_0003bc14;\n    }\n    if (pdVar21 != (debug_class_type *)0x0) {\n      if ((info->base_id < pdVar23->id) && (pdVar23->id == pdVar21->id)) goto LAB_0003c016;\n      ppdVar6 = pdVar21->fields;\n      ppdVar7 = pdVar23->fields;\n      if (((ppdVar7 == (debug_field *)0x0) == (ppdVar6 == (debug_field *)0x0)) &&\n         ((((pdVar23->baseclasses == (debug_baseclass *)0x0) ==\n            (pdVar21->baseclasses == (debug_baseclass *)0x0) &&\n           ((pdVar23->methods == (debug_method *)0x0) == (pdVar21->methods == (debug_method *)0x0)))\n          && ((pdVar23->vptrbase == (debug_type_conflict)0x0) ==\n              (pdVar21->vptrbase == (debug_type_conflict)0x0))))) {\n        local_48 = 0;\n        if (ppdVar7 == (debug_field *)0x0) {\nLAB_0003c02c:\n          if ((pdVar23->vptrbase == (debug_type_s *)0x0) ||\n             (bVar22 = debug_type_samep(info,pdVar23->vptrbase,pdVar21->vptrbase), bVar22 != 0)) {\n            ppdVar12 = pdVar23->baseclasses;\n            if (ppdVar12 == (debug_baseclass *)0x0) {\nLAB_0003c0bd:\n              ppdVar14 = pdVar23->methods;\n              if (ppdVar14 != (debug_method *)0x0) {\n                ppdVar15 = pdVar21->methods;\n                local_4c = (debug_name *)0x0;\n                while( true ) {\n                  puVar8 = *(undefined4 **)((int)ppdVar14 + (int)local_4c);\n                  pdVar21 = *(debug_class_type **)((int)ppdVar15 + (int)local_4c);\n                  if (puVar8 == (undefined4 *)0x0) break;\n                  if (pdVar21 == (debug_class_type *)0x0) goto LAB_0003bc6c;\n                  if (((*(char *)*puVar8 != *(char *)pdVar21->fields) ||\n                      (iVar19 = strcmp((char *)*puVar8,(char *)pdVar21->fields), iVar19 != 0)) ||\n                     ((puVar8[1] == 0) != (pdVar21->mark == 0))) goto LAB_0003bc6c;\n                  local_4c = (debug_name *)((int)local_4c + 4);\n                  if (puVar8[1] == 0) {\n                    /* WARNING: Does not return */\n                    pcVar16 = (code *)invalidInstructionException();\n                    (*pcVar16)();\n                  }\n                }\n                goto LAB_0003c14c;\n              }\n              goto LAB_0003c016;\n            }\n            ppdVar13 = pdVar21->baseclasses;\n            iVar19 = 0;\n            while( true ) {\n              puVar8 = *(undefined4 **)((int)ppdVar12 + iVar19);\n              puVar9 = *(undefined4 **)((int)ppdVar13 + iVar19);\n              if (puVar8 == (undefined4 *)0x0) break;\n              if ((((puVar9 == (undefined4 *)0x0) || (puVar8[1] != puVar9[1])) ||\n                  (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3])) goto LAB_0003bc6c;\n              iVar19 = iVar19 + 4;\n              bVar22 = debug_type_samep(info,(debug_type_s *)*puVar8,(debug_type_s *)*puVar9);\n              if (bVar22 == 0) goto LAB_0003bc6c;\n            }\n            if (puVar9 == (undefined4 *)0x0) goto LAB_0003c0bd;\n          }\n        }\n        else {\n          while( true ) {\n            puVar8 = *(undefined4 **)((int)ppdVar7 + local_48);\n            puVar9 = *(undefined4 **)((int)ppdVar6 + local_48);\n            if (puVar8 == (undefined4 *)0x0) break;\n            if (puVar9 == (undefined4 *)0x0) goto LAB_0003bc6c;\n            __s2 = (char *)*puVar9;\n            __s1 = (char *)*puVar8;\n            if (((*__s1 != *__s2) || (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3]))\n            goto LAB_0003bc6c;\n            if (puVar8[3] == 0) {\n              if ((char *)puVar8[4] != (char *)puVar9[4]) goto LAB_0003bc6c;\n              if (puVar8[5] != puVar9[5]) {\n                uVar20 = 0;\n                goto LAB_0003bc14;\n              }\n            }\n            else {\n              iVar19 = strcmp((char *)puVar8[4],(char *)puVar9[4]);\n              if (iVar19 != 0) goto LAB_0003bc6c;\n            }\n            iVar19 = strcmp(__s1,__s2);\n            if (iVar19 != 0) goto LAB_0003bc6c;\n            pdVar17 = debug_get_real_type(info,(debug_type_conflict)puVar9[1],\n                                          (debug_type_real_list *)0x0);\n            pdVar18 = debug_get_real_type(info,(debug_type_conflict)puVar8[1],\n                                          (debug_type_real_list *)0x0);\n            bVar22 = debug_type_samep(info,pdVar18,pdVar17);\n            local_48 = local_48 + 4;\n            if (bVar22 == 0) goto LAB_0003bc6c;\n          }\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0003c02c;\n        }\n      }\n    }\n    break;\n  case DEBUG_KIND_ENUM:\n    pdVar10 = (t1->u).knamed;\n    pdVar11 = (t2->u).knamed;\n    if (pdVar10 == (debug_named_type *)0x0) {\n      uVar20 = (uint)(pdVar11 == (debug_named_type *)0x0);\n      goto LAB_0003bc14;\n    }\n    if (pdVar11 != (debug_named_type *)0x0) {\n      local_44 = pdVar10->name;\n      local_4c = pdVar11->name;\n      pdVar29 = pdVar10->type;\n      pdVar26 = pdVar11->type;\n      __s1_00 = local_44->next;\n      __s2_00 = local_4c->next;\n      if (__s1_00 == (debug_name *)0x0) {\nLAB_0003c1d9:\n        uVar20 = (uint)(local_4c->next == (debug_name *)0x0);\n        goto LAB_0003bc14;\n      }\n      if ((((__s2_00 != (debug_name *)0x0) && (*(char *)&__s2_00->next == *(char *)&__s1_00->next))\n          && (pdVar26->size == pdVar29->size)) && (pdVar26->kind == pdVar29->kind)) {\n        while (iVar19 = strcmp((char *)__s1_00,(char *)__s2_00), iVar19 == 0) {\n          local_44 = (debug_name *)&local_44->name;\n          ppdVar28 = &pdVar29->pointer;\n          ppdVar25 = &pdVar26->pointer;\n          local_4c = (debug_name *)&local_4c->name;\n          __s1_00 = *(debug_name **)local_44;\n          __s2_00 = *(debug_name **)local_4c;\n          if (__s1_00 == (debug_name *)0x0) goto LAB_0003c1d9;\n          if (((__s2_00 == (debug_name *)0x0) ||\n              (*(char *)&__s1_00->next != *(char *)&__s2_00->next)) ||\n             (paVar1 = &pdVar29->u, paVar2 = &pdVar26->u, pdVar26 = (debug_type_conflict)ppdVar25,\n             pdVar29 = (debug_type_conflict)ppdVar28,\n             paVar1->kindirect != paVar2->kindirect || *ppdVar28 != *ppdVar25)) break;\n        }\n        uVar20 = 0;\n        goto LAB_0003bc14;\n      }\n    }\n    break;\n  case DEBUG_KIND_POINTER:\n  case DEBUG_KIND_REFERENCE:\n  case DEBUG_KIND_CONST:\n  case DEBUG_KIND_VOLATILE:\n    uVar20 = debug_type_samep(info,(t1->u).kpointer,(t2->u).kpointer);\n    goto LAB_0003bc14;\n  case DEBUG_KIND_FUNCTION:\n    if ((((t1->u).kfunction)->varargs == ((t2->u).kfunction)->varargs) &&\n       (bVar22 = debug_type_samep(info,((t1->u).kfunction)->return_type,\n                                  ((t2->u).kfunction)->return_type), bVar22 != 0)) {\n      ppdVar27 = ((t1->u).kfunction)->arg_types;\n      ppdVar24 = ((t2->u).kfunction)->arg_types;\n      if ((ppdVar27 == (debug_type_conflict *)0x0) == (ppdVar24 == (debug_type_conflict *)0x0)) {\n        if (ppdVar27 == (debug_type_conflict *)0x0) goto LAB_0003c016;\n        while( true ) {\n          if (*ppdVar27 == (debug_type_s *)0x0) break;\n          if (*ppdVar24 == (debug_type_s *)0x0) goto LAB_0003bc6c;\n          bVar22 = debug_type_samep(info,*ppdVar27,*ppdVar24);\n          if (bVar22 == 0) goto LAB_0003c004;\n          ppdVar27 = ppdVar27 + 1;\n          ppdVar24 = ppdVar24 + 1;\n        }\n        goto LAB_0003c00d;\n      }\n    }\n    break;\n  case DEBUG_KIND_RANGE:\n    pdVar21 = (debug_class_type *)(t1->u).kmethod;\n    pdVar23 = (debug_class_type *)(t2->u).kmethod;\n    if (((pdVar21->id == pdVar23->id) &&\n        ((debug_type_conflict *)pdVar21->mark == (debug_type_conflict *)pdVar23->mark)) &&\n       (pdVar21->methods == pdVar23->methods)) {\n      if (pdVar21->baseclasses != pdVar23->baseclasses) {\n        uVar20 = 0;\n        goto LAB_0003bc14;\n      }\nLAB_0003be6e:\n      pdVar17 = (debug_type_s *)pdVar23->fields;\n      pdVar18 = (debug_type_s *)pdVar21->fields;\nLAB_0003be48:\n      bVar22 = debug_type_samep(info,pdVar18,pdVar17);\n      uVar20 = (uint)(bVar22 != 0);\n      goto LAB_0003bc14;\n    }\n    break;\n  case DEBUG_KIND_ARRAY:\n    pdVar21 = (t1->u).kclass;\n    pdVar23 = (t2->u).kclass;\n    if (((pdVar21->baseclasses == pdVar23->baseclasses) && (pdVar21->id == pdVar23->id)) &&\n       ((pdVar21->vptrbase == pdVar23->vptrbase && (pdVar21->methods == pdVar23->methods)))) {\n      if ((debug_type_conflict)pdVar21[1].fields != (debug_type_conflict)pdVar23[1].fields) {\n        uVar20 = 0;\n        goto LAB_0003bc14;\n      }\n      goto LAB_0003be6e;\n    }\n    break;\n  case DEBUG_KIND_SET:\n    pdVar23 = (debug_class_type *)(t2->u).kfunction;\n    pdVar21 = (debug_class_type *)(t1->u).kfunction;\n    if ((debug_type_conflict *)pdVar21->mark == (debug_type_conflict *)pdVar23->mark)\n    goto LAB_0003be6e;\n    break;\n  case DEBUG_KIND_OFFSET:\n    bVar22 = debug_type_samep(info,((t1->u).kfunction)->return_type,((t2->u).kfunction)->return_type\n                             );\n    if (bVar22 != 0) {\n      pdVar17 = ((t2->u).karray)->range_type;\n      pdVar18 = ((t1->u).karray)->range_type;\n      goto LAB_0003be48;\n    }\n    break;\n  case DEBUG_KIND_METHOD:\n    if (((((t1->u).kmethod)->varargs == ((t2->u).kmethod)->varargs) &&\n        (bVar22 = debug_type_samep(info,((t1->u).kmethod)->return_type,\n                                   ((t2->u).kmethod)->return_type), bVar22 != 0)) &&\n       (bVar22 = debug_type_samep(info,((t1->u).karray)->range_type,((t2->u).karray)->range_type),\n       bVar22 != 0)) {\n      ppdVar27 = ((t1->u).kmethod)->arg_types;\n      ppdVar24 = ((t2->u).kmethod)->arg_types;\n      if ((ppdVar27 == (debug_type_conflict *)0x0) == (ppdVar24 == (debug_type_conflict *)0x0)) {\n        if (ppdVar27 == (debug_type_conflict *)0x0) goto LAB_0003c016;\n        while( true ) {\n          if (*ppdVar27 == (debug_type_s *)0x0) break;\n          if (*ppdVar24 == (debug_type_s *)0x0) goto LAB_0003bc6c;\n          bVar22 = debug_type_samep(info,*ppdVar27,*ppdVar24);\n          if (bVar22 == 0) goto LAB_0003c004;\n          ppdVar27 = ppdVar27 + 1;\n          ppdVar24 = ppdVar24 + 1;\n        }\n        goto LAB_0003c00d;\n      }\n    }\n    break;\n  case DEBUG_KIND_NAMED:\n  case DEBUG_KIND_TAGGED:\n    pdVar10 = (t2->u).knamed;\n    pdVar11 = (t1->u).knamed;\n    iVar19 = strcmp(pdVar11->name->name,pdVar10->name->name);\n    if (iVar19 == 0) {\n      pdVar17 = pdVar10->type;\n      pdVar18 = pdVar11->type;\n      goto LAB_0003be48;\n    }\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }\nLAB_0003bc6c:\n  uVar20 = 0;\nLAB_0003bc14:\n  info->compare_list = top.next;\n  return uVar20;\nLAB_0003c004:\n  if (*ppdVar27 == (debug_type_conflict)0x0) {\nLAB_0003c00d:\n    if (*ppdVar24 == (debug_type_conflict)0x0) {\nLAB_0003c016:\n      uVar20 = 1;\n      goto LAB_0003bc14;\n    }\n  }\n  goto LAB_0003bc6c;\n}" { (declaration "anon_union_4_15_2f2e1a09_for_u *paVar1;" type_identifier (pointer_declarator "*paVar1" * identifier) ;) (declaration "anon_union_4_15_2f2e1a09_for_u *paVar2;" type_identifier (pointer_declarator "*paVar2" * identifier) ;) (declaration "debug_type_kind dVar3;" type_identifier identifier ;) (declaration "debug_type_kind dVar4;" type_identifier identifier ;) (declaration "debug_type_compare_list *pdVar5;" type_identifier (pointer_declarator "*pdVar5" * identifier) ;) (declaration "debug_field *ppdVar6;" type_identifier (pointer_declarator "*ppdVar6" * identifier) ;) (declaration "debug_field *ppdVar7;" type_identifier (pointer_declarator "*ppdVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "char *__s2;" primitive_type (pointer_declarator "*__s2" * identifier) ;) (declaration "char *__s1;" primitive_type (pointer_declarator "*__s1" * identifier) ;) (declaration "debug_named_type *pdVar10;" type_identifier (pointer_declarator "*pdVar10" * identifier) ;) (declaration "debug_named_type *pdVar11;" type_identifier (pointer_declarator "*pdVar11" * identifier) ;) (declaration "debug_baseclass *ppdVar12;" type_identifier (pointer_declarator "*ppdVar12" * identifier) ;) (declaration "debug_baseclass *ppdVar13;" type_identifier (pointer_declarator "*ppdVar13" * identifier) ;) (declaration "debug_method *ppdVar14;" type_identifier (pointer_declarator "*ppdVar14" * identifier) ;) (declaration "debug_method *ppdVar15;" type_identifier (pointer_declarator "*ppdVar15" * identifier) ;) (declaration "code *pcVar16;" type_identifier (pointer_declarator "*pcVar16" * identifier) ;) (declaration "debug_type_s *pdVar17;" type_identifier (pointer_declarator "*pdVar17" * identifier) ;) (declaration "debug_type_s *pdVar18;" type_identifier (pointer_declarator "*pdVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "debug_class_type *pdVar21;" type_identifier (pointer_declarator "*pdVar21" * identifier) ;) (declaration "bfd_boolean bVar22;" type_identifier identifier ;) (declaration "debug_name *__s1_00;" type_identifier (pointer_declarator "*__s1_00" * identifier) ;) (declaration "debug_class_type *pdVar23;" type_identifier (pointer_declarator "*pdVar23" * identifier) ;) (declaration "debug_name *__s2_00;" type_identifier (pointer_declarator "*__s2_00" * identifier) ;) (declaration "debug_type_conflict *ppdVar24;" type_identifier (pointer_declarator "*ppdVar24" * identifier) ;) (declaration "debug_type *ppdVar25;" type_identifier (pointer_declarator "*ppdVar25" * identifier) ;) (declaration "debug_type_conflict pdVar26;" type_identifier identifier ;) (declaration "debug_type_conflict *ppdVar27;" type_identifier (pointer_declarator "*ppdVar27" * identifier) ;) (declaration "debug_type *ppdVar28;" type_identifier (pointer_declarator "*ppdVar28" * identifier) ;) (declaration "debug_type_conflict pdVar29;" type_identifier identifier ;) (declaration "debug_name *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "debug_name *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "debug_type_compare_list top;" type_identifier identifier ;) (while_statement "while (dVar3 = t1->kind, dVar3 == DEBUG_KIND_INDIRECT) {\n    t1 = *((t1->u).kindirect)->slot;\n    if (t1 == (debug_type_conflict)0x0) {\n      return 0;\n    }\n  }" while (parenthesized_expression "(dVar3 = t1->kind, dVar3 == DEBUG_KIND_INDIRECT)" ( (comma_expression "dVar3 = t1->kind, dVar3 == DEBUG_KIND_INDIRECT" (assignment_expression "dVar3 = t1->kind" identifier = (field_expression "t1->kind" identifier -> field_identifier)) , (binary_expression "dVar3 == DEBUG_KIND_INDIRECT" identifier == identifier)) )) (compound_statement "{\n    t1 = *((t1->u).kindirect)->slot;\n    if (t1 == (debug_type_conflict)0x0) {\n      return 0;\n    }\n  }" { (expression_statement "t1 = *((t1->u).kindirect)->slot;" (assignment_expression "t1 = *((t1->u).kindirect)->slot" identifier = (pointer_expression "*((t1->u).kindirect)->slot" * (field_expression "((t1->u).kindirect)->slot" (parenthesized_expression "((t1->u).kindirect)" ( (field_expression "(t1->u).kindirect" (parenthesized_expression "(t1->u)" ( (field_expression "t1->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier))) ;) (if_statement "if (t1 == (debug_type_conflict)0x0) {\n      return 0;\n    }" if (parenthesized_expression "(t1 == (debug_type_conflict)0x0)" ( (binary_expression "t1 == (debug_type_conflict)0x0" identifier == (cast_expression "(debug_type_conflict)0x0" ( (type_descriptor "debug_type_conflict" type_identifier) ) number_literal)) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) })) (while_statement "while (dVar4 = t2->kind, dVar4 == DEBUG_KIND_INDIRECT) {\n    t2 = *((t2->u).kindirect)->slot;\n    if (t2 == (debug_type_conflict)0x0) {\n      return 0;\n    }\n  }" while (parenthesized_expression "(dVar4 = t2->kind, dVar4 == DEBUG_KIND_INDIRECT)" ( (comma_expression "dVar4 = t2->kind, dVar4 == DEBUG_KIND_INDIRECT" (assignment_expression "dVar4 = t2->kind" identifier = (field_expression "t2->kind" identifier -> field_identifier)) , (binary_expression "dVar4 == DEBUG_KIND_INDIRECT" identifier == identifier)) )) (compound_statement "{\n    t2 = *((t2->u).kindirect)->slot;\n    if (t2 == (debug_type_conflict)0x0) {\n      return 0;\n    }\n  }" { (expression_statement "t2 = *((t2->u).kindirect)->slot;" (assignment_expression "t2 = *((t2->u).kindirect)->slot" identifier = (pointer_expression "*((t2->u).kindirect)->slot" * (field_expression "((t2->u).kindirect)->slot" (parenthesized_expression "((t2->u).kindirect)" ( (field_expression "(t2->u).kindirect" (parenthesized_expression "(t2->u)" ( (field_expression "t2->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier))) ;) (if_statement "if (t2 == (debug_type_conflict)0x0) {\n      return 0;\n    }" if (parenthesized_expression "(t2 == (debug_type_conflict)0x0)" ( (binary_expression "t2 == (debug_type_conflict)0x0" identifier == (cast_expression "(debug_type_conflict)0x0" ( (type_descriptor "debug_type_conflict" type_identifier) ) number_literal)) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) })) (if_statement "if (t1 == t2) {\n    return 1;\n  }" if (parenthesized_expression "(t1 == t2)" ( (binary_expression "t1 == t2" identifier == identifier) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (dVar3 == DEBUG_KIND_NAMED) {\n    if (dVar4 == DEBUG_KIND_TAGGED) {\n      bVar22 = debug_type_samep(info,((t1->u).karray)->range_type,t2);\n      return bVar22;\n    }\n  }\n  else if ((dVar3 == DEBUG_KIND_TAGGED) && (dVar4 == DEBUG_KIND_NAMED)) {\n    bVar22 = debug_type_samep(info,t1,((t2->u).karray)->range_type);\n    return bVar22;\n  }" if (parenthesized_expression "(dVar3 == DEBUG_KIND_NAMED)" ( (binary_expression "dVar3 == DEBUG_KIND_NAMED" identifier == identifier) )) (compound_statement "{\n    if (dVar4 == DEBUG_KIND_TAGGED) {\n      bVar22 = debug_type_samep(info,((t1->u).karray)->range_type,t2);\n      return bVar22;\n    }\n  }" { (if_statement "if (dVar4 == DEBUG_KIND_TAGGED) {\n      bVar22 = debug_type_samep(info,((t1->u).karray)->range_type,t2);\n      return bVar22;\n    }" if (parenthesized_expression "(dVar4 == DEBUG_KIND_TAGGED)" ( (binary_expression "dVar4 == DEBUG_KIND_TAGGED" identifier == identifier) )) (compound_statement "{\n      bVar22 = debug_type_samep(info,((t1->u).karray)->range_type,t2);\n      return bVar22;\n    }" { (expression_statement "bVar22 = debug_type_samep(info,((t1->u).karray)->range_type,t2);" (assignment_expression "bVar22 = debug_type_samep(info,((t1->u).karray)->range_type,t2)" identifier = (call_expression "debug_type_samep(info,((t1->u).karray)->range_type,t2)" identifier (argument_list "(info,((t1->u).karray)->range_type,t2)" ( identifier , (field_expression "((t1->u).karray)->range_type" (parenthesized_expression "((t1->u).karray)" ( (field_expression "(t1->u).karray" (parenthesized_expression "(t1->u)" ( (field_expression "t1->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) , identifier )))) ;) (return_statement "return bVar22;" return identifier ;) })) }) (else_clause "else if ((dVar3 == DEBUG_KIND_TAGGED) && (dVar4 == DEBUG_KIND_NAMED)) {\n    bVar22 = debug_type_samep(info,t1,((t2->u).karray)->range_type);\n    return bVar22;\n  }" else (if_statement "if ((dVar3 == DEBUG_KIND_TAGGED) && (dVar4 == DEBUG_KIND_NAMED)) {\n    bVar22 = debug_type_samep(info,t1,((t2->u).karray)->range_type);\n    return bVar22;\n  }" if (parenthesized_expression "((dVar3 == DEBUG_KIND_TAGGED) && (dVar4 == DEBUG_KIND_NAMED))" ( (binary_expression "(dVar3 == DEBUG_KIND_TAGGED) && (dVar4 == DEBUG_KIND_NAMED)" (parenthesized_expression "(dVar3 == DEBUG_KIND_TAGGED)" ( (binary_expression "dVar3 == DEBUG_KIND_TAGGED" identifier == identifier) )) && (parenthesized_expression "(dVar4 == DEBUG_KIND_NAMED)" ( (binary_expression "dVar4 == DEBUG_KIND_NAMED" identifier == identifier) ))) )) (compound_statement "{\n    bVar22 = debug_type_samep(info,t1,((t2->u).karray)->range_type);\n    return bVar22;\n  }" { (expression_statement "bVar22 = debug_type_samep(info,t1,((t2->u).karray)->range_type);" (assignment_expression "bVar22 = debug_type_samep(info,t1,((t2->u).karray)->range_type)" identifier = (call_expression "debug_type_samep(info,t1,((t2->u).karray)->range_type)" identifier (argument_list "(info,t1,((t2->u).karray)->range_type)" ( identifier , identifier , (field_expression "((t2->u).karray)->range_type" (parenthesized_expression "((t2->u).karray)" ( (field_expression "(t2->u).karray" (parenthesized_expression "(t2->u)" ( (field_expression "t2->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) )))) ;) (return_statement "return bVar22;" return identifier ;) })))) (if_statement "if (dVar3 != dVar4) {\n    return 0;\n  }" if (parenthesized_expression "(dVar3 != dVar4)" ( (binary_expression "dVar3 != dVar4" identifier != identifier) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (t1->size != t2->size) {\n    return 0;\n  }" if (parenthesized_expression "(t1->size != t2->size)" ( (binary_expression "t1->size != t2->size" (field_expression "t1->size" identifier -> field_identifier) != (field_expression "t2->size" identifier -> field_identifier)) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (dVar3 == DEBUG_KIND_INT) {\n    return (uint)((t1->u).kindirect == (t2->u).kindirect);\n  }" if (parenthesized_expression "(dVar3 == DEBUG_KIND_INT)" ( (binary_expression "dVar3 == DEBUG_KIND_INT" identifier == identifier) )) (compound_statement "{\n    return (uint)((t1->u).kindirect == (t2->u).kindirect);\n  }" { (return_statement "return (uint)((t1->u).kindirect == (t2->u).kindirect);" return (call_expression "(uint)((t1->u).kindirect == (t2->u).kindirect)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((t1->u).kindirect == (t2->u).kindirect)" ( (binary_expression "(t1->u).kindirect == (t2->u).kindirect" (field_expression "(t1->u).kindirect" (parenthesized_expression "(t1->u)" ( (field_expression "t1->u" identifier -> field_identifier) )) . field_identifier) == (field_expression "(t2->u).kindirect" (parenthesized_expression "(t2->u)" ( (field_expression "t2->u" identifier -> field_identifier) )) . field_identifier)) ))) ;) })) (if_statement "if (dVar3 < DEBUG_KIND_FLOAT) {\n    if (dVar3 == DEBUG_KIND_VOID) {\n      return 1;\n    }\n  }\n  else if (dVar3 < DEBUG_KIND_STRUCT) {\n    return 1;\n  }" if (parenthesized_expression "(dVar3 < DEBUG_KIND_FLOAT)" ( (binary_expression "dVar3 < DEBUG_KIND_FLOAT" identifier < identifier) )) (compound_statement "{\n    if (dVar3 == DEBUG_KIND_VOID) {\n      return 1;\n    }\n  }" { (if_statement "if (dVar3 == DEBUG_KIND_VOID) {\n      return 1;\n    }" if (parenthesized_expression "(dVar3 == DEBUG_KIND_VOID)" ( (binary_expression "dVar3 == DEBUG_KIND_VOID" identifier == identifier) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) }) (else_clause "else if (dVar3 < DEBUG_KIND_STRUCT) {\n    return 1;\n  }" else (if_statement "if (dVar3 < DEBUG_KIND_STRUCT) {\n    return 1;\n  }" if (parenthesized_expression "(dVar3 < DEBUG_KIND_STRUCT)" ( (binary_expression "dVar3 < DEBUG_KIND_STRUCT" identifier < identifier) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })))) (expression_statement "top.next = info->compare_list;" (assignment_expression "top.next = info->compare_list" (field_expression "top.next" identifier . field_identifier) = (field_expression "info->compare_list" identifier -> field_identifier)) ;) (for_statement "for (pdVar5 = top.next; pdVar5 != (debug_type_compare_list *)0x0; pdVar5 = pdVar5->next) {\n    if ((t1 == pdVar5->t1) && (t2 == pdVar5->t2)) {\n      return 1;\n    }\n  }" for ( (assignment_expression "pdVar5 = top.next" identifier = (field_expression "top.next" identifier . field_identifier)) ; (binary_expression "pdVar5 != (debug_type_compare_list *)0x0" identifier != (cast_expression "(debug_type_compare_list *)0x0" ( (type_descriptor "debug_type_compare_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pdVar5 = pdVar5->next" identifier = (field_expression "pdVar5->next" identifier -> field_identifier)) ) (compound_statement "{\n    if ((t1 == pdVar5->t1) && (t2 == pdVar5->t2)) {\n      return 1;\n    }\n  }" { (if_statement "if ((t1 == pdVar5->t1) && (t2 == pdVar5->t2)) {\n      return 1;\n    }" if (parenthesized_expression "((t1 == pdVar5->t1) && (t2 == pdVar5->t2))" ( (binary_expression "(t1 == pdVar5->t1) && (t2 == pdVar5->t2)" (parenthesized_expression "(t1 == pdVar5->t1)" ( (binary_expression "t1 == pdVar5->t1" identifier == (field_expression "pdVar5->t1" identifier -> field_identifier)) )) && (parenthesized_expression "(t2 == pdVar5->t2)" ( (binary_expression "t2 == pdVar5->t2" identifier == (field_expression "pdVar5->t2" identifier -> field_identifier)) ))) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) })) (expression_statement "info->compare_list = &top;" (assignment_expression "info->compare_list = &top" (field_expression "info->compare_list" identifier -> field_identifier) = (pointer_expression "&top" & identifier)) ;) (expression_statement "top.t1 = t1;" (assignment_expression "top.t1 = t1" (field_expression "top.t1" identifier . field_identifier) = identifier) ;) (expression_statement "top.t2 = t2;" (assignment_expression "top.t2 = t2" (field_expression "top.t2" identifier . field_identifier) = identifier) ;) (switch_statement "switch(dVar3) {\n  case DEBUG_KIND_STRUCT:\n  case DEBUG_KIND_UNION:\n  case DEBUG_KIND_CLASS:\n  case DEBUG_KIND_UNION_CLASS:\n    pdVar23 = (t1->u).kclass;\n    pdVar21 = (t2->u).kclass;\n    if (pdVar23 == (debug_class_type *)0x0) {\nLAB_0003c14c:\n      uVar20 = (uint)(pdVar21 == (debug_class_type *)0x0);\n      goto LAB_0003bc14;\n    }\n    if (pdVar21 != (debug_class_type *)0x0) {\n      if ((info->base_id < pdVar23->id) && (pdVar23->id == pdVar21->id)) goto LAB_0003c016;\n      ppdVar6 = pdVar21->fields;\n      ppdVar7 = pdVar23->fields;\n      if (((ppdVar7 == (debug_field *)0x0) == (ppdVar6 == (debug_field *)0x0)) &&\n         ((((pdVar23->baseclasses == (debug_baseclass *)0x0) ==\n            (pdVar21->baseclasses == (debug_baseclass *)0x0) &&\n           ((pdVar23->methods == (debug_method *)0x0) == (pdVar21->methods == (debug_method *)0x0)))\n          && ((pdVar23->vptrbase == (debug_type_conflict)0x0) ==\n              (pdVar21->vptrbase == (debug_type_conflict)0x0))))) {\n        local_48 = 0;\n        if (ppdVar7 == (debug_field *)0x0) {\nLAB_0003c02c:\n          if ((pdVar23->vptrbase == (debug_type_s *)0x0) ||\n             (bVar22 = debug_type_samep(info,pdVar23->vptrbase,pdVar21->vptrbase), bVar22 != 0)) {\n            ppdVar12 = pdVar23->baseclasses;\n            if (ppdVar12 == (debug_baseclass *)0x0) {\nLAB_0003c0bd:\n              ppdVar14 = pdVar23->methods;\n              if (ppdVar14 != (debug_method *)0x0) {\n                ppdVar15 = pdVar21->methods;\n                local_4c = (debug_name *)0x0;\n                while( true ) {\n                  puVar8 = *(undefined4 **)((int)ppdVar14 + (int)local_4c);\n                  pdVar21 = *(debug_class_type **)((int)ppdVar15 + (int)local_4c);\n                  if (puVar8 == (undefined4 *)0x0) break;\n                  if (pdVar21 == (debug_class_type *)0x0) goto LAB_0003bc6c;\n                  if (((*(char *)*puVar8 != *(char *)pdVar21->fields) ||\n                      (iVar19 = strcmp((char *)*puVar8,(char *)pdVar21->fields), iVar19 != 0)) ||\n                     ((puVar8[1] == 0) != (pdVar21->mark == 0))) goto LAB_0003bc6c;\n                  local_4c = (debug_name *)((int)local_4c + 4);\n                  if (puVar8[1] == 0) {\n                    /* WARNING: Does not return */\n                    pcVar16 = (code *)invalidInstructionException();\n                    (*pcVar16)();\n                  }\n                }\n                goto LAB_0003c14c;\n              }\n              goto LAB_0003c016;\n            }\n            ppdVar13 = pdVar21->baseclasses;\n            iVar19 = 0;\n            while( true ) {\n              puVar8 = *(undefined4 **)((int)ppdVar12 + iVar19);\n              puVar9 = *(undefined4 **)((int)ppdVar13 + iVar19);\n              if (puVar8 == (undefined4 *)0x0) break;\n              if ((((puVar9 == (undefined4 *)0x0) || (puVar8[1] != puVar9[1])) ||\n                  (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3])) goto LAB_0003bc6c;\n              iVar19 = iVar19 + 4;\n              bVar22 = debug_type_samep(info,(debug_type_s *)*puVar8,(debug_type_s *)*puVar9);\n              if (bVar22 == 0) goto LAB_0003bc6c;\n            }\n            if (puVar9 == (undefined4 *)0x0) goto LAB_0003c0bd;\n          }\n        }\n        else {\n          while( true ) {\n            puVar8 = *(undefined4 **)((int)ppdVar7 + local_48);\n            puVar9 = *(undefined4 **)((int)ppdVar6 + local_48);\n            if (puVar8 == (undefined4 *)0x0) break;\n            if (puVar9 == (undefined4 *)0x0) goto LAB_0003bc6c;\n            __s2 = (char *)*puVar9;\n            __s1 = (char *)*puVar8;\n            if (((*__s1 != *__s2) || (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3]))\n            goto LAB_0003bc6c;\n            if (puVar8[3] == 0) {\n              if ((char *)puVar8[4] != (char *)puVar9[4]) goto LAB_0003bc6c;\n              if (puVar8[5] != puVar9[5]) {\n                uVar20 = 0;\n                goto LAB_0003bc14;\n              }\n            }\n            else {\n              iVar19 = strcmp((char *)puVar8[4],(char *)puVar9[4]);\n              if (iVar19 != 0) goto LAB_0003bc6c;\n            }\n            iVar19 = strcmp(__s1,__s2);\n            if (iVar19 != 0) goto LAB_0003bc6c;\n            pdVar17 = debug_get_real_type(info,(debug_type_conflict)puVar9[1],\n                                          (debug_type_real_list *)0x0);\n            pdVar18 = debug_get_real_type(info,(debug_type_conflict)puVar8[1],\n                                          (debug_type_real_list *)0x0);\n            bVar22 = debug_type_samep(info,pdVar18,pdVar17);\n            local_48 = local_48 + 4;\n            if (bVar22 == 0) goto LAB_0003bc6c;\n          }\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0003c02c;\n        }\n      }\n    }\n    break;\n  case DEBUG_KIND_ENUM:\n    pdVar10 = (t1->u).knamed;\n    pdVar11 = (t2->u).knamed;\n    if (pdVar10 == (debug_named_type *)0x0) {\n      uVar20 = (uint)(pdVar11 == (debug_named_type *)0x0);\n      goto LAB_0003bc14;\n    }\n    if (pdVar11 != (debug_named_type *)0x0) {\n      local_44 = pdVar10->name;\n      local_4c = pdVar11->name;\n      pdVar29 = pdVar10->type;\n      pdVar26 = pdVar11->type;\n      __s1_00 = local_44->next;\n      __s2_00 = local_4c->next;\n      if (__s1_00 == (debug_name *)0x0) {\nLAB_0003c1d9:\n        uVar20 = (uint)(local_4c->next == (debug_name *)0x0);\n        goto LAB_0003bc14;\n      }\n      if ((((__s2_00 != (debug_name *)0x0) && (*(char *)&__s2_00->next == *(char *)&__s1_00->next))\n          && (pdVar26->size == pdVar29->size)) && (pdVar26->kind == pdVar29->kind)) {\n        while (iVar19 = strcmp((char *)__s1_00,(char *)__s2_00), iVar19 == 0) {\n          local_44 = (debug_name *)&local_44->name;\n          ppdVar28 = &pdVar29->pointer;\n          ppdVar25 = &pdVar26->pointer;\n          local_4c = (debug_name *)&local_4c->name;\n          __s1_00 = *(debug_name **)local_44;\n          __s2_00 = *(debug_name **)local_4c;\n          if (__s1_00 == (debug_name *)0x0) goto LAB_0003c1d9;\n          if (((__s2_00 == (debug_name *)0x0) ||\n              (*(char *)&__s1_00->next != *(char *)&__s2_00->next)) ||\n             (paVar1 = &pdVar29->u, paVar2 = &pdVar26->u, pdVar26 = (debug_type_conflict)ppdVar25,\n             pdVar29 = (debug_type_conflict)ppdVar28,\n             paVar1->kindirect != paVar2->kindirect || *ppdVar28 != *ppdVar25)) break;\n        }\n        uVar20 = 0;\n        goto LAB_0003bc14;\n      }\n    }\n    break;\n  case DEBUG_KIND_POINTER:\n  case DEBUG_KIND_REFERENCE:\n  case DEBUG_KIND_CONST:\n  case DEBUG_KIND_VOLATILE:\n    uVar20 = debug_type_samep(info,(t1->u).kpointer,(t2->u).kpointer);\n    goto LAB_0003bc14;\n  case DEBUG_KIND_FUNCTION:\n    if ((((t1->u).kfunction)->varargs == ((t2->u).kfunction)->varargs) &&\n       (bVar22 = debug_type_samep(info,((t1->u).kfunction)->return_type,\n                                  ((t2->u).kfunction)->return_type), bVar22 != 0)) {\n      ppdVar27 = ((t1->u).kfunction)->arg_types;\n      ppdVar24 = ((t2->u).kfunction)->arg_types;\n      if ((ppdVar27 == (debug_type_conflict *)0x0) == (ppdVar24 == (debug_type_conflict *)0x0)) {\n        if (ppdVar27 == (debug_type_conflict *)0x0) goto LAB_0003c016;\n        while( true ) {\n          if (*ppdVar27 == (debug_type_s *)0x0) break;\n          if (*ppdVar24 == (debug_type_s *)0x0) goto LAB_0003bc6c;\n          bVar22 = debug_type_samep(info,*ppdVar27,*ppdVar24);\n          if (bVar22 == 0) goto LAB_0003c004;\n          ppdVar27 = ppdVar27 + 1;\n          ppdVar24 = ppdVar24 + 1;\n        }\n        goto LAB_0003c00d;\n      }\n    }\n    break;\n  case DEBUG_KIND_RANGE:\n    pdVar21 = (debug_class_type *)(t1->u).kmethod;\n    pdVar23 = (debug_class_type *)(t2->u).kmethod;\n    if (((pdVar21->id == pdVar23->id) &&\n        ((debug_type_conflict *)pdVar21->mark == (debug_type_conflict *)pdVar23->mark)) &&\n       (pdVar21->methods == pdVar23->methods)) {\n      if (pdVar21->baseclasses != pdVar23->baseclasses) {\n        uVar20 = 0;\n        goto LAB_0003bc14;\n      }\nLAB_0003be6e:\n      pdVar17 = (debug_type_s *)pdVar23->fields;\n      pdVar18 = (debug_type_s *)pdVar21->fields;\nLAB_0003be48:\n      bVar22 = debug_type_samep(info,pdVar18,pdVar17);\n      uVar20 = (uint)(bVar22 != 0);\n      goto LAB_0003bc14;\n    }\n    break;\n  case DEBUG_KIND_ARRAY:\n    pdVar21 = (t1->u).kclass;\n    pdVar23 = (t2->u).kclass;\n    if (((pdVar21->baseclasses == pdVar23->baseclasses) && (pdVar21->id == pdVar23->id)) &&\n       ((pdVar21->vptrbase == pdVar23->vptrbase && (pdVar21->methods == pdVar23->methods)))) {\n      if ((debug_type_conflict)pdVar21[1].fields != (debug_type_conflict)pdVar23[1].fields) {\n        uVar20 = 0;\n        goto LAB_0003bc14;\n      }\n      goto LAB_0003be6e;\n    }\n    break;\n  case DEBUG_KIND_SET:\n    pdVar23 = (debug_class_type *)(t2->u).kfunction;\n    pdVar21 = (debug_class_type *)(t1->u).kfunction;\n    if ((debug_type_conflict *)pdVar21->mark == (debug_type_conflict *)pdVar23->mark)\n    goto LAB_0003be6e;\n    break;\n  case DEBUG_KIND_OFFSET:\n    bVar22 = debug_type_samep(info,((t1->u).kfunction)->return_type,((t2->u).kfunction)->return_type\n                             );\n    if (bVar22 != 0) {\n      pdVar17 = ((t2->u).karray)->range_type;\n      pdVar18 = ((t1->u).karray)->range_type;\n      goto LAB_0003be48;\n    }\n    break;\n  case DEBUG_KIND_METHOD:\n    if (((((t1->u).kmethod)->varargs == ((t2->u).kmethod)->varargs) &&\n        (bVar22 = debug_type_samep(info,((t1->u).kmethod)->return_type,\n                                   ((t2->u).kmethod)->return_type), bVar22 != 0)) &&\n       (bVar22 = debug_type_samep(info,((t1->u).karray)->range_type,((t2->u).karray)->range_type),\n       bVar22 != 0)) {\n      ppdVar27 = ((t1->u).kmethod)->arg_types;\n      ppdVar24 = ((t2->u).kmethod)->arg_types;\n      if ((ppdVar27 == (debug_type_conflict *)0x0) == (ppdVar24 == (debug_type_conflict *)0x0)) {\n        if (ppdVar27 == (debug_type_conflict *)0x0) goto LAB_0003c016;\n        while( true ) {\n          if (*ppdVar27 == (debug_type_s *)0x0) break;\n          if (*ppdVar24 == (debug_type_s *)0x0) goto LAB_0003bc6c;\n          bVar22 = debug_type_samep(info,*ppdVar27,*ppdVar24);\n          if (bVar22 == 0) goto LAB_0003c004;\n          ppdVar27 = ppdVar27 + 1;\n          ppdVar24 = ppdVar24 + 1;\n        }\n        goto LAB_0003c00d;\n      }\n    }\n    break;\n  case DEBUG_KIND_NAMED:\n  case DEBUG_KIND_TAGGED:\n    pdVar10 = (t2->u).knamed;\n    pdVar11 = (t1->u).knamed;\n    iVar19 = strcmp(pdVar11->name->name,pdVar10->name->name);\n    if (iVar19 == 0) {\n      pdVar17 = pdVar10->type;\n      pdVar18 = pdVar11->type;\n      goto LAB_0003be48;\n    }\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }" switch (parenthesized_expression "(dVar3)" ( identifier )) (compound_statement "{\n  case DEBUG_KIND_STRUCT:\n  case DEBUG_KIND_UNION:\n  case DEBUG_KIND_CLASS:\n  case DEBUG_KIND_UNION_CLASS:\n    pdVar23 = (t1->u).kclass;\n    pdVar21 = (t2->u).kclass;\n    if (pdVar23 == (debug_class_type *)0x0) {\nLAB_0003c14c:\n      uVar20 = (uint)(pdVar21 == (debug_class_type *)0x0);\n      goto LAB_0003bc14;\n    }\n    if (pdVar21 != (debug_class_type *)0x0) {\n      if ((info->base_id < pdVar23->id) && (pdVar23->id == pdVar21->id)) goto LAB_0003c016;\n      ppdVar6 = pdVar21->fields;\n      ppdVar7 = pdVar23->fields;\n      if (((ppdVar7 == (debug_field *)0x0) == (ppdVar6 == (debug_field *)0x0)) &&\n         ((((pdVar23->baseclasses == (debug_baseclass *)0x0) ==\n            (pdVar21->baseclasses == (debug_baseclass *)0x0) &&\n           ((pdVar23->methods == (debug_method *)0x0) == (pdVar21->methods == (debug_method *)0x0)))\n          && ((pdVar23->vptrbase == (debug_type_conflict)0x0) ==\n              (pdVar21->vptrbase == (debug_type_conflict)0x0))))) {\n        local_48 = 0;\n        if (ppdVar7 == (debug_field *)0x0) {\nLAB_0003c02c:\n          if ((pdVar23->vptrbase == (debug_type_s *)0x0) ||\n             (bVar22 = debug_type_samep(info,pdVar23->vptrbase,pdVar21->vptrbase), bVar22 != 0)) {\n            ppdVar12 = pdVar23->baseclasses;\n            if (ppdVar12 == (debug_baseclass *)0x0) {\nLAB_0003c0bd:\n              ppdVar14 = pdVar23->methods;\n              if (ppdVar14 != (debug_method *)0x0) {\n                ppdVar15 = pdVar21->methods;\n                local_4c = (debug_name *)0x0;\n                while( true ) {\n                  puVar8 = *(undefined4 **)((int)ppdVar14 + (int)local_4c);\n                  pdVar21 = *(debug_class_type **)((int)ppdVar15 + (int)local_4c);\n                  if (puVar8 == (undefined4 *)0x0) break;\n                  if (pdVar21 == (debug_class_type *)0x0) goto LAB_0003bc6c;\n                  if (((*(char *)*puVar8 != *(char *)pdVar21->fields) ||\n                      (iVar19 = strcmp((char *)*puVar8,(char *)pdVar21->fields), iVar19 != 0)) ||\n                     ((puVar8[1] == 0) != (pdVar21->mark == 0))) goto LAB_0003bc6c;\n                  local_4c = (debug_name *)((int)local_4c + 4);\n                  if (puVar8[1] == 0) {\n                    /* WARNING: Does not return */\n                    pcVar16 = (code *)invalidInstructionException();\n                    (*pcVar16)();\n                  }\n                }\n                goto LAB_0003c14c;\n              }\n              goto LAB_0003c016;\n            }\n            ppdVar13 = pdVar21->baseclasses;\n            iVar19 = 0;\n            while( true ) {\n              puVar8 = *(undefined4 **)((int)ppdVar12 + iVar19);\n              puVar9 = *(undefined4 **)((int)ppdVar13 + iVar19);\n              if (puVar8 == (undefined4 *)0x0) break;\n              if ((((puVar9 == (undefined4 *)0x0) || (puVar8[1] != puVar9[1])) ||\n                  (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3])) goto LAB_0003bc6c;\n              iVar19 = iVar19 + 4;\n              bVar22 = debug_type_samep(info,(debug_type_s *)*puVar8,(debug_type_s *)*puVar9);\n              if (bVar22 == 0) goto LAB_0003bc6c;\n            }\n            if (puVar9 == (undefined4 *)0x0) goto LAB_0003c0bd;\n          }\n        }\n        else {\n          while( true ) {\n            puVar8 = *(undefined4 **)((int)ppdVar7 + local_48);\n            puVar9 = *(undefined4 **)((int)ppdVar6 + local_48);\n            if (puVar8 == (undefined4 *)0x0) break;\n            if (puVar9 == (undefined4 *)0x0) goto LAB_0003bc6c;\n            __s2 = (char *)*puVar9;\n            __s1 = (char *)*puVar8;\n            if (((*__s1 != *__s2) || (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3]))\n            goto LAB_0003bc6c;\n            if (puVar8[3] == 0) {\n              if ((char *)puVar8[4] != (char *)puVar9[4]) goto LAB_0003bc6c;\n              if (puVar8[5] != puVar9[5]) {\n                uVar20 = 0;\n                goto LAB_0003bc14;\n              }\n            }\n            else {\n              iVar19 = strcmp((char *)puVar8[4],(char *)puVar9[4]);\n              if (iVar19 != 0) goto LAB_0003bc6c;\n            }\n            iVar19 = strcmp(__s1,__s2);\n            if (iVar19 != 0) goto LAB_0003bc6c;\n            pdVar17 = debug_get_real_type(info,(debug_type_conflict)puVar9[1],\n                                          (debug_type_real_list *)0x0);\n            pdVar18 = debug_get_real_type(info,(debug_type_conflict)puVar8[1],\n                                          (debug_type_real_list *)0x0);\n            bVar22 = debug_type_samep(info,pdVar18,pdVar17);\n            local_48 = local_48 + 4;\n            if (bVar22 == 0) goto LAB_0003bc6c;\n          }\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0003c02c;\n        }\n      }\n    }\n    break;\n  case DEBUG_KIND_ENUM:\n    pdVar10 = (t1->u).knamed;\n    pdVar11 = (t2->u).knamed;\n    if (pdVar10 == (debug_named_type *)0x0) {\n      uVar20 = (uint)(pdVar11 == (debug_named_type *)0x0);\n      goto LAB_0003bc14;\n    }\n    if (pdVar11 != (debug_named_type *)0x0) {\n      local_44 = pdVar10->name;\n      local_4c = pdVar11->name;\n      pdVar29 = pdVar10->type;\n      pdVar26 = pdVar11->type;\n      __s1_00 = local_44->next;\n      __s2_00 = local_4c->next;\n      if (__s1_00 == (debug_name *)0x0) {\nLAB_0003c1d9:\n        uVar20 = (uint)(local_4c->next == (debug_name *)0x0);\n        goto LAB_0003bc14;\n      }\n      if ((((__s2_00 != (debug_name *)0x0) && (*(char *)&__s2_00->next == *(char *)&__s1_00->next))\n          && (pdVar26->size == pdVar29->size)) && (pdVar26->kind == pdVar29->kind)) {\n        while (iVar19 = strcmp((char *)__s1_00,(char *)__s2_00), iVar19 == 0) {\n          local_44 = (debug_name *)&local_44->name;\n          ppdVar28 = &pdVar29->pointer;\n          ppdVar25 = &pdVar26->pointer;\n          local_4c = (debug_name *)&local_4c->name;\n          __s1_00 = *(debug_name **)local_44;\n          __s2_00 = *(debug_name **)local_4c;\n          if (__s1_00 == (debug_name *)0x0) goto LAB_0003c1d9;\n          if (((__s2_00 == (debug_name *)0x0) ||\n              (*(char *)&__s1_00->next != *(char *)&__s2_00->next)) ||\n             (paVar1 = &pdVar29->u, paVar2 = &pdVar26->u, pdVar26 = (debug_type_conflict)ppdVar25,\n             pdVar29 = (debug_type_conflict)ppdVar28,\n             paVar1->kindirect != paVar2->kindirect || *ppdVar28 != *ppdVar25)) break;\n        }\n        uVar20 = 0;\n        goto LAB_0003bc14;\n      }\n    }\n    break;\n  case DEBUG_KIND_POINTER:\n  case DEBUG_KIND_REFERENCE:\n  case DEBUG_KIND_CONST:\n  case DEBUG_KIND_VOLATILE:\n    uVar20 = debug_type_samep(info,(t1->u).kpointer,(t2->u).kpointer);\n    goto LAB_0003bc14;\n  case DEBUG_KIND_FUNCTION:\n    if ((((t1->u).kfunction)->varargs == ((t2->u).kfunction)->varargs) &&\n       (bVar22 = debug_type_samep(info,((t1->u).kfunction)->return_type,\n                                  ((t2->u).kfunction)->return_type), bVar22 != 0)) {\n      ppdVar27 = ((t1->u).kfunction)->arg_types;\n      ppdVar24 = ((t2->u).kfunction)->arg_types;\n      if ((ppdVar27 == (debug_type_conflict *)0x0) == (ppdVar24 == (debug_type_conflict *)0x0)) {\n        if (ppdVar27 == (debug_type_conflict *)0x0) goto LAB_0003c016;\n        while( true ) {\n          if (*ppdVar27 == (debug_type_s *)0x0) break;\n          if (*ppdVar24 == (debug_type_s *)0x0) goto LAB_0003bc6c;\n          bVar22 = debug_type_samep(info,*ppdVar27,*ppdVar24);\n          if (bVar22 == 0) goto LAB_0003c004;\n          ppdVar27 = ppdVar27 + 1;\n          ppdVar24 = ppdVar24 + 1;\n        }\n        goto LAB_0003c00d;\n      }\n    }\n    break;\n  case DEBUG_KIND_RANGE:\n    pdVar21 = (debug_class_type *)(t1->u).kmethod;\n    pdVar23 = (debug_class_type *)(t2->u).kmethod;\n    if (((pdVar21->id == pdVar23->id) &&\n        ((debug_type_conflict *)pdVar21->mark == (debug_type_conflict *)pdVar23->mark)) &&\n       (pdVar21->methods == pdVar23->methods)) {\n      if (pdVar21->baseclasses != pdVar23->baseclasses) {\n        uVar20 = 0;\n        goto LAB_0003bc14;\n      }\nLAB_0003be6e:\n      pdVar17 = (debug_type_s *)pdVar23->fields;\n      pdVar18 = (debug_type_s *)pdVar21->fields;\nLAB_0003be48:\n      bVar22 = debug_type_samep(info,pdVar18,pdVar17);\n      uVar20 = (uint)(bVar22 != 0);\n      goto LAB_0003bc14;\n    }\n    break;\n  case DEBUG_KIND_ARRAY:\n    pdVar21 = (t1->u).kclass;\n    pdVar23 = (t2->u).kclass;\n    if (((pdVar21->baseclasses == pdVar23->baseclasses) && (pdVar21->id == pdVar23->id)) &&\n       ((pdVar21->vptrbase == pdVar23->vptrbase && (pdVar21->methods == pdVar23->methods)))) {\n      if ((debug_type_conflict)pdVar21[1].fields != (debug_type_conflict)pdVar23[1].fields) {\n        uVar20 = 0;\n        goto LAB_0003bc14;\n      }\n      goto LAB_0003be6e;\n    }\n    break;\n  case DEBUG_KIND_SET:\n    pdVar23 = (debug_class_type *)(t2->u).kfunction;\n    pdVar21 = (debug_class_type *)(t1->u).kfunction;\n    if ((debug_type_conflict *)pdVar21->mark == (debug_type_conflict *)pdVar23->mark)\n    goto LAB_0003be6e;\n    break;\n  case DEBUG_KIND_OFFSET:\n    bVar22 = debug_type_samep(info,((t1->u).kfunction)->return_type,((t2->u).kfunction)->return_type\n                             );\n    if (bVar22 != 0) {\n      pdVar17 = ((t2->u).karray)->range_type;\n      pdVar18 = ((t1->u).karray)->range_type;\n      goto LAB_0003be48;\n    }\n    break;\n  case DEBUG_KIND_METHOD:\n    if (((((t1->u).kmethod)->varargs == ((t2->u).kmethod)->varargs) &&\n        (bVar22 = debug_type_samep(info,((t1->u).kmethod)->return_type,\n                                   ((t2->u).kmethod)->return_type), bVar22 != 0)) &&\n       (bVar22 = debug_type_samep(info,((t1->u).karray)->range_type,((t2->u).karray)->range_type),\n       bVar22 != 0)) {\n      ppdVar27 = ((t1->u).kmethod)->arg_types;\n      ppdVar24 = ((t2->u).kmethod)->arg_types;\n      if ((ppdVar27 == (debug_type_conflict *)0x0) == (ppdVar24 == (debug_type_conflict *)0x0)) {\n        if (ppdVar27 == (debug_type_conflict *)0x0) goto LAB_0003c016;\n        while( true ) {\n          if (*ppdVar27 == (debug_type_s *)0x0) break;\n          if (*ppdVar24 == (debug_type_s *)0x0) goto LAB_0003bc6c;\n          bVar22 = debug_type_samep(info,*ppdVar27,*ppdVar24);\n          if (bVar22 == 0) goto LAB_0003c004;\n          ppdVar27 = ppdVar27 + 1;\n          ppdVar24 = ppdVar24 + 1;\n        }\n        goto LAB_0003c00d;\n      }\n    }\n    break;\n  case DEBUG_KIND_NAMED:\n  case DEBUG_KIND_TAGGED:\n    pdVar10 = (t2->u).knamed;\n    pdVar11 = (t1->u).knamed;\n    iVar19 = strcmp(pdVar11->name->name,pdVar10->name->name);\n    if (iVar19 == 0) {\n      pdVar17 = pdVar10->type;\n      pdVar18 = pdVar11->type;\n      goto LAB_0003be48;\n    }\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }" { (case_statement "case DEBUG_KIND_STRUCT:" case identifier :) (case_statement "case DEBUG_KIND_UNION:" case identifier :) (case_statement "case DEBUG_KIND_CLASS:" case identifier :) (case_statement "case DEBUG_KIND_UNION_CLASS:\n    pdVar23 = (t1->u).kclass;\n    pdVar21 = (t2->u).kclass;\n    if (pdVar23 == (debug_class_type *)0x0) {\nLAB_0003c14c:\n      uVar20 = (uint)(pdVar21 == (debug_class_type *)0x0);\n      goto LAB_0003bc14;\n    }\n    if (pdVar21 != (debug_class_type *)0x0) {\n      if ((info->base_id < pdVar23->id) && (pdVar23->id == pdVar21->id)) goto LAB_0003c016;\n      ppdVar6 = pdVar21->fields;\n      ppdVar7 = pdVar23->fields;\n      if (((ppdVar7 == (debug_field *)0x0) == (ppdVar6 == (debug_field *)0x0)) &&\n         ((((pdVar23->baseclasses == (debug_baseclass *)0x0) ==\n            (pdVar21->baseclasses == (debug_baseclass *)0x0) &&\n           ((pdVar23->methods == (debug_method *)0x0) == (pdVar21->methods == (debug_method *)0x0)))\n          && ((pdVar23->vptrbase == (debug_type_conflict)0x0) ==\n              (pdVar21->vptrbase == (debug_type_conflict)0x0))))) {\n        local_48 = 0;\n        if (ppdVar7 == (debug_field *)0x0) {\nLAB_0003c02c:\n          if ((pdVar23->vptrbase == (debug_type_s *)0x0) ||\n             (bVar22 = debug_type_samep(info,pdVar23->vptrbase,pdVar21->vptrbase), bVar22 != 0)) {\n            ppdVar12 = pdVar23->baseclasses;\n            if (ppdVar12 == (debug_baseclass *)0x0) {\nLAB_0003c0bd:\n              ppdVar14 = pdVar23->methods;\n              if (ppdVar14 != (debug_method *)0x0) {\n                ppdVar15 = pdVar21->methods;\n                local_4c = (debug_name *)0x0;\n                while( true ) {\n                  puVar8 = *(undefined4 **)((int)ppdVar14 + (int)local_4c);\n                  pdVar21 = *(debug_class_type **)((int)ppdVar15 + (int)local_4c);\n                  if (puVar8 == (undefined4 *)0x0) break;\n                  if (pdVar21 == (debug_class_type *)0x0) goto LAB_0003bc6c;\n                  if (((*(char *)*puVar8 != *(char *)pdVar21->fields) ||\n                      (iVar19 = strcmp((char *)*puVar8,(char *)pdVar21->fields), iVar19 != 0)) ||\n                     ((puVar8[1] == 0) != (pdVar21->mark == 0))) goto LAB_0003bc6c;\n                  local_4c = (debug_name *)((int)local_4c + 4);\n                  if (puVar8[1] == 0) {\n                    /* WARNING: Does not return */\n                    pcVar16 = (code *)invalidInstructionException();\n                    (*pcVar16)();\n                  }\n                }\n                goto LAB_0003c14c;\n              }\n              goto LAB_0003c016;\n            }\n            ppdVar13 = pdVar21->baseclasses;\n            iVar19 = 0;\n            while( true ) {\n              puVar8 = *(undefined4 **)((int)ppdVar12 + iVar19);\n              puVar9 = *(undefined4 **)((int)ppdVar13 + iVar19);\n              if (puVar8 == (undefined4 *)0x0) break;\n              if ((((puVar9 == (undefined4 *)0x0) || (puVar8[1] != puVar9[1])) ||\n                  (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3])) goto LAB_0003bc6c;\n              iVar19 = iVar19 + 4;\n              bVar22 = debug_type_samep(info,(debug_type_s *)*puVar8,(debug_type_s *)*puVar9);\n              if (bVar22 == 0) goto LAB_0003bc6c;\n            }\n            if (puVar9 == (undefined4 *)0x0) goto LAB_0003c0bd;\n          }\n        }\n        else {\n          while( true ) {\n            puVar8 = *(undefined4 **)((int)ppdVar7 + local_48);\n            puVar9 = *(undefined4 **)((int)ppdVar6 + local_48);\n            if (puVar8 == (undefined4 *)0x0) break;\n            if (puVar9 == (undefined4 *)0x0) goto LAB_0003bc6c;\n            __s2 = (char *)*puVar9;\n            __s1 = (char *)*puVar8;\n            if (((*__s1 != *__s2) || (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3]))\n            goto LAB_0003bc6c;\n            if (puVar8[3] == 0) {\n              if ((char *)puVar8[4] != (char *)puVar9[4]) goto LAB_0003bc6c;\n              if (puVar8[5] != puVar9[5]) {\n                uVar20 = 0;\n                goto LAB_0003bc14;\n              }\n            }\n            else {\n              iVar19 = strcmp((char *)puVar8[4],(char *)puVar9[4]);\n              if (iVar19 != 0) goto LAB_0003bc6c;\n            }\n            iVar19 = strcmp(__s1,__s2);\n            if (iVar19 != 0) goto LAB_0003bc6c;\n            pdVar17 = debug_get_real_type(info,(debug_type_conflict)puVar9[1],\n                                          (debug_type_real_list *)0x0);\n            pdVar18 = debug_get_real_type(info,(debug_type_conflict)puVar8[1],\n                                          (debug_type_real_list *)0x0);\n            bVar22 = debug_type_samep(info,pdVar18,pdVar17);\n            local_48 = local_48 + 4;\n            if (bVar22 == 0) goto LAB_0003bc6c;\n          }\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0003c02c;\n        }\n      }\n    }\n    break;" case identifier : (expression_statement "pdVar23 = (t1->u).kclass;" (assignment_expression "pdVar23 = (t1->u).kclass" identifier = (field_expression "(t1->u).kclass" (parenthesized_expression "(t1->u)" ( (field_expression "t1->u" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pdVar21 = (t2->u).kclass;" (assignment_expression "pdVar21 = (t2->u).kclass" identifier = (field_expression "(t2->u).kclass" (parenthesized_expression "(t2->u)" ( (field_expression "t2->u" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (pdVar23 == (debug_class_type *)0x0) {\nLAB_0003c14c:\n      uVar20 = (uint)(pdVar21 == (debug_class_type *)0x0);\n      goto LAB_0003bc14;\n    }" if (parenthesized_expression "(pdVar23 == (debug_class_type *)0x0)" ( (binary_expression "pdVar23 == (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 "{\nLAB_0003c14c:\n      uVar20 = (uint)(pdVar21 == (debug_class_type *)0x0);\n      goto LAB_0003bc14;\n    }" { (labeled_statement "LAB_0003c14c:\n      uVar20 = (uint)(pdVar21 == (debug_class_type *)0x0);" statement_identifier : (expression_statement "uVar20 = (uint)(pdVar21 == (debug_class_type *)0x0);" (assignment_expression "uVar20 = (uint)(pdVar21 == (debug_class_type *)0x0)" identifier = (call_expression "(uint)(pdVar21 == (debug_class_type *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pdVar21 == (debug_class_type *)0x0)" ( (binary_expression "pdVar21 == (debug_class_type *)0x0" identifier == (cast_expression "(debug_class_type *)0x0" ( (type_descriptor "debug_class_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )))) ;)) (goto_statement "goto LAB_0003bc14;" goto statement_identifier ;) })) (if_statement "if (pdVar21 != (debug_class_type *)0x0) {\n      if ((info->base_id < pdVar23->id) && (pdVar23->id == pdVar21->id)) goto LAB_0003c016;\n      ppdVar6 = pdVar21->fields;\n      ppdVar7 = pdVar23->fields;\n      if (((ppdVar7 == (debug_field *)0x0) == (ppdVar6 == (debug_field *)0x0)) &&\n         ((((pdVar23->baseclasses == (debug_baseclass *)0x0) ==\n            (pdVar21->baseclasses == (debug_baseclass *)0x0) &&\n           ((pdVar23->methods == (debug_method *)0x0) == (pdVar21->methods == (debug_method *)0x0)))\n          && ((pdVar23->vptrbase == (debug_type_conflict)0x0) ==\n              (pdVar21->vptrbase == (debug_type_conflict)0x0))))) {\n        local_48 = 0;\n        if (ppdVar7 == (debug_field *)0x0) {\nLAB_0003c02c:\n          if ((pdVar23->vptrbase == (debug_type_s *)0x0) ||\n             (bVar22 = debug_type_samep(info,pdVar23->vptrbase,pdVar21->vptrbase), bVar22 != 0)) {\n            ppdVar12 = pdVar23->baseclasses;\n            if (ppdVar12 == (debug_baseclass *)0x0) {\nLAB_0003c0bd:\n              ppdVar14 = pdVar23->methods;\n              if (ppdVar14 != (debug_method *)0x0) {\n                ppdVar15 = pdVar21->methods;\n                local_4c = (debug_name *)0x0;\n                while( true ) {\n                  puVar8 = *(undefined4 **)((int)ppdVar14 + (int)local_4c);\n                  pdVar21 = *(debug_class_type **)((int)ppdVar15 + (int)local_4c);\n                  if (puVar8 == (undefined4 *)0x0) break;\n                  if (pdVar21 == (debug_class_type *)0x0) goto LAB_0003bc6c;\n                  if (((*(char *)*puVar8 != *(char *)pdVar21->fields) ||\n                      (iVar19 = strcmp((char *)*puVar8,(char *)pdVar21->fields), iVar19 != 0)) ||\n                     ((puVar8[1] == 0) != (pdVar21->mark == 0))) goto LAB_0003bc6c;\n                  local_4c = (debug_name *)((int)local_4c + 4);\n                  if (puVar8[1] == 0) {\n                    /* WARNING: Does not return */\n                    pcVar16 = (code *)invalidInstructionException();\n                    (*pcVar16)();\n                  }\n                }\n                goto LAB_0003c14c;\n              }\n              goto LAB_0003c016;\n            }\n            ppdVar13 = pdVar21->baseclasses;\n            iVar19 = 0;\n            while( true ) {\n              puVar8 = *(undefined4 **)((int)ppdVar12 + iVar19);\n              puVar9 = *(undefined4 **)((int)ppdVar13 + iVar19);\n              if (puVar8 == (undefined4 *)0x0) break;\n              if ((((puVar9 == (undefined4 *)0x0) || (puVar8[1] != puVar9[1])) ||\n                  (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3])) goto LAB_0003bc6c;\n              iVar19 = iVar19 + 4;\n              bVar22 = debug_type_samep(info,(debug_type_s *)*puVar8,(debug_type_s *)*puVar9);\n              if (bVar22 == 0) goto LAB_0003bc6c;\n            }\n            if (puVar9 == (undefined4 *)0x0) goto LAB_0003c0bd;\n          }\n        }\n        else {\n          while( true ) {\n            puVar8 = *(undefined4 **)((int)ppdVar7 + local_48);\n            puVar9 = *(undefined4 **)((int)ppdVar6 + local_48);\n            if (puVar8 == (undefined4 *)0x0) break;\n            if (puVar9 == (undefined4 *)0x0) goto LAB_0003bc6c;\n            __s2 = (char *)*puVar9;\n            __s1 = (char *)*puVar8;\n            if (((*__s1 != *__s2) || (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3]))\n            goto LAB_0003bc6c;\n            if (puVar8[3] == 0) {\n              if ((char *)puVar8[4] != (char *)puVar9[4]) goto LAB_0003bc6c;\n              if (puVar8[5] != puVar9[5]) {\n                uVar20 = 0;\n                goto LAB_0003bc14;\n              }\n            }\n            else {\n              iVar19 = strcmp((char *)puVar8[4],(char *)puVar9[4]);\n              if (iVar19 != 0) goto LAB_0003bc6c;\n            }\n            iVar19 = strcmp(__s1,__s2);\n            if (iVar19 != 0) goto LAB_0003bc6c;\n            pdVar17 = debug_get_real_type(info,(debug_type_conflict)puVar9[1],\n                                          (debug_type_real_list *)0x0);\n            pdVar18 = debug_get_real_type(info,(debug_type_conflict)puVar8[1],\n                                          (debug_type_real_list *)0x0);\n            bVar22 = debug_type_samep(info,pdVar18,pdVar17);\n            local_48 = local_48 + 4;\n            if (bVar22 == 0) goto LAB_0003bc6c;\n          }\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0003c02c;\n        }\n      }\n    }" if (parenthesized_expression "(pdVar21 != (debug_class_type *)0x0)" ( (binary_expression "pdVar21 != (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 ((info->base_id < pdVar23->id) && (pdVar23->id == pdVar21->id)) goto LAB_0003c016;\n      ppdVar6 = pdVar21->fields;\n      ppdVar7 = pdVar23->fields;\n      if (((ppdVar7 == (debug_field *)0x0) == (ppdVar6 == (debug_field *)0x0)) &&\n         ((((pdVar23->baseclasses == (debug_baseclass *)0x0) ==\n            (pdVar21->baseclasses == (debug_baseclass *)0x0) &&\n           ((pdVar23->methods == (debug_method *)0x0) == (pdVar21->methods == (debug_method *)0x0)))\n          && ((pdVar23->vptrbase == (debug_type_conflict)0x0) ==\n              (pdVar21->vptrbase == (debug_type_conflict)0x0))))) {\n        local_48 = 0;\n        if (ppdVar7 == (debug_field *)0x0) {\nLAB_0003c02c:\n          if ((pdVar23->vptrbase == (debug_type_s *)0x0) ||\n             (bVar22 = debug_type_samep(info,pdVar23->vptrbase,pdVar21->vptrbase), bVar22 != 0)) {\n            ppdVar12 = pdVar23->baseclasses;\n            if (ppdVar12 == (debug_baseclass *)0x0) {\nLAB_0003c0bd:\n              ppdVar14 = pdVar23->methods;\n              if (ppdVar14 != (debug_method *)0x0) {\n                ppdVar15 = pdVar21->methods;\n                local_4c = (debug_name *)0x0;\n                while( true ) {\n                  puVar8 = *(undefined4 **)((int)ppdVar14 + (int)local_4c);\n                  pdVar21 = *(debug_class_type **)((int)ppdVar15 + (int)local_4c);\n                  if (puVar8 == (undefined4 *)0x0) break;\n                  if (pdVar21 == (debug_class_type *)0x0) goto LAB_0003bc6c;\n                  if (((*(char *)*puVar8 != *(char *)pdVar21->fields) ||\n                      (iVar19 = strcmp((char *)*puVar8,(char *)pdVar21->fields), iVar19 != 0)) ||\n                     ((puVar8[1] == 0) != (pdVar21->mark == 0))) goto LAB_0003bc6c;\n                  local_4c = (debug_name *)((int)local_4c + 4);\n                  if (puVar8[1] == 0) {\n                    /* WARNING: Does not return */\n                    pcVar16 = (code *)invalidInstructionException();\n                    (*pcVar16)();\n                  }\n                }\n                goto LAB_0003c14c;\n              }\n              goto LAB_0003c016;\n            }\n            ppdVar13 = pdVar21->baseclasses;\n            iVar19 = 0;\n            while( true ) {\n              puVar8 = *(undefined4 **)((int)ppdVar12 + iVar19);\n              puVar9 = *(undefined4 **)((int)ppdVar13 + iVar19);\n              if (puVar8 == (undefined4 *)0x0) break;\n              if ((((puVar9 == (undefined4 *)0x0) || (puVar8[1] != puVar9[1])) ||\n                  (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3])) goto LAB_0003bc6c;\n              iVar19 = iVar19 + 4;\n              bVar22 = debug_type_samep(info,(debug_type_s *)*puVar8,(debug_type_s *)*puVar9);\n              if (bVar22 == 0) goto LAB_0003bc6c;\n            }\n            if (puVar9 == (undefined4 *)0x0) goto LAB_0003c0bd;\n          }\n        }\n        else {\n          while( true ) {\n            puVar8 = *(undefined4 **)((int)ppdVar7 + local_48);\n            puVar9 = *(undefined4 **)((int)ppdVar6 + local_48);\n            if (puVar8 == (undefined4 *)0x0) break;\n            if (puVar9 == (undefined4 *)0x0) goto LAB_0003bc6c;\n            __s2 = (char *)*puVar9;\n            __s1 = (char *)*puVar8;\n            if (((*__s1 != *__s2) || (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3]))\n            goto LAB_0003bc6c;\n            if (puVar8[3] == 0) {\n              if ((char *)puVar8[4] != (char *)puVar9[4]) goto LAB_0003bc6c;\n              if (puVar8[5] != puVar9[5]) {\n                uVar20 = 0;\n                goto LAB_0003bc14;\n              }\n            }\n            else {\n              iVar19 = strcmp((char *)puVar8[4],(char *)puVar9[4]);\n              if (iVar19 != 0) goto LAB_0003bc6c;\n            }\n            iVar19 = strcmp(__s1,__s2);\n            if (iVar19 != 0) goto LAB_0003bc6c;\n            pdVar17 = debug_get_real_type(info,(debug_type_conflict)puVar9[1],\n                                          (debug_type_real_list *)0x0);\n            pdVar18 = debug_get_real_type(info,(debug_type_conflict)puVar8[1],\n                                          (debug_type_real_list *)0x0);\n            bVar22 = debug_type_samep(info,pdVar18,pdVar17);\n            local_48 = local_48 + 4;\n            if (bVar22 == 0) goto LAB_0003bc6c;\n          }\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0003c02c;\n        }\n      }\n    }" { (if_statement "if ((info->base_id < pdVar23->id) && (pdVar23->id == pdVar21->id)) goto LAB_0003c016;" if (parenthesized_expression "((info->base_id < pdVar23->id) && (pdVar23->id == pdVar21->id))" ( (binary_expression "(info->base_id < pdVar23->id) && (pdVar23->id == pdVar21->id)" (parenthesized_expression "(info->base_id < pdVar23->id)" ( (binary_expression "info->base_id < pdVar23->id" (field_expression "info->base_id" identifier -> field_identifier) < (field_expression "pdVar23->id" identifier -> field_identifier)) )) && (parenthesized_expression "(pdVar23->id == pdVar21->id)" ( (binary_expression "pdVar23->id == pdVar21->id" (field_expression "pdVar23->id" identifier -> field_identifier) == (field_expression "pdVar21->id" identifier -> field_identifier)) ))) )) (goto_statement "goto LAB_0003c016;" goto statement_identifier ;)) (expression_statement "ppdVar6 = pdVar21->fields;" (assignment_expression "ppdVar6 = pdVar21->fields" identifier = (field_expression "pdVar21->fields" identifier -> field_identifier)) ;) (expression_statement "ppdVar7 = pdVar23->fields;" (assignment_expression "ppdVar7 = pdVar23->fields" identifier = (field_expression "pdVar23->fields" identifier -> field_identifier)) ;) (if_statement "if (((ppdVar7 == (debug_field *)0x0) == (ppdVar6 == (debug_field *)0x0)) &&\n         ((((pdVar23->baseclasses == (debug_baseclass *)0x0) ==\n            (pdVar21->baseclasses == (debug_baseclass *)0x0) &&\n           ((pdVar23->methods == (debug_method *)0x0) == (pdVar21->methods == (debug_method *)0x0)))\n          && ((pdVar23->vptrbase == (debug_type_conflict)0x0) ==\n              (pdVar21->vptrbase == (debug_type_conflict)0x0))))) {\n        local_48 = 0;\n        if (ppdVar7 == (debug_field *)0x0) {\nLAB_0003c02c:\n          if ((pdVar23->vptrbase == (debug_type_s *)0x0) ||\n             (bVar22 = debug_type_samep(info,pdVar23->vptrbase,pdVar21->vptrbase), bVar22 != 0)) {\n            ppdVar12 = pdVar23->baseclasses;\n            if (ppdVar12 == (debug_baseclass *)0x0) {\nLAB_0003c0bd:\n              ppdVar14 = pdVar23->methods;\n              if (ppdVar14 != (debug_method *)0x0) {\n                ppdVar15 = pdVar21->methods;\n                local_4c = (debug_name *)0x0;\n                while( true ) {\n                  puVar8 = *(undefined4 **)((int)ppdVar14 + (int)local_4c);\n                  pdVar21 = *(debug_class_type **)((int)ppdVar15 + (int)local_4c);\n                  if (puVar8 == (undefined4 *)0x0) break;\n                  if (pdVar21 == (debug_class_type *)0x0) goto LAB_0003bc6c;\n                  if (((*(char *)*puVar8 != *(char *)pdVar21->fields) ||\n                      (iVar19 = strcmp((char *)*puVar8,(char *)pdVar21->fields), iVar19 != 0)) ||\n                     ((puVar8[1] == 0) != (pdVar21->mark == 0))) goto LAB_0003bc6c;\n                  local_4c = (debug_name *)((int)local_4c + 4);\n                  if (puVar8[1] == 0) {\n                    /* WARNING: Does not return */\n                    pcVar16 = (code *)invalidInstructionException();\n                    (*pcVar16)();\n                  }\n                }\n                goto LAB_0003c14c;\n              }\n              goto LAB_0003c016;\n            }\n            ppdVar13 = pdVar21->baseclasses;\n            iVar19 = 0;\n            while( true ) {\n              puVar8 = *(undefined4 **)((int)ppdVar12 + iVar19);\n              puVar9 = *(undefined4 **)((int)ppdVar13 + iVar19);\n              if (puVar8 == (undefined4 *)0x0) break;\n              if ((((puVar9 == (undefined4 *)0x0) || (puVar8[1] != puVar9[1])) ||\n                  (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3])) goto LAB_0003bc6c;\n              iVar19 = iVar19 + 4;\n              bVar22 = debug_type_samep(info,(debug_type_s *)*puVar8,(debug_type_s *)*puVar9);\n              if (bVar22 == 0) goto LAB_0003bc6c;\n            }\n            if (puVar9 == (undefined4 *)0x0) goto LAB_0003c0bd;\n          }\n        }\n        else {\n          while( true ) {\n            puVar8 = *(undefined4 **)((int)ppdVar7 + local_48);\n            puVar9 = *(undefined4 **)((int)ppdVar6 + local_48);\n            if (puVar8 == (undefined4 *)0x0) break;\n            if (puVar9 == (undefined4 *)0x0) goto LAB_0003bc6c;\n            __s2 = (char *)*puVar9;\n            __s1 = (char *)*puVar8;\n            if (((*__s1 != *__s2) || (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3]))\n            goto LAB_0003bc6c;\n            if (puVar8[3] == 0) {\n              if ((char *)puVar8[4] != (char *)puVar9[4]) goto LAB_0003bc6c;\n              if (puVar8[5] != puVar9[5]) {\n                uVar20 = 0;\n                goto LAB_0003bc14;\n              }\n            }\n            else {\n              iVar19 = strcmp((char *)puVar8[4],(char *)puVar9[4]);\n              if (iVar19 != 0) goto LAB_0003bc6c;\n            }\n            iVar19 = strcmp(__s1,__s2);\n            if (iVar19 != 0) goto LAB_0003bc6c;\n            pdVar17 = debug_get_real_type(info,(debug_type_conflict)puVar9[1],\n                                          (debug_type_real_list *)0x0);\n            pdVar18 = debug_get_real_type(info,(debug_type_conflict)puVar8[1],\n                                          (debug_type_real_list *)0x0);\n            bVar22 = debug_type_samep(info,pdVar18,pdVar17);\n            local_48 = local_48 + 4;\n            if (bVar22 == 0) goto LAB_0003bc6c;\n          }\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0003c02c;\n        }\n      }" if (parenthesized_expression "(((ppdVar7 == (debug_field *)0x0) == (ppdVar6 == (debug_field *)0x0)) &&\n         ((((pdVar23->baseclasses == (debug_baseclass *)0x0) ==\n            (pdVar21->baseclasses == (debug_baseclass *)0x0) &&\n           ((pdVar23->methods == (debug_method *)0x0) == (pdVar21->methods == (debug_method *)0x0)))\n          && ((pdVar23->vptrbase == (debug_type_conflict)0x0) ==\n              (pdVar21->vptrbase == (debug_type_conflict)0x0)))))" ( (binary_expression "((ppdVar7 == (debug_field *)0x0) == (ppdVar6 == (debug_field *)0x0)) &&\n         ((((pdVar23->baseclasses == (debug_baseclass *)0x0) ==\n            (pdVar21->baseclasses == (debug_baseclass *)0x0) &&\n           ((pdVar23->methods == (debug_method *)0x0) == (pdVar21->methods == (debug_method *)0x0)))\n          && ((pdVar23->vptrbase == (debug_type_conflict)0x0) ==\n              (pdVar21->vptrbase == (debug_type_conflict)0x0))))" (parenthesized_expression "((ppdVar7 == (debug_field *)0x0) == (ppdVar6 == (debug_field *)0x0))" ( (binary_expression "(ppdVar7 == (debug_field *)0x0) == (ppdVar6 == (debug_field *)0x0)" (parenthesized_expression "(ppdVar7 == (debug_field *)0x0)" ( (binary_expression "ppdVar7 == (debug_field *)0x0" identifier == (cast_expression "(debug_field *)0x0" ( (type_descriptor "debug_field *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) == (parenthesized_expression "(ppdVar6 == (debug_field *)0x0)" ( (binary_expression "ppdVar6 == (debug_field *)0x0" identifier == (cast_expression "(debug_field *)0x0" ( (type_descriptor "debug_field *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "((((pdVar23->baseclasses == (debug_baseclass *)0x0) ==\n            (pdVar21->baseclasses == (debug_baseclass *)0x0) &&\n           ((pdVar23->methods == (debug_method *)0x0) == (pdVar21->methods == (debug_method *)0x0)))\n          && ((pdVar23->vptrbase == (debug_type_conflict)0x0) ==\n              (pdVar21->vptrbase == (debug_type_conflict)0x0))))" ( (parenthesized_expression "(((pdVar23->baseclasses == (debug_baseclass *)0x0) ==\n            (pdVar21->baseclasses == (debug_baseclass *)0x0) &&\n           ((pdVar23->methods == (debug_method *)0x0) == (pdVar21->methods == (debug_method *)0x0)))\n          && ((pdVar23->vptrbase == (debug_type_conflict)0x0) ==\n              (pdVar21->vptrbase == (debug_type_conflict)0x0)))" ( (binary_expression "((pdVar23->baseclasses == (debug_baseclass *)0x0) ==\n            (pdVar21->baseclasses == (debug_baseclass *)0x0) &&\n           ((pdVar23->methods == (debug_method *)0x0) == (pdVar21->methods == (debug_method *)0x0)))\n          && ((pdVar23->vptrbase == (debug_type_conflict)0x0) ==\n              (pdVar21->vptrbase == (debug_type_conflict)0x0))" (parenthesized_expression "((pdVar23->baseclasses == (debug_baseclass *)0x0) ==\n            (pdVar21->baseclasses == (debug_baseclass *)0x0) &&\n           ((pdVar23->methods == (debug_method *)0x0) == (pdVar21->methods == (debug_method *)0x0)))" ( (binary_expression "(pdVar23->baseclasses == (debug_baseclass *)0x0) ==\n            (pdVar21->baseclasses == (debug_baseclass *)0x0) &&\n           ((pdVar23->methods == (debug_method *)0x0) == (pdVar21->methods == (debug_method *)0x0))" (binary_expression "(pdVar23->baseclasses == (debug_baseclass *)0x0) ==\n            (pdVar21->baseclasses == (debug_baseclass *)0x0)" (parenthesized_expression "(pdVar23->baseclasses == (debug_baseclass *)0x0)" ( (binary_expression "pdVar23->baseclasses == (debug_baseclass *)0x0" (field_expression "pdVar23->baseclasses" identifier -> field_identifier) == (cast_expression "(debug_baseclass *)0x0" ( (type_descriptor "debug_baseclass *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) == (parenthesized_expression "(pdVar21->baseclasses == (debug_baseclass *)0x0)" ( (binary_expression "pdVar21->baseclasses == (debug_baseclass *)0x0" (field_expression "pdVar21->baseclasses" identifier -> field_identifier) == (cast_expression "(debug_baseclass *)0x0" ( (type_descriptor "debug_baseclass *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) && (parenthesized_expression "((pdVar23->methods == (debug_method *)0x0) == (pdVar21->methods == (debug_method *)0x0))" ( (binary_expression "(pdVar23->methods == (debug_method *)0x0) == (pdVar21->methods == (debug_method *)0x0)" (parenthesized_expression "(pdVar23->methods == (debug_method *)0x0)" ( (binary_expression "pdVar23->methods == (debug_method *)0x0" (field_expression "pdVar23->methods" identifier -> field_identifier) == (cast_expression "(debug_method *)0x0" ( (type_descriptor "debug_method *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) == (parenthesized_expression "(pdVar21->methods == (debug_method *)0x0)" ( (binary_expression "pdVar21->methods == (debug_method *)0x0" (field_expression "pdVar21->methods" identifier -> field_identifier) == (cast_expression "(debug_method *)0x0" ( (type_descriptor "debug_method *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) ))) )) && (parenthesized_expression "((pdVar23->vptrbase == (debug_type_conflict)0x0) ==\n              (pdVar21->vptrbase == (debug_type_conflict)0x0))" ( (binary_expression "(pdVar23->vptrbase == (debug_type_conflict)0x0) ==\n              (pdVar21->vptrbase == (debug_type_conflict)0x0)" (parenthesized_expression "(pdVar23->vptrbase == (debug_type_conflict)0x0)" ( (binary_expression "pdVar23->vptrbase == (debug_type_conflict)0x0" (field_expression "pdVar23->vptrbase" identifier -> field_identifier) == (cast_expression "(debug_type_conflict)0x0" ( (type_descriptor "debug_type_conflict" type_identifier) ) number_literal)) )) == (parenthesized_expression "(pdVar21->vptrbase == (debug_type_conflict)0x0)" ( (binary_expression "pdVar21->vptrbase == (debug_type_conflict)0x0" (field_expression "pdVar21->vptrbase" identifier -> field_identifier) == (cast_expression "(debug_type_conflict)0x0" ( (type_descriptor "debug_type_conflict" type_identifier) ) number_literal)) ))) ))) )) ))) )) (compound_statement "{\n        local_48 = 0;\n        if (ppdVar7 == (debug_field *)0x0) {\nLAB_0003c02c:\n          if ((pdVar23->vptrbase == (debug_type_s *)0x0) ||\n             (bVar22 = debug_type_samep(info,pdVar23->vptrbase,pdVar21->vptrbase), bVar22 != 0)) {\n            ppdVar12 = pdVar23->baseclasses;\n            if (ppdVar12 == (debug_baseclass *)0x0) {\nLAB_0003c0bd:\n              ppdVar14 = pdVar23->methods;\n              if (ppdVar14 != (debug_method *)0x0) {\n                ppdVar15 = pdVar21->methods;\n                local_4c = (debug_name *)0x0;\n                while( true ) {\n                  puVar8 = *(undefined4 **)((int)ppdVar14 + (int)local_4c);\n                  pdVar21 = *(debug_class_type **)((int)ppdVar15 + (int)local_4c);\n                  if (puVar8 == (undefined4 *)0x0) break;\n                  if (pdVar21 == (debug_class_type *)0x0) goto LAB_0003bc6c;\n                  if (((*(char *)*puVar8 != *(char *)pdVar21->fields) ||\n                      (iVar19 = strcmp((char *)*puVar8,(char *)pdVar21->fields), iVar19 != 0)) ||\n                     ((puVar8[1] == 0) != (pdVar21->mark == 0))) goto LAB_0003bc6c;\n                  local_4c = (debug_name *)((int)local_4c + 4);\n                  if (puVar8[1] == 0) {\n                    /* WARNING: Does not return */\n                    pcVar16 = (code *)invalidInstructionException();\n                    (*pcVar16)();\n                  }\n                }\n                goto LAB_0003c14c;\n              }\n              goto LAB_0003c016;\n            }\n            ppdVar13 = pdVar21->baseclasses;\n            iVar19 = 0;\n            while( true ) {\n              puVar8 = *(undefined4 **)((int)ppdVar12 + iVar19);\n              puVar9 = *(undefined4 **)((int)ppdVar13 + iVar19);\n              if (puVar8 == (undefined4 *)0x0) break;\n              if ((((puVar9 == (undefined4 *)0x0) || (puVar8[1] != puVar9[1])) ||\n                  (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3])) goto LAB_0003bc6c;\n              iVar19 = iVar19 + 4;\n              bVar22 = debug_type_samep(info,(debug_type_s *)*puVar8,(debug_type_s *)*puVar9);\n              if (bVar22 == 0) goto LAB_0003bc6c;\n            }\n            if (puVar9 == (undefined4 *)0x0) goto LAB_0003c0bd;\n          }\n        }\n        else {\n          while( true ) {\n            puVar8 = *(undefined4 **)((int)ppdVar7 + local_48);\n            puVar9 = *(undefined4 **)((int)ppdVar6 + local_48);\n            if (puVar8 == (undefined4 *)0x0) break;\n            if (puVar9 == (undefined4 *)0x0) goto LAB_0003bc6c;\n            __s2 = (char *)*puVar9;\n            __s1 = (char *)*puVar8;\n            if (((*__s1 != *__s2) || (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3]))\n            goto LAB_0003bc6c;\n            if (puVar8[3] == 0) {\n              if ((char *)puVar8[4] != (char *)puVar9[4]) goto LAB_0003bc6c;\n              if (puVar8[5] != puVar9[5]) {\n                uVar20 = 0;\n                goto LAB_0003bc14;\n              }\n            }\n            else {\n              iVar19 = strcmp((char *)puVar8[4],(char *)puVar9[4]);\n              if (iVar19 != 0) goto LAB_0003bc6c;\n            }\n            iVar19 = strcmp(__s1,__s2);\n            if (iVar19 != 0) goto LAB_0003bc6c;\n            pdVar17 = debug_get_real_type(info,(debug_type_conflict)puVar9[1],\n                                          (debug_type_real_list *)0x0);\n            pdVar18 = debug_get_real_type(info,(debug_type_conflict)puVar8[1],\n                                          (debug_type_real_list *)0x0);\n            bVar22 = debug_type_samep(info,pdVar18,pdVar17);\n            local_48 = local_48 + 4;\n            if (bVar22 == 0) goto LAB_0003bc6c;\n          }\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0003c02c;\n        }\n      }" { (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (if_statement "if (ppdVar7 == (debug_field *)0x0) {\nLAB_0003c02c:\n          if ((pdVar23->vptrbase == (debug_type_s *)0x0) ||\n             (bVar22 = debug_type_samep(info,pdVar23->vptrbase,pdVar21->vptrbase), bVar22 != 0)) {\n            ppdVar12 = pdVar23->baseclasses;\n            if (ppdVar12 == (debug_baseclass *)0x0) {\nLAB_0003c0bd:\n              ppdVar14 = pdVar23->methods;\n              if (ppdVar14 != (debug_method *)0x0) {\n                ppdVar15 = pdVar21->methods;\n                local_4c = (debug_name *)0x0;\n                while( true ) {\n                  puVar8 = *(undefined4 **)((int)ppdVar14 + (int)local_4c);\n                  pdVar21 = *(debug_class_type **)((int)ppdVar15 + (int)local_4c);\n                  if (puVar8 == (undefined4 *)0x0) break;\n                  if (pdVar21 == (debug_class_type *)0x0) goto LAB_0003bc6c;\n                  if (((*(char *)*puVar8 != *(char *)pdVar21->fields) ||\n                      (iVar19 = strcmp((char *)*puVar8,(char *)pdVar21->fields), iVar19 != 0)) ||\n                     ((puVar8[1] == 0) != (pdVar21->mark == 0))) goto LAB_0003bc6c;\n                  local_4c = (debug_name *)((int)local_4c + 4);\n                  if (puVar8[1] == 0) {\n                    /* WARNING: Does not return */\n                    pcVar16 = (code *)invalidInstructionException();\n                    (*pcVar16)();\n                  }\n                }\n                goto LAB_0003c14c;\n              }\n              goto LAB_0003c016;\n            }\n            ppdVar13 = pdVar21->baseclasses;\n            iVar19 = 0;\n            while( true ) {\n              puVar8 = *(undefined4 **)((int)ppdVar12 + iVar19);\n              puVar9 = *(undefined4 **)((int)ppdVar13 + iVar19);\n              if (puVar8 == (undefined4 *)0x0) break;\n              if ((((puVar9 == (undefined4 *)0x0) || (puVar8[1] != puVar9[1])) ||\n                  (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3])) goto LAB_0003bc6c;\n              iVar19 = iVar19 + 4;\n              bVar22 = debug_type_samep(info,(debug_type_s *)*puVar8,(debug_type_s *)*puVar9);\n              if (bVar22 == 0) goto LAB_0003bc6c;\n            }\n            if (puVar9 == (undefined4 *)0x0) goto LAB_0003c0bd;\n          }\n        }\n        else {\n          while( true ) {\n            puVar8 = *(undefined4 **)((int)ppdVar7 + local_48);\n            puVar9 = *(undefined4 **)((int)ppdVar6 + local_48);\n            if (puVar8 == (undefined4 *)0x0) break;\n            if (puVar9 == (undefined4 *)0x0) goto LAB_0003bc6c;\n            __s2 = (char *)*puVar9;\n            __s1 = (char *)*puVar8;\n            if (((*__s1 != *__s2) || (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3]))\n            goto LAB_0003bc6c;\n            if (puVar8[3] == 0) {\n              if ((char *)puVar8[4] != (char *)puVar9[4]) goto LAB_0003bc6c;\n              if (puVar8[5] != puVar9[5]) {\n                uVar20 = 0;\n                goto LAB_0003bc14;\n              }\n            }\n            else {\n              iVar19 = strcmp((char *)puVar8[4],(char *)puVar9[4]);\n              if (iVar19 != 0) goto LAB_0003bc6c;\n            }\n            iVar19 = strcmp(__s1,__s2);\n            if (iVar19 != 0) goto LAB_0003bc6c;\n            pdVar17 = debug_get_real_type(info,(debug_type_conflict)puVar9[1],\n                                          (debug_type_real_list *)0x0);\n            pdVar18 = debug_get_real_type(info,(debug_type_conflict)puVar8[1],\n                                          (debug_type_real_list *)0x0);\n            bVar22 = debug_type_samep(info,pdVar18,pdVar17);\n            local_48 = local_48 + 4;\n            if (bVar22 == 0) goto LAB_0003bc6c;\n          }\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0003c02c;\n        }" if (parenthesized_expression "(ppdVar7 == (debug_field *)0x0)" ( (binary_expression "ppdVar7 == (debug_field *)0x0" identifier == (cast_expression "(debug_field *)0x0" ( (type_descriptor "debug_field *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0003c02c:\n          if ((pdVar23->vptrbase == (debug_type_s *)0x0) ||\n             (bVar22 = debug_type_samep(info,pdVar23->vptrbase,pdVar21->vptrbase), bVar22 != 0)) {\n            ppdVar12 = pdVar23->baseclasses;\n            if (ppdVar12 == (debug_baseclass *)0x0) {\nLAB_0003c0bd:\n              ppdVar14 = pdVar23->methods;\n              if (ppdVar14 != (debug_method *)0x0) {\n                ppdVar15 = pdVar21->methods;\n                local_4c = (debug_name *)0x0;\n                while( true ) {\n                  puVar8 = *(undefined4 **)((int)ppdVar14 + (int)local_4c);\n                  pdVar21 = *(debug_class_type **)((int)ppdVar15 + (int)local_4c);\n                  if (puVar8 == (undefined4 *)0x0) break;\n                  if (pdVar21 == (debug_class_type *)0x0) goto LAB_0003bc6c;\n                  if (((*(char *)*puVar8 != *(char *)pdVar21->fields) ||\n                      (iVar19 = strcmp((char *)*puVar8,(char *)pdVar21->fields), iVar19 != 0)) ||\n                     ((puVar8[1] == 0) != (pdVar21->mark == 0))) goto LAB_0003bc6c;\n                  local_4c = (debug_name *)((int)local_4c + 4);\n                  if (puVar8[1] == 0) {\n                    /* WARNING: Does not return */\n                    pcVar16 = (code *)invalidInstructionException();\n                    (*pcVar16)();\n                  }\n                }\n                goto LAB_0003c14c;\n              }\n              goto LAB_0003c016;\n            }\n            ppdVar13 = pdVar21->baseclasses;\n            iVar19 = 0;\n            while( true ) {\n              puVar8 = *(undefined4 **)((int)ppdVar12 + iVar19);\n              puVar9 = *(undefined4 **)((int)ppdVar13 + iVar19);\n              if (puVar8 == (undefined4 *)0x0) break;\n              if ((((puVar9 == (undefined4 *)0x0) || (puVar8[1] != puVar9[1])) ||\n                  (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3])) goto LAB_0003bc6c;\n              iVar19 = iVar19 + 4;\n              bVar22 = debug_type_samep(info,(debug_type_s *)*puVar8,(debug_type_s *)*puVar9);\n              if (bVar22 == 0) goto LAB_0003bc6c;\n            }\n            if (puVar9 == (undefined4 *)0x0) goto LAB_0003c0bd;\n          }\n        }" { (labeled_statement "LAB_0003c02c:\n          if ((pdVar23->vptrbase == (debug_type_s *)0x0) ||\n             (bVar22 = debug_type_samep(info,pdVar23->vptrbase,pdVar21->vptrbase), bVar22 != 0)) {\n            ppdVar12 = pdVar23->baseclasses;\n            if (ppdVar12 == (debug_baseclass *)0x0) {\nLAB_0003c0bd:\n              ppdVar14 = pdVar23->methods;\n              if (ppdVar14 != (debug_method *)0x0) {\n                ppdVar15 = pdVar21->methods;\n                local_4c = (debug_name *)0x0;\n                while( true ) {\n                  puVar8 = *(undefined4 **)((int)ppdVar14 + (int)local_4c);\n                  pdVar21 = *(debug_class_type **)((int)ppdVar15 + (int)local_4c);\n                  if (puVar8 == (undefined4 *)0x0) break;\n                  if (pdVar21 == (debug_class_type *)0x0) goto LAB_0003bc6c;\n                  if (((*(char *)*puVar8 != *(char *)pdVar21->fields) ||\n                      (iVar19 = strcmp((char *)*puVar8,(char *)pdVar21->fields), iVar19 != 0)) ||\n                     ((puVar8[1] == 0) != (pdVar21->mark == 0))) goto LAB_0003bc6c;\n                  local_4c = (debug_name *)((int)local_4c + 4);\n                  if (puVar8[1] == 0) {\n                    /* WARNING: Does not return */\n                    pcVar16 = (code *)invalidInstructionException();\n                    (*pcVar16)();\n                  }\n                }\n                goto LAB_0003c14c;\n              }\n              goto LAB_0003c016;\n            }\n            ppdVar13 = pdVar21->baseclasses;\n            iVar19 = 0;\n            while( true ) {\n              puVar8 = *(undefined4 **)((int)ppdVar12 + iVar19);\n              puVar9 = *(undefined4 **)((int)ppdVar13 + iVar19);\n              if (puVar8 == (undefined4 *)0x0) break;\n              if ((((puVar9 == (undefined4 *)0x0) || (puVar8[1] != puVar9[1])) ||\n                  (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3])) goto LAB_0003bc6c;\n              iVar19 = iVar19 + 4;\n              bVar22 = debug_type_samep(info,(debug_type_s *)*puVar8,(debug_type_s *)*puVar9);\n              if (bVar22 == 0) goto LAB_0003bc6c;\n            }\n            if (puVar9 == (undefined4 *)0x0) goto LAB_0003c0bd;\n          }" statement_identifier : (if_statement "if ((pdVar23->vptrbase == (debug_type_s *)0x0) ||\n             (bVar22 = debug_type_samep(info,pdVar23->vptrbase,pdVar21->vptrbase), bVar22 != 0)) {\n            ppdVar12 = pdVar23->baseclasses;\n            if (ppdVar12 == (debug_baseclass *)0x0) {\nLAB_0003c0bd:\n              ppdVar14 = pdVar23->methods;\n              if (ppdVar14 != (debug_method *)0x0) {\n                ppdVar15 = pdVar21->methods;\n                local_4c = (debug_name *)0x0;\n                while( true ) {\n                  puVar8 = *(undefined4 **)((int)ppdVar14 + (int)local_4c);\n                  pdVar21 = *(debug_class_type **)((int)ppdVar15 + (int)local_4c);\n                  if (puVar8 == (undefined4 *)0x0) break;\n                  if (pdVar21 == (debug_class_type *)0x0) goto LAB_0003bc6c;\n                  if (((*(char *)*puVar8 != *(char *)pdVar21->fields) ||\n                      (iVar19 = strcmp((char *)*puVar8,(char *)pdVar21->fields), iVar19 != 0)) ||\n                     ((puVar8[1] == 0) != (pdVar21->mark == 0))) goto LAB_0003bc6c;\n                  local_4c = (debug_name *)((int)local_4c + 4);\n                  if (puVar8[1] == 0) {\n                    /* WARNING: Does not return */\n                    pcVar16 = (code *)invalidInstructionException();\n                    (*pcVar16)();\n                  }\n                }\n                goto LAB_0003c14c;\n              }\n              goto LAB_0003c016;\n            }\n            ppdVar13 = pdVar21->baseclasses;\n            iVar19 = 0;\n            while( true ) {\n              puVar8 = *(undefined4 **)((int)ppdVar12 + iVar19);\n              puVar9 = *(undefined4 **)((int)ppdVar13 + iVar19);\n              if (puVar8 == (undefined4 *)0x0) break;\n              if ((((puVar9 == (undefined4 *)0x0) || (puVar8[1] != puVar9[1])) ||\n                  (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3])) goto LAB_0003bc6c;\n              iVar19 = iVar19 + 4;\n              bVar22 = debug_type_samep(info,(debug_type_s *)*puVar8,(debug_type_s *)*puVar9);\n              if (bVar22 == 0) goto LAB_0003bc6c;\n            }\n            if (puVar9 == (undefined4 *)0x0) goto LAB_0003c0bd;\n          }" if (parenthesized_expression "((pdVar23->vptrbase == (debug_type_s *)0x0) ||\n             (bVar22 = debug_type_samep(info,pdVar23->vptrbase,pdVar21->vptrbase), bVar22 != 0))" ( (binary_expression "(pdVar23->vptrbase == (debug_type_s *)0x0) ||\n             (bVar22 = debug_type_samep(info,pdVar23->vptrbase,pdVar21->vptrbase), bVar22 != 0)" (parenthesized_expression "(pdVar23->vptrbase == (debug_type_s *)0x0)" ( (binary_expression "pdVar23->vptrbase == (debug_type_s *)0x0" (field_expression "pdVar23->vptrbase" identifier -> field_identifier) == (cast_expression "(debug_type_s *)0x0" ( (type_descriptor "debug_type_s *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(bVar22 = debug_type_samep(info,pdVar23->vptrbase,pdVar21->vptrbase), bVar22 != 0)" ( (comma_expression "bVar22 = debug_type_samep(info,pdVar23->vptrbase,pdVar21->vptrbase), bVar22 != 0" (assignment_expression "bVar22 = debug_type_samep(info,pdVar23->vptrbase,pdVar21->vptrbase)" identifier = (call_expression "debug_type_samep(info,pdVar23->vptrbase,pdVar21->vptrbase)" identifier (argument_list "(info,pdVar23->vptrbase,pdVar21->vptrbase)" ( identifier , (field_expression "pdVar23->vptrbase" identifier -> field_identifier) , (field_expression "pdVar21->vptrbase" identifier -> field_identifier) )))) , (binary_expression "bVar22 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n            ppdVar12 = pdVar23->baseclasses;\n            if (ppdVar12 == (debug_baseclass *)0x0) {\nLAB_0003c0bd:\n              ppdVar14 = pdVar23->methods;\n              if (ppdVar14 != (debug_method *)0x0) {\n                ppdVar15 = pdVar21->methods;\n                local_4c = (debug_name *)0x0;\n                while( true ) {\n                  puVar8 = *(undefined4 **)((int)ppdVar14 + (int)local_4c);\n                  pdVar21 = *(debug_class_type **)((int)ppdVar15 + (int)local_4c);\n                  if (puVar8 == (undefined4 *)0x0) break;\n                  if (pdVar21 == (debug_class_type *)0x0) goto LAB_0003bc6c;\n                  if (((*(char *)*puVar8 != *(char *)pdVar21->fields) ||\n                      (iVar19 = strcmp((char *)*puVar8,(char *)pdVar21->fields), iVar19 != 0)) ||\n                     ((puVar8[1] == 0) != (pdVar21->mark == 0))) goto LAB_0003bc6c;\n                  local_4c = (debug_name *)((int)local_4c + 4);\n                  if (puVar8[1] == 0) {\n                    /* WARNING: Does not return */\n                    pcVar16 = (code *)invalidInstructionException();\n                    (*pcVar16)();\n                  }\n                }\n                goto LAB_0003c14c;\n              }\n              goto LAB_0003c016;\n            }\n            ppdVar13 = pdVar21->baseclasses;\n            iVar19 = 0;\n            while( true ) {\n              puVar8 = *(undefined4 **)((int)ppdVar12 + iVar19);\n              puVar9 = *(undefined4 **)((int)ppdVar13 + iVar19);\n              if (puVar8 == (undefined4 *)0x0) break;\n              if ((((puVar9 == (undefined4 *)0x0) || (puVar8[1] != puVar9[1])) ||\n                  (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3])) goto LAB_0003bc6c;\n              iVar19 = iVar19 + 4;\n              bVar22 = debug_type_samep(info,(debug_type_s *)*puVar8,(debug_type_s *)*puVar9);\n              if (bVar22 == 0) goto LAB_0003bc6c;\n            }\n            if (puVar9 == (undefined4 *)0x0) goto LAB_0003c0bd;\n          }" { (expression_statement "ppdVar12 = pdVar23->baseclasses;" (assignment_expression "ppdVar12 = pdVar23->baseclasses" identifier = (field_expression "pdVar23->baseclasses" identifier -> field_identifier)) ;) (if_statement "if (ppdVar12 == (debug_baseclass *)0x0) {\nLAB_0003c0bd:\n              ppdVar14 = pdVar23->methods;\n              if (ppdVar14 != (debug_method *)0x0) {\n                ppdVar15 = pdVar21->methods;\n                local_4c = (debug_name *)0x0;\n                while( true ) {\n                  puVar8 = *(undefined4 **)((int)ppdVar14 + (int)local_4c);\n                  pdVar21 = *(debug_class_type **)((int)ppdVar15 + (int)local_4c);\n                  if (puVar8 == (undefined4 *)0x0) break;\n                  if (pdVar21 == (debug_class_type *)0x0) goto LAB_0003bc6c;\n                  if (((*(char *)*puVar8 != *(char *)pdVar21->fields) ||\n                      (iVar19 = strcmp((char *)*puVar8,(char *)pdVar21->fields), iVar19 != 0)) ||\n                     ((puVar8[1] == 0) != (pdVar21->mark == 0))) goto LAB_0003bc6c;\n                  local_4c = (debug_name *)((int)local_4c + 4);\n                  if (puVar8[1] == 0) {\n                    /* WARNING: Does not return */\n                    pcVar16 = (code *)invalidInstructionException();\n                    (*pcVar16)();\n                  }\n                }\n                goto LAB_0003c14c;\n              }\n              goto LAB_0003c016;\n            }" if (parenthesized_expression "(ppdVar12 == (debug_baseclass *)0x0)" ( (binary_expression "ppdVar12 == (debug_baseclass *)0x0" identifier == (cast_expression "(debug_baseclass *)0x0" ( (type_descriptor "debug_baseclass *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0003c0bd:\n              ppdVar14 = pdVar23->methods;\n              if (ppdVar14 != (debug_method *)0x0) {\n                ppdVar15 = pdVar21->methods;\n                local_4c = (debug_name *)0x0;\n                while( true ) {\n                  puVar8 = *(undefined4 **)((int)ppdVar14 + (int)local_4c);\n                  pdVar21 = *(debug_class_type **)((int)ppdVar15 + (int)local_4c);\n                  if (puVar8 == (undefined4 *)0x0) break;\n                  if (pdVar21 == (debug_class_type *)0x0) goto LAB_0003bc6c;\n                  if (((*(char *)*puVar8 != *(char *)pdVar21->fields) ||\n                      (iVar19 = strcmp((char *)*puVar8,(char *)pdVar21->fields), iVar19 != 0)) ||\n                     ((puVar8[1] == 0) != (pdVar21->mark == 0))) goto LAB_0003bc6c;\n                  local_4c = (debug_name *)((int)local_4c + 4);\n                  if (puVar8[1] == 0) {\n                    /* WARNING: Does not return */\n                    pcVar16 = (code *)invalidInstructionException();\n                    (*pcVar16)();\n                  }\n                }\n                goto LAB_0003c14c;\n              }\n              goto LAB_0003c016;\n            }" { (labeled_statement "LAB_0003c0bd:\n              ppdVar14 = pdVar23->methods;" statement_identifier : (expression_statement "ppdVar14 = pdVar23->methods;" (assignment_expression "ppdVar14 = pdVar23->methods" identifier = (field_expression "pdVar23->methods" identifier -> field_identifier)) ;)) (if_statement "if (ppdVar14 != (debug_method *)0x0) {\n                ppdVar15 = pdVar21->methods;\n                local_4c = (debug_name *)0x0;\n                while( true ) {\n                  puVar8 = *(undefined4 **)((int)ppdVar14 + (int)local_4c);\n                  pdVar21 = *(debug_class_type **)((int)ppdVar15 + (int)local_4c);\n                  if (puVar8 == (undefined4 *)0x0) break;\n                  if (pdVar21 == (debug_class_type *)0x0) goto LAB_0003bc6c;\n                  if (((*(char *)*puVar8 != *(char *)pdVar21->fields) ||\n                      (iVar19 = strcmp((char *)*puVar8,(char *)pdVar21->fields), iVar19 != 0)) ||\n                     ((puVar8[1] == 0) != (pdVar21->mark == 0))) goto LAB_0003bc6c;\n                  local_4c = (debug_name *)((int)local_4c + 4);\n                  if (puVar8[1] == 0) {\n                    /* WARNING: Does not return */\n                    pcVar16 = (code *)invalidInstructionException();\n                    (*pcVar16)();\n                  }\n                }\n                goto LAB_0003c14c;\n              }" if (parenthesized_expression "(ppdVar14 != (debug_method *)0x0)" ( (binary_expression "ppdVar14 != (debug_method *)0x0" identifier != (cast_expression "(debug_method *)0x0" ( (type_descriptor "debug_method *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                ppdVar15 = pdVar21->methods;\n                local_4c = (debug_name *)0x0;\n                while( true ) {\n                  puVar8 = *(undefined4 **)((int)ppdVar14 + (int)local_4c);\n                  pdVar21 = *(debug_class_type **)((int)ppdVar15 + (int)local_4c);\n                  if (puVar8 == (undefined4 *)0x0) break;\n                  if (pdVar21 == (debug_class_type *)0x0) goto LAB_0003bc6c;\n                  if (((*(char *)*puVar8 != *(char *)pdVar21->fields) ||\n                      (iVar19 = strcmp((char *)*puVar8,(char *)pdVar21->fields), iVar19 != 0)) ||\n                     ((puVar8[1] == 0) != (pdVar21->mark == 0))) goto LAB_0003bc6c;\n                  local_4c = (debug_name *)((int)local_4c + 4);\n                  if (puVar8[1] == 0) {\n                    /* WARNING: Does not return */\n                    pcVar16 = (code *)invalidInstructionException();\n                    (*pcVar16)();\n                  }\n                }\n                goto LAB_0003c14c;\n              }" { (expression_statement "ppdVar15 = pdVar21->methods;" (assignment_expression "ppdVar15 = pdVar21->methods" identifier = (field_expression "pdVar21->methods" identifier -> field_identifier)) ;) (expression_statement "local_4c = (debug_name *)0x0;" (assignment_expression "local_4c = (debug_name *)0x0" identifier = (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (while_statement "while( true ) {\n                  puVar8 = *(undefined4 **)((int)ppdVar14 + (int)local_4c);\n                  pdVar21 = *(debug_class_type **)((int)ppdVar15 + (int)local_4c);\n                  if (puVar8 == (undefined4 *)0x0) break;\n                  if (pdVar21 == (debug_class_type *)0x0) goto LAB_0003bc6c;\n                  if (((*(char *)*puVar8 != *(char *)pdVar21->fields) ||\n                      (iVar19 = strcmp((char *)*puVar8,(char *)pdVar21->fields), iVar19 != 0)) ||\n                     ((puVar8[1] == 0) != (pdVar21->mark == 0))) goto LAB_0003bc6c;\n                  local_4c = (debug_name *)((int)local_4c + 4);\n                  if (puVar8[1] == 0) {\n                    /* WARNING: Does not return */\n                    pcVar16 = (code *)invalidInstructionException();\n                    (*pcVar16)();\n                  }\n                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                  puVar8 = *(undefined4 **)((int)ppdVar14 + (int)local_4c);\n                  pdVar21 = *(debug_class_type **)((int)ppdVar15 + (int)local_4c);\n                  if (puVar8 == (undefined4 *)0x0) break;\n                  if (pdVar21 == (debug_class_type *)0x0) goto LAB_0003bc6c;\n                  if (((*(char *)*puVar8 != *(char *)pdVar21->fields) ||\n                      (iVar19 = strcmp((char *)*puVar8,(char *)pdVar21->fields), iVar19 != 0)) ||\n                     ((puVar8[1] == 0) != (pdVar21->mark == 0))) goto LAB_0003bc6c;\n                  local_4c = (debug_name *)((int)local_4c + 4);\n                  if (puVar8[1] == 0) {\n                    /* WARNING: Does not return */\n                    pcVar16 = (code *)invalidInstructionException();\n                    (*pcVar16)();\n                  }\n                }" { (expression_statement "puVar8 = *(undefined4 **)((int)ppdVar14 + (int)local_4c);" (assignment_expression "puVar8 = *(undefined4 **)((int)ppdVar14 + (int)local_4c)" identifier = (pointer_expression "*(undefined4 **)((int)ppdVar14 + (int)local_4c)" * (cast_expression "(undefined4 **)((int)ppdVar14 + (int)local_4c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppdVar14 + (int)local_4c)" ( (binary_expression "(int)ppdVar14 + (int)local_4c" (cast_expression "(int)ppdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "pdVar21 = *(debug_class_type **)((int)ppdVar15 + (int)local_4c);" (assignment_expression "pdVar21 = *(debug_class_type **)((int)ppdVar15 + (int)local_4c)" identifier = (pointer_expression "*(debug_class_type **)((int)ppdVar15 + (int)local_4c)" * (cast_expression "(debug_class_type **)((int)ppdVar15 + (int)local_4c)" ( (type_descriptor "debug_class_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppdVar15 + (int)local_4c)" ( (binary_expression "(int)ppdVar15 + (int)local_4c" (cast_expression "(int)ppdVar15" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if (puVar8 == (undefined4 *)0x0) break;" if (parenthesized_expression "(puVar8 == (undefined4 *)0x0)" ( (binary_expression "puVar8 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (if_statement "if (pdVar21 == (debug_class_type *)0x0) goto LAB_0003bc6c;" if (parenthesized_expression "(pdVar21 == (debug_class_type *)0x0)" ( (binary_expression "pdVar21 == (debug_class_type *)0x0" identifier == (cast_expression "(debug_class_type *)0x0" ( (type_descriptor "debug_class_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003bc6c;" goto statement_identifier ;)) (if_statement "if (((*(char *)*puVar8 != *(char *)pdVar21->fields) ||\n                      (iVar19 = strcmp((char *)*puVar8,(char *)pdVar21->fields), iVar19 != 0)) ||\n                     ((puVar8[1] == 0) != (pdVar21->mark == 0))) goto LAB_0003bc6c;" if (parenthesized_expression "(((*(char *)*puVar8 != *(char *)pdVar21->fields) ||\n                      (iVar19 = strcmp((char *)*puVar8,(char *)pdVar21->fields), iVar19 != 0)) ||\n                     ((puVar8[1] == 0) != (pdVar21->mark == 0)))" ( (binary_expression "((*(char *)*puVar8 != *(char *)pdVar21->fields) ||\n                      (iVar19 = strcmp((char *)*puVar8,(char *)pdVar21->fields), iVar19 != 0)) ||\n                     ((puVar8[1] == 0) != (pdVar21->mark == 0))" (parenthesized_expression "((*(char *)*puVar8 != *(char *)pdVar21->fields) ||\n                      (iVar19 = strcmp((char *)*puVar8,(char *)pdVar21->fields), iVar19 != 0))" ( (binary_expression "(*(char *)*puVar8 != *(char *)pdVar21->fields) ||\n                      (iVar19 = strcmp((char *)*puVar8,(char *)pdVar21->fields), iVar19 != 0)" (parenthesized_expression "(*(char *)*puVar8 != *(char *)pdVar21->fields)" ( (binary_expression "*(char *)*puVar8 != *(char *)pdVar21->fields" (pointer_expression "*(char *)*puVar8" * (cast_expression "(char *)*puVar8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar8" * identifier))) != (pointer_expression "*(char *)pdVar21->fields" * (cast_expression "(char *)pdVar21->fields" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "pdVar21->fields" identifier -> field_identifier)))) )) || (parenthesized_expression "(iVar19 = strcmp((char *)*puVar8,(char *)pdVar21->fields), iVar19 != 0)" ( (comma_expression "iVar19 = strcmp((char *)*puVar8,(char *)pdVar21->fields), iVar19 != 0" (assignment_expression "iVar19 = strcmp((char *)*puVar8,(char *)pdVar21->fields)" identifier = (call_expression "strcmp((char *)*puVar8,(char *)pdVar21->fields)" identifier (argument_list "((char *)*puVar8,(char *)pdVar21->fields)" ( (cast_expression "(char *)*puVar8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar8" * identifier)) , (cast_expression "(char *)pdVar21->fields" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "pdVar21->fields" identifier -> field_identifier)) )))) , (binary_expression "iVar19 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "((puVar8[1] == 0) != (pdVar21->mark == 0))" ( (binary_expression "(puVar8[1] == 0) != (pdVar21->mark == 0)" (parenthesized_expression "(puVar8[1] == 0)" ( (binary_expression "puVar8[1] == 0" (subscript_expression "puVar8[1]" identifier [ number_literal ]) == number_literal) )) != (parenthesized_expression "(pdVar21->mark == 0)" ( (binary_expression "pdVar21->mark == 0" (field_expression "pdVar21->mark" identifier -> field_identifier) == number_literal) ))) ))) )) (goto_statement "goto LAB_0003bc6c;" goto statement_identifier ;)) (expression_statement "local_4c = (debug_name *)((int)local_4c + 4);" (assignment_expression "local_4c = (debug_name *)((int)local_4c + 4)" identifier = (cast_expression "(debug_name *)((int)local_4c + 4)" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_4c + 4)" ( (binary_expression "(int)local_4c + 4" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (puVar8[1] == 0) {\n                    /* WARNING: Does not return */\n                    pcVar16 = (code *)invalidInstructionException();\n                    (*pcVar16)();\n                  }" if (parenthesized_expression "(puVar8[1] == 0)" ( (binary_expression "puVar8[1] == 0" (subscript_expression "puVar8[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                    /* WARNING: Does not return */\n                    pcVar16 = (code *)invalidInstructionException();\n                    (*pcVar16)();\n                  }" { comment (expression_statement "pcVar16 = (code *)invalidInstructionException();" (assignment_expression "pcVar16 = (code *)invalidInstructionException()" identifier = (cast_expression "(code *)invalidInstructionException()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "invalidInstructionException()" identifier (argument_list "()" ( ))))) ;) (expression_statement "(*pcVar16)();" (call_expression "(*pcVar16)()" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "()" ( ))) ;) })) })) (goto_statement "goto LAB_0003c14c;" goto statement_identifier ;) })) (goto_statement "goto LAB_0003c016;" goto statement_identifier ;) })) (expression_statement "ppdVar13 = pdVar21->baseclasses;" (assignment_expression "ppdVar13 = pdVar21->baseclasses" identifier = (field_expression "pdVar21->baseclasses" identifier -> field_identifier)) ;) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n              puVar8 = *(undefined4 **)((int)ppdVar12 + iVar19);\n              puVar9 = *(undefined4 **)((int)ppdVar13 + iVar19);\n              if (puVar8 == (undefined4 *)0x0) break;\n              if ((((puVar9 == (undefined4 *)0x0) || (puVar8[1] != puVar9[1])) ||\n                  (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3])) goto LAB_0003bc6c;\n              iVar19 = iVar19 + 4;\n              bVar22 = debug_type_samep(info,(debug_type_s *)*puVar8,(debug_type_s *)*puVar9);\n              if (bVar22 == 0) goto LAB_0003bc6c;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              puVar8 = *(undefined4 **)((int)ppdVar12 + iVar19);\n              puVar9 = *(undefined4 **)((int)ppdVar13 + iVar19);\n              if (puVar8 == (undefined4 *)0x0) break;\n              if ((((puVar9 == (undefined4 *)0x0) || (puVar8[1] != puVar9[1])) ||\n                  (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3])) goto LAB_0003bc6c;\n              iVar19 = iVar19 + 4;\n              bVar22 = debug_type_samep(info,(debug_type_s *)*puVar8,(debug_type_s *)*puVar9);\n              if (bVar22 == 0) goto LAB_0003bc6c;\n            }" { (expression_statement "puVar8 = *(undefined4 **)((int)ppdVar12 + iVar19);" (assignment_expression "puVar8 = *(undefined4 **)((int)ppdVar12 + iVar19)" identifier = (pointer_expression "*(undefined4 **)((int)ppdVar12 + iVar19)" * (cast_expression "(undefined4 **)((int)ppdVar12 + iVar19)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppdVar12 + iVar19)" ( (binary_expression "(int)ppdVar12 + iVar19" (cast_expression "(int)ppdVar12" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (expression_statement "puVar9 = *(undefined4 **)((int)ppdVar13 + iVar19);" (assignment_expression "puVar9 = *(undefined4 **)((int)ppdVar13 + iVar19)" identifier = (pointer_expression "*(undefined4 **)((int)ppdVar13 + iVar19)" * (cast_expression "(undefined4 **)((int)ppdVar13 + iVar19)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppdVar13 + iVar19)" ( (binary_expression "(int)ppdVar13 + iVar19" (cast_expression "(int)ppdVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (if_statement "if (puVar8 == (undefined4 *)0x0) break;" if (parenthesized_expression "(puVar8 == (undefined4 *)0x0)" ( (binary_expression "puVar8 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (if_statement "if ((((puVar9 == (undefined4 *)0x0) || (puVar8[1] != puVar9[1])) ||\n                  (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3])) goto LAB_0003bc6c;" if (parenthesized_expression "((((puVar9 == (undefined4 *)0x0) || (puVar8[1] != puVar9[1])) ||\n                  (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3]))" ( (binary_expression "(((puVar9 == (undefined4 *)0x0) || (puVar8[1] != puVar9[1])) ||\n                  (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3])" (parenthesized_expression "(((puVar9 == (undefined4 *)0x0) || (puVar8[1] != puVar9[1])) ||\n                  (puVar8[2] != puVar9[2]))" ( (binary_expression "((puVar9 == (undefined4 *)0x0) || (puVar8[1] != puVar9[1])) ||\n                  (puVar8[2] != puVar9[2])" (parenthesized_expression "((puVar9 == (undefined4 *)0x0) || (puVar8[1] != puVar9[1]))" ( (binary_expression "(puVar9 == (undefined4 *)0x0) || (puVar8[1] != puVar9[1])" (parenthesized_expression "(puVar9 == (undefined4 *)0x0)" ( (binary_expression "puVar9 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(puVar8[1] != puVar9[1])" ( (binary_expression "puVar8[1] != puVar9[1]" (subscript_expression "puVar8[1]" identifier [ number_literal ]) != (subscript_expression "puVar9[1]" identifier [ number_literal ])) ))) )) || (parenthesized_expression "(puVar8[2] != puVar9[2])" ( (binary_expression "puVar8[2] != puVar9[2]" (subscript_expression "puVar8[2]" identifier [ number_literal ]) != (subscript_expression "puVar9[2]" identifier [ number_literal ])) ))) )) || (parenthesized_expression "(puVar8[3] != puVar9[3])" ( (binary_expression "puVar8[3] != puVar9[3]" (subscript_expression "puVar8[3]" identifier [ number_literal ]) != (subscript_expression "puVar9[3]" identifier [ number_literal ])) ))) )) (goto_statement "goto LAB_0003bc6c;" goto statement_identifier ;)) (expression_statement "iVar19 = iVar19 + 4;" (assignment_expression "iVar19 = iVar19 + 4" identifier = (binary_expression "iVar19 + 4" identifier + number_literal)) ;) (expression_statement "bVar22 = debug_type_samep(info,(debug_type_s *)*puVar8,(debug_type_s *)*puVar9);" (assignment_expression "bVar22 = debug_type_samep(info,(debug_type_s *)*puVar8,(debug_type_s *)*puVar9)" identifier = (call_expression "debug_type_samep(info,(debug_type_s *)*puVar8,(debug_type_s *)*puVar9)" identifier (argument_list "(info,(debug_type_s *)*puVar8,(debug_type_s *)*puVar9)" ( identifier , (cast_expression "(debug_type_s *)*puVar8" ( (type_descriptor "debug_type_s *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar8" * identifier)) , (cast_expression "(debug_type_s *)*puVar9" ( (type_descriptor "debug_type_s *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar9" * identifier)) )))) ;) (if_statement "if (bVar22 == 0) goto LAB_0003bc6c;" if (parenthesized_expression "(bVar22 == 0)" ( (binary_expression "bVar22 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0003bc6c;" goto statement_identifier ;)) })) (if_statement "if (puVar9 == (undefined4 *)0x0) goto LAB_0003c0bd;" if (parenthesized_expression "(puVar9 == (undefined4 *)0x0)" ( (binary_expression "puVar9 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003c0bd;" goto statement_identifier ;)) }))) }) (else_clause "else {\n          while( true ) {\n            puVar8 = *(undefined4 **)((int)ppdVar7 + local_48);\n            puVar9 = *(undefined4 **)((int)ppdVar6 + local_48);\n            if (puVar8 == (undefined4 *)0x0) break;\n            if (puVar9 == (undefined4 *)0x0) goto LAB_0003bc6c;\n            __s2 = (char *)*puVar9;\n            __s1 = (char *)*puVar8;\n            if (((*__s1 != *__s2) || (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3]))\n            goto LAB_0003bc6c;\n            if (puVar8[3] == 0) {\n              if ((char *)puVar8[4] != (char *)puVar9[4]) goto LAB_0003bc6c;\n              if (puVar8[5] != puVar9[5]) {\n                uVar20 = 0;\n                goto LAB_0003bc14;\n              }\n            }\n            else {\n              iVar19 = strcmp((char *)puVar8[4],(char *)puVar9[4]);\n              if (iVar19 != 0) goto LAB_0003bc6c;\n            }\n            iVar19 = strcmp(__s1,__s2);\n            if (iVar19 != 0) goto LAB_0003bc6c;\n            pdVar17 = debug_get_real_type(info,(debug_type_conflict)puVar9[1],\n                                          (debug_type_real_list *)0x0);\n            pdVar18 = debug_get_real_type(info,(debug_type_conflict)puVar8[1],\n                                          (debug_type_real_list *)0x0);\n            bVar22 = debug_type_samep(info,pdVar18,pdVar17);\n            local_48 = local_48 + 4;\n            if (bVar22 == 0) goto LAB_0003bc6c;\n          }\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0003c02c;\n        }" else (compound_statement "{\n          while( true ) {\n            puVar8 = *(undefined4 **)((int)ppdVar7 + local_48);\n            puVar9 = *(undefined4 **)((int)ppdVar6 + local_48);\n            if (puVar8 == (undefined4 *)0x0) break;\n            if (puVar9 == (undefined4 *)0x0) goto LAB_0003bc6c;\n            __s2 = (char *)*puVar9;\n            __s1 = (char *)*puVar8;\n            if (((*__s1 != *__s2) || (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3]))\n            goto LAB_0003bc6c;\n            if (puVar8[3] == 0) {\n              if ((char *)puVar8[4] != (char *)puVar9[4]) goto LAB_0003bc6c;\n              if (puVar8[5] != puVar9[5]) {\n                uVar20 = 0;\n                goto LAB_0003bc14;\n              }\n            }\n            else {\n              iVar19 = strcmp((char *)puVar8[4],(char *)puVar9[4]);\n              if (iVar19 != 0) goto LAB_0003bc6c;\n            }\n            iVar19 = strcmp(__s1,__s2);\n            if (iVar19 != 0) goto LAB_0003bc6c;\n            pdVar17 = debug_get_real_type(info,(debug_type_conflict)puVar9[1],\n                                          (debug_type_real_list *)0x0);\n            pdVar18 = debug_get_real_type(info,(debug_type_conflict)puVar8[1],\n                                          (debug_type_real_list *)0x0);\n            bVar22 = debug_type_samep(info,pdVar18,pdVar17);\n            local_48 = local_48 + 4;\n            if (bVar22 == 0) goto LAB_0003bc6c;\n          }\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0003c02c;\n        }" { (while_statement "while( true ) {\n            puVar8 = *(undefined4 **)((int)ppdVar7 + local_48);\n            puVar9 = *(undefined4 **)((int)ppdVar6 + local_48);\n            if (puVar8 == (undefined4 *)0x0) break;\n            if (puVar9 == (undefined4 *)0x0) goto LAB_0003bc6c;\n            __s2 = (char *)*puVar9;\n            __s1 = (char *)*puVar8;\n            if (((*__s1 != *__s2) || (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3]))\n            goto LAB_0003bc6c;\n            if (puVar8[3] == 0) {\n              if ((char *)puVar8[4] != (char *)puVar9[4]) goto LAB_0003bc6c;\n              if (puVar8[5] != puVar9[5]) {\n                uVar20 = 0;\n                goto LAB_0003bc14;\n              }\n            }\n            else {\n              iVar19 = strcmp((char *)puVar8[4],(char *)puVar9[4]);\n              if (iVar19 != 0) goto LAB_0003bc6c;\n            }\n            iVar19 = strcmp(__s1,__s2);\n            if (iVar19 != 0) goto LAB_0003bc6c;\n            pdVar17 = debug_get_real_type(info,(debug_type_conflict)puVar9[1],\n                                          (debug_type_real_list *)0x0);\n            pdVar18 = debug_get_real_type(info,(debug_type_conflict)puVar8[1],\n                                          (debug_type_real_list *)0x0);\n            bVar22 = debug_type_samep(info,pdVar18,pdVar17);\n            local_48 = local_48 + 4;\n            if (bVar22 == 0) goto LAB_0003bc6c;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            puVar8 = *(undefined4 **)((int)ppdVar7 + local_48);\n            puVar9 = *(undefined4 **)((int)ppdVar6 + local_48);\n            if (puVar8 == (undefined4 *)0x0) break;\n            if (puVar9 == (undefined4 *)0x0) goto LAB_0003bc6c;\n            __s2 = (char *)*puVar9;\n            __s1 = (char *)*puVar8;\n            if (((*__s1 != *__s2) || (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3]))\n            goto LAB_0003bc6c;\n            if (puVar8[3] == 0) {\n              if ((char *)puVar8[4] != (char *)puVar9[4]) goto LAB_0003bc6c;\n              if (puVar8[5] != puVar9[5]) {\n                uVar20 = 0;\n                goto LAB_0003bc14;\n              }\n            }\n            else {\n              iVar19 = strcmp((char *)puVar8[4],(char *)puVar9[4]);\n              if (iVar19 != 0) goto LAB_0003bc6c;\n            }\n            iVar19 = strcmp(__s1,__s2);\n            if (iVar19 != 0) goto LAB_0003bc6c;\n            pdVar17 = debug_get_real_type(info,(debug_type_conflict)puVar9[1],\n                                          (debug_type_real_list *)0x0);\n            pdVar18 = debug_get_real_type(info,(debug_type_conflict)puVar8[1],\n                                          (debug_type_real_list *)0x0);\n            bVar22 = debug_type_samep(info,pdVar18,pdVar17);\n            local_48 = local_48 + 4;\n            if (bVar22 == 0) goto LAB_0003bc6c;\n          }" { (expression_statement "puVar8 = *(undefined4 **)((int)ppdVar7 + local_48);" (assignment_expression "puVar8 = *(undefined4 **)((int)ppdVar7 + local_48)" identifier = (pointer_expression "*(undefined4 **)((int)ppdVar7 + local_48)" * (cast_expression "(undefined4 **)((int)ppdVar7 + local_48)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppdVar7 + local_48)" ( (binary_expression "(int)ppdVar7 + local_48" (cast_expression "(int)ppdVar7" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (expression_statement "puVar9 = *(undefined4 **)((int)ppdVar6 + local_48);" (assignment_expression "puVar9 = *(undefined4 **)((int)ppdVar6 + local_48)" identifier = (pointer_expression "*(undefined4 **)((int)ppdVar6 + local_48)" * (cast_expression "(undefined4 **)((int)ppdVar6 + local_48)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppdVar6 + local_48)" ( (binary_expression "(int)ppdVar6 + local_48" (cast_expression "(int)ppdVar6" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (if_statement "if (puVar8 == (undefined4 *)0x0) break;" if (parenthesized_expression "(puVar8 == (undefined4 *)0x0)" ( (binary_expression "puVar8 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (if_statement "if (puVar9 == (undefined4 *)0x0) goto LAB_0003bc6c;" if (parenthesized_expression "(puVar9 == (undefined4 *)0x0)" ( (binary_expression "puVar9 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003bc6c;" goto statement_identifier ;)) (expression_statement "__s2 = (char *)*puVar9;" (assignment_expression "__s2 = (char *)*puVar9" identifier = (cast_expression "(char *)*puVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar9" * identifier))) ;) (expression_statement "__s1 = (char *)*puVar8;" (assignment_expression "__s1 = (char *)*puVar8" identifier = (cast_expression "(char *)*puVar8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar8" * identifier))) ;) (if_statement "if (((*__s1 != *__s2) || (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3]))\n            goto LAB_0003bc6c;" if (parenthesized_expression "(((*__s1 != *__s2) || (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3]))" ( (binary_expression "((*__s1 != *__s2) || (puVar8[2] != puVar9[2])) || (puVar8[3] != puVar9[3])" (parenthesized_expression "((*__s1 != *__s2) || (puVar8[2] != puVar9[2]))" ( (binary_expression "(*__s1 != *__s2) || (puVar8[2] != puVar9[2])" (parenthesized_expression "(*__s1 != *__s2)" ( (binary_expression "*__s1 != *__s2" (pointer_expression "*__s1" * identifier) != (pointer_expression "*__s2" * identifier)) )) || (parenthesized_expression "(puVar8[2] != puVar9[2])" ( (binary_expression "puVar8[2] != puVar9[2]" (subscript_expression "puVar8[2]" identifier [ number_literal ]) != (subscript_expression "puVar9[2]" identifier [ number_literal ])) ))) )) || (parenthesized_expression "(puVar8[3] != puVar9[3])" ( (binary_expression "puVar8[3] != puVar9[3]" (subscript_expression "puVar8[3]" identifier [ number_literal ]) != (subscript_expression "puVar9[3]" identifier [ number_literal ])) ))) )) (goto_statement "goto LAB_0003bc6c;" goto statement_identifier ;)) (if_statement "if (puVar8[3] == 0) {\n              if ((char *)puVar8[4] != (char *)puVar9[4]) goto LAB_0003bc6c;\n              if (puVar8[5] != puVar9[5]) {\n                uVar20 = 0;\n                goto LAB_0003bc14;\n              }\n            }\n            else {\n              iVar19 = strcmp((char *)puVar8[4],(char *)puVar9[4]);\n              if (iVar19 != 0) goto LAB_0003bc6c;\n            }" if (parenthesized_expression "(puVar8[3] == 0)" ( (binary_expression "puVar8[3] == 0" (subscript_expression "puVar8[3]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n              if ((char *)puVar8[4] != (char *)puVar9[4]) goto LAB_0003bc6c;\n              if (puVar8[5] != puVar9[5]) {\n                uVar20 = 0;\n                goto LAB_0003bc14;\n              }\n            }" { (if_statement "if ((char *)puVar8[4] != (char *)puVar9[4]) goto LAB_0003bc6c;" if (parenthesized_expression "((char *)puVar8[4] != (char *)puVar9[4])" ( (binary_expression "(char *)puVar8[4] != (char *)puVar9[4]" (cast_expression "(char *)puVar8[4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[4]" identifier [ number_literal ])) != (cast_expression "(char *)puVar9[4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[4]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_0003bc6c;" goto statement_identifier ;)) (if_statement "if (puVar8[5] != puVar9[5]) {\n                uVar20 = 0;\n                goto LAB_0003bc14;\n              }" if (parenthesized_expression "(puVar8[5] != puVar9[5])" ( (binary_expression "puVar8[5] != puVar9[5]" (subscript_expression "puVar8[5]" identifier [ number_literal ]) != (subscript_expression "puVar9[5]" identifier [ number_literal ])) )) (compound_statement "{\n                uVar20 = 0;\n                goto LAB_0003bc14;\n              }" { (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0003bc14;" goto statement_identifier ;) })) }) (else_clause "else {\n              iVar19 = strcmp((char *)puVar8[4],(char *)puVar9[4]);\n              if (iVar19 != 0) goto LAB_0003bc6c;\n            }" else (compound_statement "{\n              iVar19 = strcmp((char *)puVar8[4],(char *)puVar9[4]);\n              if (iVar19 != 0) goto LAB_0003bc6c;\n            }" { (expression_statement "iVar19 = strcmp((char *)puVar8[4],(char *)puVar9[4]);" (assignment_expression "iVar19 = strcmp((char *)puVar8[4],(char *)puVar9[4])" identifier = (call_expression "strcmp((char *)puVar8[4],(char *)puVar9[4])" identifier (argument_list "((char *)puVar8[4],(char *)puVar9[4])" ( (cast_expression "(char *)puVar8[4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[4]" identifier [ number_literal ])) , (cast_expression "(char *)puVar9[4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[4]" identifier [ number_literal ])) )))) ;) (if_statement "if (iVar19 != 0) goto LAB_0003bc6c;" if (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0003bc6c;" goto statement_identifier ;)) }))) (expression_statement "iVar19 = strcmp(__s1,__s2);" (assignment_expression "iVar19 = strcmp(__s1,__s2)" identifier = (call_expression "strcmp(__s1,__s2)" identifier (argument_list "(__s1,__s2)" ( identifier , identifier )))) ;) (if_statement "if (iVar19 != 0) goto LAB_0003bc6c;" if (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0003bc6c;" goto statement_identifier ;)) (expression_statement "pdVar17 = debug_get_real_type(info,(debug_type_conflict)puVar9[1],\n                                          (debug_type_real_list *)0x0);" (assignment_expression "pdVar17 = debug_get_real_type(info,(debug_type_conflict)puVar9[1],\n                                          (debug_type_real_list *)0x0)" identifier = (call_expression "debug_get_real_type(info,(debug_type_conflict)puVar9[1],\n                                          (debug_type_real_list *)0x0)" identifier (argument_list "(info,(debug_type_conflict)puVar9[1],\n                                          (debug_type_real_list *)0x0)" ( identifier , (cast_expression "(debug_type_conflict)puVar9[1]" ( (type_descriptor "debug_type_conflict" type_identifier) ) (subscript_expression "puVar9[1]" identifier [ number_literal ])) , (cast_expression "(debug_type_real_list *)0x0" ( (type_descriptor "debug_type_real_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "pdVar18 = debug_get_real_type(info,(debug_type_conflict)puVar8[1],\n                                          (debug_type_real_list *)0x0);" (assignment_expression "pdVar18 = debug_get_real_type(info,(debug_type_conflict)puVar8[1],\n                                          (debug_type_real_list *)0x0)" identifier = (call_expression "debug_get_real_type(info,(debug_type_conflict)puVar8[1],\n                                          (debug_type_real_list *)0x0)" identifier (argument_list "(info,(debug_type_conflict)puVar8[1],\n                                          (debug_type_real_list *)0x0)" ( identifier , (cast_expression "(debug_type_conflict)puVar8[1]" ( (type_descriptor "debug_type_conflict" type_identifier) ) (subscript_expression "puVar8[1]" identifier [ number_literal ])) , (cast_expression "(debug_type_real_list *)0x0" ( (type_descriptor "debug_type_real_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "bVar22 = debug_type_samep(info,pdVar18,pdVar17);" (assignment_expression "bVar22 = debug_type_samep(info,pdVar18,pdVar17)" identifier = (call_expression "debug_type_samep(info,pdVar18,pdVar17)" identifier (argument_list "(info,pdVar18,pdVar17)" ( identifier , identifier , identifier )))) ;) (expression_statement "local_48 = local_48 + 4;" (assignment_expression "local_48 = local_48 + 4" identifier = (binary_expression "local_48 + 4" identifier + number_literal)) ;) (if_statement "if (bVar22 == 0) goto LAB_0003bc6c;" if (parenthesized_expression "(bVar22 == 0)" ( (binary_expression "bVar22 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0003bc6c;" goto statement_identifier ;)) })) (if_statement "if (puVar9 == (undefined4 *)0x0) goto LAB_0003c02c;" if (parenthesized_expression "(puVar9 == (undefined4 *)0x0)" ( (binary_expression "puVar9 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003c02c;" goto statement_identifier ;)) }))) })) })) (break_statement "break;" break ;)) (case_statement "case DEBUG_KIND_ENUM:\n    pdVar10 = (t1->u).knamed;\n    pdVar11 = (t2->u).knamed;\n    if (pdVar10 == (debug_named_type *)0x0) {\n      uVar20 = (uint)(pdVar11 == (debug_named_type *)0x0);\n      goto LAB_0003bc14;\n    }\n    if (pdVar11 != (debug_named_type *)0x0) {\n      local_44 = pdVar10->name;\n      local_4c = pdVar11->name;\n      pdVar29 = pdVar10->type;\n      pdVar26 = pdVar11->type;\n      __s1_00 = local_44->next;\n      __s2_00 = local_4c->next;\n      if (__s1_00 == (debug_name *)0x0) {\nLAB_0003c1d9:\n        uVar20 = (uint)(local_4c->next == (debug_name *)0x0);\n        goto LAB_0003bc14;\n      }\n      if ((((__s2_00 != (debug_name *)0x0) && (*(char *)&__s2_00->next == *(char *)&__s1_00->next))\n          && (pdVar26->size == pdVar29->size)) && (pdVar26->kind == pdVar29->kind)) {\n        while (iVar19 = strcmp((char *)__s1_00,(char *)__s2_00), iVar19 == 0) {\n          local_44 = (debug_name *)&local_44->name;\n          ppdVar28 = &pdVar29->pointer;\n          ppdVar25 = &pdVar26->pointer;\n          local_4c = (debug_name *)&local_4c->name;\n          __s1_00 = *(debug_name **)local_44;\n          __s2_00 = *(debug_name **)local_4c;\n          if (__s1_00 == (debug_name *)0x0) goto LAB_0003c1d9;\n          if (((__s2_00 == (debug_name *)0x0) ||\n              (*(char *)&__s1_00->next != *(char *)&__s2_00->next)) ||\n             (paVar1 = &pdVar29->u, paVar2 = &pdVar26->u, pdVar26 = (debug_type_conflict)ppdVar25,\n             pdVar29 = (debug_type_conflict)ppdVar28,\n             paVar1->kindirect != paVar2->kindirect || *ppdVar28 != *ppdVar25)) break;\n        }\n        uVar20 = 0;\n        goto LAB_0003bc14;\n      }\n    }\n    break;" case identifier : (expression_statement "pdVar10 = (t1->u).knamed;" (assignment_expression "pdVar10 = (t1->u).knamed" identifier = (field_expression "(t1->u).knamed" (parenthesized_expression "(t1->u)" ( (field_expression "t1->u" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pdVar11 = (t2->u).knamed;" (assignment_expression "pdVar11 = (t2->u).knamed" identifier = (field_expression "(t2->u).knamed" (parenthesized_expression "(t2->u)" ( (field_expression "t2->u" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (pdVar10 == (debug_named_type *)0x0) {\n      uVar20 = (uint)(pdVar11 == (debug_named_type *)0x0);\n      goto LAB_0003bc14;\n    }" if (parenthesized_expression "(pdVar10 == (debug_named_type *)0x0)" ( (binary_expression "pdVar10 == (debug_named_type *)0x0" identifier == (cast_expression "(debug_named_type *)0x0" ( (type_descriptor "debug_named_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar20 = (uint)(pdVar11 == (debug_named_type *)0x0);\n      goto LAB_0003bc14;\n    }" { (expression_statement "uVar20 = (uint)(pdVar11 == (debug_named_type *)0x0);" (assignment_expression "uVar20 = (uint)(pdVar11 == (debug_named_type *)0x0)" identifier = (call_expression "(uint)(pdVar11 == (debug_named_type *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pdVar11 == (debug_named_type *)0x0)" ( (binary_expression "pdVar11 == (debug_named_type *)0x0" identifier == (cast_expression "(debug_named_type *)0x0" ( (type_descriptor "debug_named_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )))) ;) (goto_statement "goto LAB_0003bc14;" goto statement_identifier ;) })) (if_statement "if (pdVar11 != (debug_named_type *)0x0) {\n      local_44 = pdVar10->name;\n      local_4c = pdVar11->name;\n      pdVar29 = pdVar10->type;\n      pdVar26 = pdVar11->type;\n      __s1_00 = local_44->next;\n      __s2_00 = local_4c->next;\n      if (__s1_00 == (debug_name *)0x0) {\nLAB_0003c1d9:\n        uVar20 = (uint)(local_4c->next == (debug_name *)0x0);\n        goto LAB_0003bc14;\n      }\n      if ((((__s2_00 != (debug_name *)0x0) && (*(char *)&__s2_00->next == *(char *)&__s1_00->next))\n          && (pdVar26->size == pdVar29->size)) && (pdVar26->kind == pdVar29->kind)) {\n        while (iVar19 = strcmp((char *)__s1_00,(char *)__s2_00), iVar19 == 0) {\n          local_44 = (debug_name *)&local_44->name;\n          ppdVar28 = &pdVar29->pointer;\n          ppdVar25 = &pdVar26->pointer;\n          local_4c = (debug_name *)&local_4c->name;\n          __s1_00 = *(debug_name **)local_44;\n          __s2_00 = *(debug_name **)local_4c;\n          if (__s1_00 == (debug_name *)0x0) goto LAB_0003c1d9;\n          if (((__s2_00 == (debug_name *)0x0) ||\n              (*(char *)&__s1_00->next != *(char *)&__s2_00->next)) ||\n             (paVar1 = &pdVar29->u, paVar2 = &pdVar26->u, pdVar26 = (debug_type_conflict)ppdVar25,\n             pdVar29 = (debug_type_conflict)ppdVar28,\n             paVar1->kindirect != paVar2->kindirect || *ppdVar28 != *ppdVar25)) break;\n        }\n        uVar20 = 0;\n        goto LAB_0003bc14;\n      }\n    }" if (parenthesized_expression "(pdVar11 != (debug_named_type *)0x0)" ( (binary_expression "pdVar11 != (debug_named_type *)0x0" identifier != (cast_expression "(debug_named_type *)0x0" ( (type_descriptor "debug_named_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_44 = pdVar10->name;\n      local_4c = pdVar11->name;\n      pdVar29 = pdVar10->type;\n      pdVar26 = pdVar11->type;\n      __s1_00 = local_44->next;\n      __s2_00 = local_4c->next;\n      if (__s1_00 == (debug_name *)0x0) {\nLAB_0003c1d9:\n        uVar20 = (uint)(local_4c->next == (debug_name *)0x0);\n        goto LAB_0003bc14;\n      }\n      if ((((__s2_00 != (debug_name *)0x0) && (*(char *)&__s2_00->next == *(char *)&__s1_00->next))\n          && (pdVar26->size == pdVar29->size)) && (pdVar26->kind == pdVar29->kind)) {\n        while (iVar19 = strcmp((char *)__s1_00,(char *)__s2_00), iVar19 == 0) {\n          local_44 = (debug_name *)&local_44->name;\n          ppdVar28 = &pdVar29->pointer;\n          ppdVar25 = &pdVar26->pointer;\n          local_4c = (debug_name *)&local_4c->name;\n          __s1_00 = *(debug_name **)local_44;\n          __s2_00 = *(debug_name **)local_4c;\n          if (__s1_00 == (debug_name *)0x0) goto LAB_0003c1d9;\n          if (((__s2_00 == (debug_name *)0x0) ||\n              (*(char *)&__s1_00->next != *(char *)&__s2_00->next)) ||\n             (paVar1 = &pdVar29->u, paVar2 = &pdVar26->u, pdVar26 = (debug_type_conflict)ppdVar25,\n             pdVar29 = (debug_type_conflict)ppdVar28,\n             paVar1->kindirect != paVar2->kindirect || *ppdVar28 != *ppdVar25)) break;\n        }\n        uVar20 = 0;\n        goto LAB_0003bc14;\n      }\n    }" { (expression_statement "local_44 = pdVar10->name;" (assignment_expression "local_44 = pdVar10->name" identifier = (field_expression "pdVar10->name" identifier -> field_identifier)) ;) (expression_statement "local_4c = pdVar11->name;" (assignment_expression "local_4c = pdVar11->name" identifier = (field_expression "pdVar11->name" identifier -> field_identifier)) ;) (expression_statement "pdVar29 = pdVar10->type;" (assignment_expression "pdVar29 = pdVar10->type" identifier = (field_expression "pdVar10->type" identifier -> field_identifier)) ;) (expression_statement "pdVar26 = pdVar11->type;" (assignment_expression "pdVar26 = pdVar11->type" identifier = (field_expression "pdVar11->type" identifier -> field_identifier)) ;) (expression_statement "__s1_00 = local_44->next;" (assignment_expression "__s1_00 = local_44->next" identifier = (field_expression "local_44->next" identifier -> field_identifier)) ;) (expression_statement "__s2_00 = local_4c->next;" (assignment_expression "__s2_00 = local_4c->next" identifier = (field_expression "local_4c->next" identifier -> field_identifier)) ;) (if_statement "if (__s1_00 == (debug_name *)0x0) {\nLAB_0003c1d9:\n        uVar20 = (uint)(local_4c->next == (debug_name *)0x0);\n        goto LAB_0003bc14;\n      }" if (parenthesized_expression "(__s1_00 == (debug_name *)0x0)" ( (binary_expression "__s1_00 == (debug_name *)0x0" identifier == (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0003c1d9:\n        uVar20 = (uint)(local_4c->next == (debug_name *)0x0);\n        goto LAB_0003bc14;\n      }" { (labeled_statement "LAB_0003c1d9:\n        uVar20 = (uint)(local_4c->next == (debug_name *)0x0);" statement_identifier : (expression_statement "uVar20 = (uint)(local_4c->next == (debug_name *)0x0);" (assignment_expression "uVar20 = (uint)(local_4c->next == (debug_name *)0x0)" identifier = (call_expression "(uint)(local_4c->next == (debug_name *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_4c->next == (debug_name *)0x0)" ( (binary_expression "local_4c->next == (debug_name *)0x0" (field_expression "local_4c->next" identifier -> field_identifier) == (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )))) ;)) (goto_statement "goto LAB_0003bc14;" goto statement_identifier ;) })) (if_statement "if ((((__s2_00 != (debug_name *)0x0) && (*(char *)&__s2_00->next == *(char *)&__s1_00->next))\n          && (pdVar26->size == pdVar29->size)) && (pdVar26->kind == pdVar29->kind)) {\n        while (iVar19 = strcmp((char *)__s1_00,(char *)__s2_00), iVar19 == 0) {\n          local_44 = (debug_name *)&local_44->name;\n          ppdVar28 = &pdVar29->pointer;\n          ppdVar25 = &pdVar26->pointer;\n          local_4c = (debug_name *)&local_4c->name;\n          __s1_00 = *(debug_name **)local_44;\n          __s2_00 = *(debug_name **)local_4c;\n          if (__s1_00 == (debug_name *)0x0) goto LAB_0003c1d9;\n          if (((__s2_00 == (debug_name *)0x0) ||\n              (*(char *)&__s1_00->next != *(char *)&__s2_00->next)) ||\n             (paVar1 = &pdVar29->u, paVar2 = &pdVar26->u, pdVar26 = (debug_type_conflict)ppdVar25,\n             pdVar29 = (debug_type_conflict)ppdVar28,\n             paVar1->kindirect != paVar2->kindirect || *ppdVar28 != *ppdVar25)) break;\n        }\n        uVar20 = 0;\n        goto LAB_0003bc14;\n      }" if (parenthesized_expression "((((__s2_00 != (debug_name *)0x0) && (*(char *)&__s2_00->next == *(char *)&__s1_00->next))\n          && (pdVar26->size == pdVar29->size)) && (pdVar26->kind == pdVar29->kind))" ( (binary_expression "(((__s2_00 != (debug_name *)0x0) && (*(char *)&__s2_00->next == *(char *)&__s1_00->next))\n          && (pdVar26->size == pdVar29->size)) && (pdVar26->kind == pdVar29->kind)" (parenthesized_expression "(((__s2_00 != (debug_name *)0x0) && (*(char *)&__s2_00->next == *(char *)&__s1_00->next))\n          && (pdVar26->size == pdVar29->size))" ( (binary_expression "((__s2_00 != (debug_name *)0x0) && (*(char *)&__s2_00->next == *(char *)&__s1_00->next))\n          && (pdVar26->size == pdVar29->size)" (parenthesized_expression "((__s2_00 != (debug_name *)0x0) && (*(char *)&__s2_00->next == *(char *)&__s1_00->next))" ( (binary_expression "(__s2_00 != (debug_name *)0x0) && (*(char *)&__s2_00->next == *(char *)&__s1_00->next)" (parenthesized_expression "(__s2_00 != (debug_name *)0x0)" ( (binary_expression "__s2_00 != (debug_name *)0x0" identifier != (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*(char *)&__s2_00->next == *(char *)&__s1_00->next)" ( (binary_expression "*(char *)&__s2_00->next == *(char *)&__s1_00->next" (pointer_expression "*(char *)&__s2_00->next" * (cast_expression "(char *)&__s2_00->next" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&__s2_00->next" & (field_expression "__s2_00->next" identifier -> field_identifier)))) == (pointer_expression "*(char *)&__s1_00->next" * (cast_expression "(char *)&__s1_00->next" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&__s1_00->next" & (field_expression "__s1_00->next" identifier -> field_identifier))))) ))) )) && (parenthesized_expression "(pdVar26->size == pdVar29->size)" ( (binary_expression "pdVar26->size == pdVar29->size" (field_expression "pdVar26->size" identifier -> field_identifier) == (field_expression "pdVar29->size" identifier -> field_identifier)) ))) )) && (parenthesized_expression "(pdVar26->kind == pdVar29->kind)" ( (binary_expression "pdVar26->kind == pdVar29->kind" (field_expression "pdVar26->kind" identifier -> field_identifier) == (field_expression "pdVar29->kind" identifier -> field_identifier)) ))) )) (compound_statement "{\n        while (iVar19 = strcmp((char *)__s1_00,(char *)__s2_00), iVar19 == 0) {\n          local_44 = (debug_name *)&local_44->name;\n          ppdVar28 = &pdVar29->pointer;\n          ppdVar25 = &pdVar26->pointer;\n          local_4c = (debug_name *)&local_4c->name;\n          __s1_00 = *(debug_name **)local_44;\n          __s2_00 = *(debug_name **)local_4c;\n          if (__s1_00 == (debug_name *)0x0) goto LAB_0003c1d9;\n          if (((__s2_00 == (debug_name *)0x0) ||\n              (*(char *)&__s1_00->next != *(char *)&__s2_00->next)) ||\n             (paVar1 = &pdVar29->u, paVar2 = &pdVar26->u, pdVar26 = (debug_type_conflict)ppdVar25,\n             pdVar29 = (debug_type_conflict)ppdVar28,\n             paVar1->kindirect != paVar2->kindirect || *ppdVar28 != *ppdVar25)) break;\n        }\n        uVar20 = 0;\n        goto LAB_0003bc14;\n      }" { (while_statement "while (iVar19 = strcmp((char *)__s1_00,(char *)__s2_00), iVar19 == 0) {\n          local_44 = (debug_name *)&local_44->name;\n          ppdVar28 = &pdVar29->pointer;\n          ppdVar25 = &pdVar26->pointer;\n          local_4c = (debug_name *)&local_4c->name;\n          __s1_00 = *(debug_name **)local_44;\n          __s2_00 = *(debug_name **)local_4c;\n          if (__s1_00 == (debug_name *)0x0) goto LAB_0003c1d9;\n          if (((__s2_00 == (debug_name *)0x0) ||\n              (*(char *)&__s1_00->next != *(char *)&__s2_00->next)) ||\n             (paVar1 = &pdVar29->u, paVar2 = &pdVar26->u, pdVar26 = (debug_type_conflict)ppdVar25,\n             pdVar29 = (debug_type_conflict)ppdVar28,\n             paVar1->kindirect != paVar2->kindirect || *ppdVar28 != *ppdVar25)) break;\n        }" while (parenthesized_expression "(iVar19 = strcmp((char *)__s1_00,(char *)__s2_00), iVar19 == 0)" ( (comma_expression "iVar19 = strcmp((char *)__s1_00,(char *)__s2_00), iVar19 == 0" (assignment_expression "iVar19 = strcmp((char *)__s1_00,(char *)__s2_00)" identifier = (call_expression "strcmp((char *)__s1_00,(char *)__s2_00)" identifier (argument_list "((char *)__s1_00,(char *)__s2_00)" ( (cast_expression "(char *)__s1_00" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)__s2_00" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "iVar19 == 0" identifier == number_literal)) )) (compound_statement "{\n          local_44 = (debug_name *)&local_44->name;\n          ppdVar28 = &pdVar29->pointer;\n          ppdVar25 = &pdVar26->pointer;\n          local_4c = (debug_name *)&local_4c->name;\n          __s1_00 = *(debug_name **)local_44;\n          __s2_00 = *(debug_name **)local_4c;\n          if (__s1_00 == (debug_name *)0x0) goto LAB_0003c1d9;\n          if (((__s2_00 == (debug_name *)0x0) ||\n              (*(char *)&__s1_00->next != *(char *)&__s2_00->next)) ||\n             (paVar1 = &pdVar29->u, paVar2 = &pdVar26->u, pdVar26 = (debug_type_conflict)ppdVar25,\n             pdVar29 = (debug_type_conflict)ppdVar28,\n             paVar1->kindirect != paVar2->kindirect || *ppdVar28 != *ppdVar25)) break;\n        }" { (expression_statement "local_44 = (debug_name *)&local_44->name;" (assignment_expression "local_44 = (debug_name *)&local_44->name" identifier = (cast_expression "(debug_name *)&local_44->name" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_44->name" & (field_expression "local_44->name" identifier -> field_identifier)))) ;) (expression_statement "ppdVar28 = &pdVar29->pointer;" (assignment_expression "ppdVar28 = &pdVar29->pointer" identifier = (pointer_expression "&pdVar29->pointer" & (field_expression "pdVar29->pointer" identifier -> field_identifier))) ;) (expression_statement "ppdVar25 = &pdVar26->pointer;" (assignment_expression "ppdVar25 = &pdVar26->pointer" identifier = (pointer_expression "&pdVar26->pointer" & (field_expression "pdVar26->pointer" identifier -> field_identifier))) ;) (expression_statement "local_4c = (debug_name *)&local_4c->name;" (assignment_expression "local_4c = (debug_name *)&local_4c->name" identifier = (cast_expression "(debug_name *)&local_4c->name" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_4c->name" & (field_expression "local_4c->name" identifier -> field_identifier)))) ;) (expression_statement "__s1_00 = *(debug_name **)local_44;" (assignment_expression "__s1_00 = *(debug_name **)local_44" identifier = (pointer_expression "*(debug_name **)local_44" * (cast_expression "(debug_name **)local_44" ( (type_descriptor "debug_name **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "__s2_00 = *(debug_name **)local_4c;" (assignment_expression "__s2_00 = *(debug_name **)local_4c" identifier = (pointer_expression "*(debug_name **)local_4c" * (cast_expression "(debug_name **)local_4c" ( (type_descriptor "debug_name **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (__s1_00 == (debug_name *)0x0) goto LAB_0003c1d9;" if (parenthesized_expression "(__s1_00 == (debug_name *)0x0)" ( (binary_expression "__s1_00 == (debug_name *)0x0" identifier == (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003c1d9;" goto statement_identifier ;)) (if_statement "if (((__s2_00 == (debug_name *)0x0) ||\n              (*(char *)&__s1_00->next != *(char *)&__s2_00->next)) ||\n             (paVar1 = &pdVar29->u, paVar2 = &pdVar26->u, pdVar26 = (debug_type_conflict)ppdVar25,\n             pdVar29 = (debug_type_conflict)ppdVar28,\n             paVar1->kindirect != paVar2->kindirect || *ppdVar28 != *ppdVar25)) break;" if (parenthesized_expression "(((__s2_00 == (debug_name *)0x0) ||\n              (*(char *)&__s1_00->next != *(char *)&__s2_00->next)) ||\n             (paVar1 = &pdVar29->u, paVar2 = &pdVar26->u, pdVar26 = (debug_type_conflict)ppdVar25,\n             pdVar29 = (debug_type_conflict)ppdVar28,\n             paVar1->kindirect != paVar2->kindirect || *ppdVar28 != *ppdVar25))" ( (binary_expression "((__s2_00 == (debug_name *)0x0) ||\n              (*(char *)&__s1_00->next != *(char *)&__s2_00->next)) ||\n             (paVar1 = &pdVar29->u, paVar2 = &pdVar26->u, pdVar26 = (debug_type_conflict)ppdVar25,\n             pdVar29 = (debug_type_conflict)ppdVar28,\n             paVar1->kindirect != paVar2->kindirect || *ppdVar28 != *ppdVar25)" (parenthesized_expression "((__s2_00 == (debug_name *)0x0) ||\n              (*(char *)&__s1_00->next != *(char *)&__s2_00->next))" ( (binary_expression "(__s2_00 == (debug_name *)0x0) ||\n              (*(char *)&__s1_00->next != *(char *)&__s2_00->next)" (parenthesized_expression "(__s2_00 == (debug_name *)0x0)" ( (binary_expression "__s2_00 == (debug_name *)0x0" identifier == (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*(char *)&__s1_00->next != *(char *)&__s2_00->next)" ( (binary_expression "*(char *)&__s1_00->next != *(char *)&__s2_00->next" (pointer_expression "*(char *)&__s1_00->next" * (cast_expression "(char *)&__s1_00->next" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&__s1_00->next" & (field_expression "__s1_00->next" identifier -> field_identifier)))) != (pointer_expression "*(char *)&__s2_00->next" * (cast_expression "(char *)&__s2_00->next" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&__s2_00->next" & (field_expression "__s2_00->next" identifier -> field_identifier))))) ))) )) || (parenthesized_expression "(paVar1 = &pdVar29->u, paVar2 = &pdVar26->u, pdVar26 = (debug_type_conflict)ppdVar25,\n             pdVar29 = (debug_type_conflict)ppdVar28,\n             paVar1->kindirect != paVar2->kindirect || *ppdVar28 != *ppdVar25)" ( (comma_expression "paVar1 = &pdVar29->u, paVar2 = &pdVar26->u, pdVar26 = (debug_type_conflict)ppdVar25,\n             pdVar29 = (debug_type_conflict)ppdVar28,\n             paVar1->kindirect != paVar2->kindirect || *ppdVar28 != *ppdVar25" (assignment_expression "paVar1 = &pdVar29->u" identifier = (pointer_expression "&pdVar29->u" & (field_expression "pdVar29->u" identifier -> field_identifier))) , (comma_expression "paVar2 = &pdVar26->u, pdVar26 = (debug_type_conflict)ppdVar25,\n             pdVar29 = (debug_type_conflict)ppdVar28,\n             paVar1->kindirect != paVar2->kindirect || *ppdVar28 != *ppdVar25" (assignment_expression "paVar2 = &pdVar26->u" identifier = (pointer_expression "&pdVar26->u" & (field_expression "pdVar26->u" identifier -> field_identifier))) , (comma_expression "pdVar26 = (debug_type_conflict)ppdVar25,\n             pdVar29 = (debug_type_conflict)ppdVar28,\n             paVar1->kindirect != paVar2->kindirect || *ppdVar28 != *ppdVar25" (assignment_expression "pdVar26 = (debug_type_conflict)ppdVar25" identifier = (cast_expression "(debug_type_conflict)ppdVar25" ( (type_descriptor "debug_type_conflict" type_identifier) ) identifier)) , (comma_expression "pdVar29 = (debug_type_conflict)ppdVar28,\n             paVar1->kindirect != paVar2->kindirect || *ppdVar28 != *ppdVar25" (assignment_expression "pdVar29 = (debug_type_conflict)ppdVar28" identifier = (cast_expression "(debug_type_conflict)ppdVar28" ( (type_descriptor "debug_type_conflict" type_identifier) ) identifier)) , (binary_expression "paVar1->kindirect != paVar2->kindirect || *ppdVar28 != *ppdVar25" (binary_expression "paVar1->kindirect != paVar2->kindirect" (field_expression "paVar1->kindirect" identifier -> field_identifier) != (field_expression "paVar2->kindirect" identifier -> field_identifier)) || (binary_expression "*ppdVar28 != *ppdVar25" (pointer_expression "*ppdVar28" * identifier) != (pointer_expression "*ppdVar25" * identifier))))))) ))) )) (break_statement "break;" break ;)) })) (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0003bc14;" goto statement_identifier ;) })) })) (break_statement "break;" break ;)) (case_statement "case DEBUG_KIND_POINTER:" case identifier :) (case_statement "case DEBUG_KIND_REFERENCE:" case identifier :) (case_statement "case DEBUG_KIND_CONST:" case identifier :) (case_statement "case DEBUG_KIND_VOLATILE:\n    uVar20 = debug_type_samep(info,(t1->u).kpointer,(t2->u).kpointer);\n    goto LAB_0003bc14;" case identifier : (expression_statement "uVar20 = debug_type_samep(info,(t1->u).kpointer,(t2->u).kpointer);" (assignment_expression "uVar20 = debug_type_samep(info,(t1->u).kpointer,(t2->u).kpointer)" identifier = (call_expression "debug_type_samep(info,(t1->u).kpointer,(t2->u).kpointer)" identifier (argument_list "(info,(t1->u).kpointer,(t2->u).kpointer)" ( identifier , (field_expression "(t1->u).kpointer" (parenthesized_expression "(t1->u)" ( (field_expression "t1->u" identifier -> field_identifier) )) . field_identifier) , (field_expression "(t2->u).kpointer" (parenthesized_expression "(t2->u)" ( (field_expression "t2->u" identifier -> field_identifier) )) . field_identifier) )))) ;) (goto_statement "goto LAB_0003bc14;" goto statement_identifier ;)) (case_statement "case DEBUG_KIND_FUNCTION:\n    if ((((t1->u).kfunction)->varargs == ((t2->u).kfunction)->varargs) &&\n       (bVar22 = debug_type_samep(info,((t1->u).kfunction)->return_type,\n                                  ((t2->u).kfunction)->return_type), bVar22 != 0)) {\n      ppdVar27 = ((t1->u).kfunction)->arg_types;\n      ppdVar24 = ((t2->u).kfunction)->arg_types;\n      if ((ppdVar27 == (debug_type_conflict *)0x0) == (ppdVar24 == (debug_type_conflict *)0x0)) {\n        if (ppdVar27 == (debug_type_conflict *)0x0) goto LAB_0003c016;\n        while( true ) {\n          if (*ppdVar27 == (debug_type_s *)0x0) break;\n          if (*ppdVar24 == (debug_type_s *)0x0) goto LAB_0003bc6c;\n          bVar22 = debug_type_samep(info,*ppdVar27,*ppdVar24);\n          if (bVar22 == 0) goto LAB_0003c004;\n          ppdVar27 = ppdVar27 + 1;\n          ppdVar24 = ppdVar24 + 1;\n        }\n        goto LAB_0003c00d;\n      }\n    }\n    break;" case identifier : (if_statement "if ((((t1->u).kfunction)->varargs == ((t2->u).kfunction)->varargs) &&\n       (bVar22 = debug_type_samep(info,((t1->u).kfunction)->return_type,\n                                  ((t2->u).kfunction)->return_type), bVar22 != 0)) {\n      ppdVar27 = ((t1->u).kfunction)->arg_types;\n      ppdVar24 = ((t2->u).kfunction)->arg_types;\n      if ((ppdVar27 == (debug_type_conflict *)0x0) == (ppdVar24 == (debug_type_conflict *)0x0)) {\n        if (ppdVar27 == (debug_type_conflict *)0x0) goto LAB_0003c016;\n        while( true ) {\n          if (*ppdVar27 == (debug_type_s *)0x0) break;\n          if (*ppdVar24 == (debug_type_s *)0x0) goto LAB_0003bc6c;\n          bVar22 = debug_type_samep(info,*ppdVar27,*ppdVar24);\n          if (bVar22 == 0) goto LAB_0003c004;\n          ppdVar27 = ppdVar27 + 1;\n          ppdVar24 = ppdVar24 + 1;\n        }\n        goto LAB_0003c00d;\n      }\n    }" if (parenthesized_expression "((((t1->u).kfunction)->varargs == ((t2->u).kfunction)->varargs) &&\n       (bVar22 = debug_type_samep(info,((t1->u).kfunction)->return_type,\n                                  ((t2->u).kfunction)->return_type), bVar22 != 0))" ( (binary_expression "(((t1->u).kfunction)->varargs == ((t2->u).kfunction)->varargs) &&\n       (bVar22 = debug_type_samep(info,((t1->u).kfunction)->return_type,\n                                  ((t2->u).kfunction)->return_type), bVar22 != 0)" (parenthesized_expression "(((t1->u).kfunction)->varargs == ((t2->u).kfunction)->varargs)" ( (binary_expression "((t1->u).kfunction)->varargs == ((t2->u).kfunction)->varargs" (field_expression "((t1->u).kfunction)->varargs" (parenthesized_expression "((t1->u).kfunction)" ( (field_expression "(t1->u).kfunction" (parenthesized_expression "(t1->u)" ( (field_expression "t1->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) == (field_expression "((t2->u).kfunction)->varargs" (parenthesized_expression "((t2->u).kfunction)" ( (field_expression "(t2->u).kfunction" (parenthesized_expression "(t2->u)" ( (field_expression "t2->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) )) && (parenthesized_expression "(bVar22 = debug_type_samep(info,((t1->u).kfunction)->return_type,\n                                  ((t2->u).kfunction)->return_type), bVar22 != 0)" ( (comma_expression "bVar22 = debug_type_samep(info,((t1->u).kfunction)->return_type,\n                                  ((t2->u).kfunction)->return_type), bVar22 != 0" (assignment_expression "bVar22 = debug_type_samep(info,((t1->u).kfunction)->return_type,\n                                  ((t2->u).kfunction)->return_type)" identifier = (call_expression "debug_type_samep(info,((t1->u).kfunction)->return_type,\n                                  ((t2->u).kfunction)->return_type)" identifier (argument_list "(info,((t1->u).kfunction)->return_type,\n                                  ((t2->u).kfunction)->return_type)" ( identifier , (field_expression "((t1->u).kfunction)->return_type" (parenthesized_expression "((t1->u).kfunction)" ( (field_expression "(t1->u).kfunction" (parenthesized_expression "(t1->u)" ( (field_expression "t1->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) , (field_expression "((t2->u).kfunction)->return_type" (parenthesized_expression "((t2->u).kfunction)" ( (field_expression "(t2->u).kfunction" (parenthesized_expression "(t2->u)" ( (field_expression "t2->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) )))) , (binary_expression "bVar22 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      ppdVar27 = ((t1->u).kfunction)->arg_types;\n      ppdVar24 = ((t2->u).kfunction)->arg_types;\n      if ((ppdVar27 == (debug_type_conflict *)0x0) == (ppdVar24 == (debug_type_conflict *)0x0)) {\n        if (ppdVar27 == (debug_type_conflict *)0x0) goto LAB_0003c016;\n        while( true ) {\n          if (*ppdVar27 == (debug_type_s *)0x0) break;\n          if (*ppdVar24 == (debug_type_s *)0x0) goto LAB_0003bc6c;\n          bVar22 = debug_type_samep(info,*ppdVar27,*ppdVar24);\n          if (bVar22 == 0) goto LAB_0003c004;\n          ppdVar27 = ppdVar27 + 1;\n          ppdVar24 = ppdVar24 + 1;\n        }\n        goto LAB_0003c00d;\n      }\n    }" { (expression_statement "ppdVar27 = ((t1->u).kfunction)->arg_types;" (assignment_expression "ppdVar27 = ((t1->u).kfunction)->arg_types" identifier = (field_expression "((t1->u).kfunction)->arg_types" (parenthesized_expression "((t1->u).kfunction)" ( (field_expression "(t1->u).kfunction" (parenthesized_expression "(t1->u)" ( (field_expression "t1->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ;) (expression_statement "ppdVar24 = ((t2->u).kfunction)->arg_types;" (assignment_expression "ppdVar24 = ((t2->u).kfunction)->arg_types" identifier = (field_expression "((t2->u).kfunction)->arg_types" (parenthesized_expression "((t2->u).kfunction)" ( (field_expression "(t2->u).kfunction" (parenthesized_expression "(t2->u)" ( (field_expression "t2->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ;) (if_statement "if ((ppdVar27 == (debug_type_conflict *)0x0) == (ppdVar24 == (debug_type_conflict *)0x0)) {\n        if (ppdVar27 == (debug_type_conflict *)0x0) goto LAB_0003c016;\n        while( true ) {\n          if (*ppdVar27 == (debug_type_s *)0x0) break;\n          if (*ppdVar24 == (debug_type_s *)0x0) goto LAB_0003bc6c;\n          bVar22 = debug_type_samep(info,*ppdVar27,*ppdVar24);\n          if (bVar22 == 0) goto LAB_0003c004;\n          ppdVar27 = ppdVar27 + 1;\n          ppdVar24 = ppdVar24 + 1;\n        }\n        goto LAB_0003c00d;\n      }" if (parenthesized_expression "((ppdVar27 == (debug_type_conflict *)0x0) == (ppdVar24 == (debug_type_conflict *)0x0))" ( (binary_expression "(ppdVar27 == (debug_type_conflict *)0x0) == (ppdVar24 == (debug_type_conflict *)0x0)" (parenthesized_expression "(ppdVar27 == (debug_type_conflict *)0x0)" ( (binary_expression "ppdVar27 == (debug_type_conflict *)0x0" identifier == (cast_expression "(debug_type_conflict *)0x0" ( (type_descriptor "debug_type_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) == (parenthesized_expression "(ppdVar24 == (debug_type_conflict *)0x0)" ( (binary_expression "ppdVar24 == (debug_type_conflict *)0x0" identifier == (cast_expression "(debug_type_conflict *)0x0" ( (type_descriptor "debug_type_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n        if (ppdVar27 == (debug_type_conflict *)0x0) goto LAB_0003c016;\n        while( true ) {\n          if (*ppdVar27 == (debug_type_s *)0x0) break;\n          if (*ppdVar24 == (debug_type_s *)0x0) goto LAB_0003bc6c;\n          bVar22 = debug_type_samep(info,*ppdVar27,*ppdVar24);\n          if (bVar22 == 0) goto LAB_0003c004;\n          ppdVar27 = ppdVar27 + 1;\n          ppdVar24 = ppdVar24 + 1;\n        }\n        goto LAB_0003c00d;\n      }" { (if_statement "if (ppdVar27 == (debug_type_conflict *)0x0) goto LAB_0003c016;" if (parenthesized_expression "(ppdVar27 == (debug_type_conflict *)0x0)" ( (binary_expression "ppdVar27 == (debug_type_conflict *)0x0" identifier == (cast_expression "(debug_type_conflict *)0x0" ( (type_descriptor "debug_type_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003c016;" goto statement_identifier ;)) (while_statement "while( true ) {\n          if (*ppdVar27 == (debug_type_s *)0x0) break;\n          if (*ppdVar24 == (debug_type_s *)0x0) goto LAB_0003bc6c;\n          bVar22 = debug_type_samep(info,*ppdVar27,*ppdVar24);\n          if (bVar22 == 0) goto LAB_0003c004;\n          ppdVar27 = ppdVar27 + 1;\n          ppdVar24 = ppdVar24 + 1;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          if (*ppdVar27 == (debug_type_s *)0x0) break;\n          if (*ppdVar24 == (debug_type_s *)0x0) goto LAB_0003bc6c;\n          bVar22 = debug_type_samep(info,*ppdVar27,*ppdVar24);\n          if (bVar22 == 0) goto LAB_0003c004;\n          ppdVar27 = ppdVar27 + 1;\n          ppdVar24 = ppdVar24 + 1;\n        }" { (if_statement "if (*ppdVar27 == (debug_type_s *)0x0) break;" if (parenthesized_expression "(*ppdVar27 == (debug_type_s *)0x0)" ( (binary_expression "*ppdVar27 == (debug_type_s *)0x0" (pointer_expression "*ppdVar27" * identifier) == (cast_expression "(debug_type_s *)0x0" ( (type_descriptor "debug_type_s *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (if_statement "if (*ppdVar24 == (debug_type_s *)0x0) goto LAB_0003bc6c;" if (parenthesized_expression "(*ppdVar24 == (debug_type_s *)0x0)" ( (binary_expression "*ppdVar24 == (debug_type_s *)0x0" (pointer_expression "*ppdVar24" * identifier) == (cast_expression "(debug_type_s *)0x0" ( (type_descriptor "debug_type_s *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003bc6c;" goto statement_identifier ;)) (expression_statement "bVar22 = debug_type_samep(info,*ppdVar27,*ppdVar24);" (assignment_expression "bVar22 = debug_type_samep(info,*ppdVar27,*ppdVar24)" identifier = (call_expression "debug_type_samep(info,*ppdVar27,*ppdVar24)" identifier (argument_list "(info,*ppdVar27,*ppdVar24)" ( identifier , (pointer_expression "*ppdVar27" * identifier) , (pointer_expression "*ppdVar24" * identifier) )))) ;) (if_statement "if (bVar22 == 0) goto LAB_0003c004;" if (parenthesized_expression "(bVar22 == 0)" ( (binary_expression "bVar22 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0003c004;" goto statement_identifier ;)) (expression_statement "ppdVar27 = ppdVar27 + 1;" (assignment_expression "ppdVar27 = ppdVar27 + 1" identifier = (binary_expression "ppdVar27 + 1" identifier + number_literal)) ;) (expression_statement "ppdVar24 = ppdVar24 + 1;" (assignment_expression "ppdVar24 = ppdVar24 + 1" identifier = (binary_expression "ppdVar24 + 1" identifier + number_literal)) ;) })) (goto_statement "goto LAB_0003c00d;" goto statement_identifier ;) })) })) (break_statement "break;" break ;)) (case_statement "case DEBUG_KIND_RANGE:\n    pdVar21 = (debug_class_type *)(t1->u).kmethod;\n    pdVar23 = (debug_class_type *)(t2->u).kmethod;\n    if (((pdVar21->id == pdVar23->id) &&\n        ((debug_type_conflict *)pdVar21->mark == (debug_type_conflict *)pdVar23->mark)) &&\n       (pdVar21->methods == pdVar23->methods)) {\n      if (pdVar21->baseclasses != pdVar23->baseclasses) {\n        uVar20 = 0;\n        goto LAB_0003bc14;\n      }\nLAB_0003be6e:\n      pdVar17 = (debug_type_s *)pdVar23->fields;\n      pdVar18 = (debug_type_s *)pdVar21->fields;\nLAB_0003be48:\n      bVar22 = debug_type_samep(info,pdVar18,pdVar17);\n      uVar20 = (uint)(bVar22 != 0);\n      goto LAB_0003bc14;\n    }\n    break;" case identifier : (expression_statement "pdVar21 = (debug_class_type *)(t1->u).kmethod;" (assignment_expression "pdVar21 = (debug_class_type *)(t1->u).kmethod" identifier = (cast_expression "(debug_class_type *)(t1->u).kmethod" ( (type_descriptor "debug_class_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(t1->u).kmethod" (parenthesized_expression "(t1->u)" ( (field_expression "t1->u" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "pdVar23 = (debug_class_type *)(t2->u).kmethod;" (assignment_expression "pdVar23 = (debug_class_type *)(t2->u).kmethod" identifier = (cast_expression "(debug_class_type *)(t2->u).kmethod" ( (type_descriptor "debug_class_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(t2->u).kmethod" (parenthesized_expression "(t2->u)" ( (field_expression "t2->u" identifier -> field_identifier) )) . field_identifier))) ;) (if_statement "if (((pdVar21->id == pdVar23->id) &&\n        ((debug_type_conflict *)pdVar21->mark == (debug_type_conflict *)pdVar23->mark)) &&\n       (pdVar21->methods == pdVar23->methods)) {\n      if (pdVar21->baseclasses != pdVar23->baseclasses) {\n        uVar20 = 0;\n        goto LAB_0003bc14;\n      }\nLAB_0003be6e:\n      pdVar17 = (debug_type_s *)pdVar23->fields;\n      pdVar18 = (debug_type_s *)pdVar21->fields;\nLAB_0003be48:\n      bVar22 = debug_type_samep(info,pdVar18,pdVar17);\n      uVar20 = (uint)(bVar22 != 0);\n      goto LAB_0003bc14;\n    }" if (parenthesized_expression "(((pdVar21->id == pdVar23->id) &&\n        ((debug_type_conflict *)pdVar21->mark == (debug_type_conflict *)pdVar23->mark)) &&\n       (pdVar21->methods == pdVar23->methods))" ( (binary_expression "((pdVar21->id == pdVar23->id) &&\n        ((debug_type_conflict *)pdVar21->mark == (debug_type_conflict *)pdVar23->mark)) &&\n       (pdVar21->methods == pdVar23->methods)" (parenthesized_expression "((pdVar21->id == pdVar23->id) &&\n        ((debug_type_conflict *)pdVar21->mark == (debug_type_conflict *)pdVar23->mark))" ( (binary_expression "(pdVar21->id == pdVar23->id) &&\n        ((debug_type_conflict *)pdVar21->mark == (debug_type_conflict *)pdVar23->mark)" (parenthesized_expression "(pdVar21->id == pdVar23->id)" ( (binary_expression "pdVar21->id == pdVar23->id" (field_expression "pdVar21->id" identifier -> field_identifier) == (field_expression "pdVar23->id" identifier -> field_identifier)) )) && (parenthesized_expression "((debug_type_conflict *)pdVar21->mark == (debug_type_conflict *)pdVar23->mark)" ( (binary_expression "(debug_type_conflict *)pdVar21->mark == (debug_type_conflict *)pdVar23->mark" (cast_expression "(debug_type_conflict *)pdVar21->mark" ( (type_descriptor "debug_type_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pdVar21->mark" identifier -> field_identifier)) == (cast_expression "(debug_type_conflict *)pdVar23->mark" ( (type_descriptor "debug_type_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pdVar23->mark" identifier -> field_identifier))) ))) )) && (parenthesized_expression "(pdVar21->methods == pdVar23->methods)" ( (binary_expression "pdVar21->methods == pdVar23->methods" (field_expression "pdVar21->methods" identifier -> field_identifier) == (field_expression "pdVar23->methods" identifier -> field_identifier)) ))) )) (compound_statement "{\n      if (pdVar21->baseclasses != pdVar23->baseclasses) {\n        uVar20 = 0;\n        goto LAB_0003bc14;\n      }\nLAB_0003be6e:\n      pdVar17 = (debug_type_s *)pdVar23->fields;\n      pdVar18 = (debug_type_s *)pdVar21->fields;\nLAB_0003be48:\n      bVar22 = debug_type_samep(info,pdVar18,pdVar17);\n      uVar20 = (uint)(bVar22 != 0);\n      goto LAB_0003bc14;\n    }" { (if_statement "if (pdVar21->baseclasses != pdVar23->baseclasses) {\n        uVar20 = 0;\n        goto LAB_0003bc14;\n      }" if (parenthesized_expression "(pdVar21->baseclasses != pdVar23->baseclasses)" ( (binary_expression "pdVar21->baseclasses != pdVar23->baseclasses" (field_expression "pdVar21->baseclasses" identifier -> field_identifier) != (field_expression "pdVar23->baseclasses" identifier -> field_identifier)) )) (compound_statement "{\n        uVar20 = 0;\n        goto LAB_0003bc14;\n      }" { (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0003bc14;" goto statement_identifier ;) })) (labeled_statement "LAB_0003be6e:\n      pdVar17 = (debug_type_s *)pdVar23->fields;" statement_identifier : (expression_statement "pdVar17 = (debug_type_s *)pdVar23->fields;" (assignment_expression "pdVar17 = (debug_type_s *)pdVar23->fields" identifier = (cast_expression "(debug_type_s *)pdVar23->fields" ( (type_descriptor "debug_type_s *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pdVar23->fields" identifier -> field_identifier))) ;)) (expression_statement "pdVar18 = (debug_type_s *)pdVar21->fields;" (assignment_expression "pdVar18 = (debug_type_s *)pdVar21->fields" identifier = (cast_expression "(debug_type_s *)pdVar21->fields" ( (type_descriptor "debug_type_s *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pdVar21->fields" identifier -> field_identifier))) ;) (labeled_statement "LAB_0003be48:\n      bVar22 = debug_type_samep(info,pdVar18,pdVar17);" statement_identifier : (expression_statement "bVar22 = debug_type_samep(info,pdVar18,pdVar17);" (assignment_expression "bVar22 = debug_type_samep(info,pdVar18,pdVar17)" identifier = (call_expression "debug_type_samep(info,pdVar18,pdVar17)" identifier (argument_list "(info,pdVar18,pdVar17)" ( identifier , identifier , identifier )))) ;)) (expression_statement "uVar20 = (uint)(bVar22 != 0);" (assignment_expression "uVar20 = (uint)(bVar22 != 0)" identifier = (call_expression "(uint)(bVar22 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar22 != 0)" ( (binary_expression "bVar22 != 0" identifier != number_literal) )))) ;) (goto_statement "goto LAB_0003bc14;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case DEBUG_KIND_ARRAY:\n    pdVar21 = (t1->u).kclass;\n    pdVar23 = (t2->u).kclass;\n    if (((pdVar21->baseclasses == pdVar23->baseclasses) && (pdVar21->id == pdVar23->id)) &&\n       ((pdVar21->vptrbase == pdVar23->vptrbase && (pdVar21->methods == pdVar23->methods)))) {\n      if ((debug_type_conflict)pdVar21[1].fields != (debug_type_conflict)pdVar23[1].fields) {\n        uVar20 = 0;\n        goto LAB_0003bc14;\n      }\n      goto LAB_0003be6e;\n    }\n    break;" case identifier : (expression_statement "pdVar21 = (t1->u).kclass;" (assignment_expression "pdVar21 = (t1->u).kclass" identifier = (field_expression "(t1->u).kclass" (parenthesized_expression "(t1->u)" ( (field_expression "t1->u" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pdVar23 = (t2->u).kclass;" (assignment_expression "pdVar23 = (t2->u).kclass" identifier = (field_expression "(t2->u).kclass" (parenthesized_expression "(t2->u)" ( (field_expression "t2->u" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (((pdVar21->baseclasses == pdVar23->baseclasses) && (pdVar21->id == pdVar23->id)) &&\n       ((pdVar21->vptrbase == pdVar23->vptrbase && (pdVar21->methods == pdVar23->methods)))) {\n      if ((debug_type_conflict)pdVar21[1].fields != (debug_type_conflict)pdVar23[1].fields) {\n        uVar20 = 0;\n        goto LAB_0003bc14;\n      }\n      goto LAB_0003be6e;\n    }" if (parenthesized_expression "(((pdVar21->baseclasses == pdVar23->baseclasses) && (pdVar21->id == pdVar23->id)) &&\n       ((pdVar21->vptrbase == pdVar23->vptrbase && (pdVar21->methods == pdVar23->methods))))" ( (binary_expression "((pdVar21->baseclasses == pdVar23->baseclasses) && (pdVar21->id == pdVar23->id)) &&\n       ((pdVar21->vptrbase == pdVar23->vptrbase && (pdVar21->methods == pdVar23->methods)))" (parenthesized_expression "((pdVar21->baseclasses == pdVar23->baseclasses) && (pdVar21->id == pdVar23->id))" ( (binary_expression "(pdVar21->baseclasses == pdVar23->baseclasses) && (pdVar21->id == pdVar23->id)" (parenthesized_expression "(pdVar21->baseclasses == pdVar23->baseclasses)" ( (binary_expression "pdVar21->baseclasses == pdVar23->baseclasses" (field_expression "pdVar21->baseclasses" identifier -> field_identifier) == (field_expression "pdVar23->baseclasses" identifier -> field_identifier)) )) && (parenthesized_expression "(pdVar21->id == pdVar23->id)" ( (binary_expression "pdVar21->id == pdVar23->id" (field_expression "pdVar21->id" identifier -> field_identifier) == (field_expression "pdVar23->id" identifier -> field_identifier)) ))) )) && (parenthesized_expression "((pdVar21->vptrbase == pdVar23->vptrbase && (pdVar21->methods == pdVar23->methods)))" ( (parenthesized_expression "(pdVar21->vptrbase == pdVar23->vptrbase && (pdVar21->methods == pdVar23->methods))" ( (binary_expression "pdVar21->vptrbase == pdVar23->vptrbase && (pdVar21->methods == pdVar23->methods)" (binary_expression "pdVar21->vptrbase == pdVar23->vptrbase" (field_expression "pdVar21->vptrbase" identifier -> field_identifier) == (field_expression "pdVar23->vptrbase" identifier -> field_identifier)) && (parenthesized_expression "(pdVar21->methods == pdVar23->methods)" ( (binary_expression "pdVar21->methods == pdVar23->methods" (field_expression "pdVar21->methods" identifier -> field_identifier) == (field_expression "pdVar23->methods" identifier -> field_identifier)) ))) )) ))) )) (compound_statement "{\n      if ((debug_type_conflict)pdVar21[1].fields != (debug_type_conflict)pdVar23[1].fields) {\n        uVar20 = 0;\n        goto LAB_0003bc14;\n      }\n      goto LAB_0003be6e;\n    }" { (if_statement "if ((debug_type_conflict)pdVar21[1].fields != (debug_type_conflict)pdVar23[1].fields) {\n        uVar20 = 0;\n        goto LAB_0003bc14;\n      }" if (parenthesized_expression "((debug_type_conflict)pdVar21[1].fields != (debug_type_conflict)pdVar23[1].fields)" ( (binary_expression "(debug_type_conflict)pdVar21[1].fields != (debug_type_conflict)pdVar23[1].fields" (cast_expression "(debug_type_conflict)pdVar21[1].fields" ( (type_descriptor "debug_type_conflict" type_identifier) ) (field_expression "pdVar21[1].fields" (subscript_expression "pdVar21[1]" identifier [ number_literal ]) . field_identifier)) != (cast_expression "(debug_type_conflict)pdVar23[1].fields" ( (type_descriptor "debug_type_conflict" type_identifier) ) (field_expression "pdVar23[1].fields" (subscript_expression "pdVar23[1]" identifier [ number_literal ]) . field_identifier))) )) (compound_statement "{\n        uVar20 = 0;\n        goto LAB_0003bc14;\n      }" { (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0003bc14;" goto statement_identifier ;) })) (goto_statement "goto LAB_0003be6e;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case DEBUG_KIND_SET:\n    pdVar23 = (debug_class_type *)(t2->u).kfunction;\n    pdVar21 = (debug_class_type *)(t1->u).kfunction;\n    if ((debug_type_conflict *)pdVar21->mark == (debug_type_conflict *)pdVar23->mark)\n    goto LAB_0003be6e;\n    break;" case identifier : (expression_statement "pdVar23 = (debug_class_type *)(t2->u).kfunction;" (assignment_expression "pdVar23 = (debug_class_type *)(t2->u).kfunction" identifier = (cast_expression "(debug_class_type *)(t2->u).kfunction" ( (type_descriptor "debug_class_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(t2->u).kfunction" (parenthesized_expression "(t2->u)" ( (field_expression "t2->u" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "pdVar21 = (debug_class_type *)(t1->u).kfunction;" (assignment_expression "pdVar21 = (debug_class_type *)(t1->u).kfunction" identifier = (cast_expression "(debug_class_type *)(t1->u).kfunction" ( (type_descriptor "debug_class_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(t1->u).kfunction" (parenthesized_expression "(t1->u)" ( (field_expression "t1->u" identifier -> field_identifier) )) . field_identifier))) ;) (if_statement "if ((debug_type_conflict *)pdVar21->mark == (debug_type_conflict *)pdVar23->mark)\n    goto LAB_0003be6e;" if (parenthesized_expression "((debug_type_conflict *)pdVar21->mark == (debug_type_conflict *)pdVar23->mark)" ( (binary_expression "(debug_type_conflict *)pdVar21->mark == (debug_type_conflict *)pdVar23->mark" (cast_expression "(debug_type_conflict *)pdVar21->mark" ( (type_descriptor "debug_type_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pdVar21->mark" identifier -> field_identifier)) == (cast_expression "(debug_type_conflict *)pdVar23->mark" ( (type_descriptor "debug_type_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pdVar23->mark" identifier -> field_identifier))) )) (goto_statement "goto LAB_0003be6e;" goto statement_identifier ;)) (break_statement "break;" break ;)) (case_statement "case DEBUG_KIND_OFFSET:\n    bVar22 = debug_type_samep(info,((t1->u).kfunction)->return_type,((t2->u).kfunction)->return_type\n                             );\n    if (bVar22 != 0) {\n      pdVar17 = ((t2->u).karray)->range_type;\n      pdVar18 = ((t1->u).karray)->range_type;\n      goto LAB_0003be48;\n    }\n    break;" case identifier : (expression_statement "bVar22 = debug_type_samep(info,((t1->u).kfunction)->return_type,((t2->u).kfunction)->return_type\n                             );" (assignment_expression "bVar22 = debug_type_samep(info,((t1->u).kfunction)->return_type,((t2->u).kfunction)->return_type\n                             )" identifier = (call_expression "debug_type_samep(info,((t1->u).kfunction)->return_type,((t2->u).kfunction)->return_type\n                             )" identifier (argument_list "(info,((t1->u).kfunction)->return_type,((t2->u).kfunction)->return_type\n                             )" ( identifier , (field_expression "((t1->u).kfunction)->return_type" (parenthesized_expression "((t1->u).kfunction)" ( (field_expression "(t1->u).kfunction" (parenthesized_expression "(t1->u)" ( (field_expression "t1->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) , (field_expression "((t2->u).kfunction)->return_type" (parenthesized_expression "((t2->u).kfunction)" ( (field_expression "(t2->u).kfunction" (parenthesized_expression "(t2->u)" ( (field_expression "t2->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) )))) ;) (if_statement "if (bVar22 != 0) {\n      pdVar17 = ((t2->u).karray)->range_type;\n      pdVar18 = ((t1->u).karray)->range_type;\n      goto LAB_0003be48;\n    }" if (parenthesized_expression "(bVar22 != 0)" ( (binary_expression "bVar22 != 0" identifier != number_literal) )) (compound_statement "{\n      pdVar17 = ((t2->u).karray)->range_type;\n      pdVar18 = ((t1->u).karray)->range_type;\n      goto LAB_0003be48;\n    }" { (expression_statement "pdVar17 = ((t2->u).karray)->range_type;" (assignment_expression "pdVar17 = ((t2->u).karray)->range_type" identifier = (field_expression "((t2->u).karray)->range_type" (parenthesized_expression "((t2->u).karray)" ( (field_expression "(t2->u).karray" (parenthesized_expression "(t2->u)" ( (field_expression "t2->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ;) (expression_statement "pdVar18 = ((t1->u).karray)->range_type;" (assignment_expression "pdVar18 = ((t1->u).karray)->range_type" identifier = (field_expression "((t1->u).karray)->range_type" (parenthesized_expression "((t1->u).karray)" ( (field_expression "(t1->u).karray" (parenthesized_expression "(t1->u)" ( (field_expression "t1->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ;) (goto_statement "goto LAB_0003be48;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case DEBUG_KIND_METHOD:\n    if (((((t1->u).kmethod)->varargs == ((t2->u).kmethod)->varargs) &&\n        (bVar22 = debug_type_samep(info,((t1->u).kmethod)->return_type,\n                                   ((t2->u).kmethod)->return_type), bVar22 != 0)) &&\n       (bVar22 = debug_type_samep(info,((t1->u).karray)->range_type,((t2->u).karray)->range_type),\n       bVar22 != 0)) {\n      ppdVar27 = ((t1->u).kmethod)->arg_types;\n      ppdVar24 = ((t2->u).kmethod)->arg_types;\n      if ((ppdVar27 == (debug_type_conflict *)0x0) == (ppdVar24 == (debug_type_conflict *)0x0)) {\n        if (ppdVar27 == (debug_type_conflict *)0x0) goto LAB_0003c016;\n        while( true ) {\n          if (*ppdVar27 == (debug_type_s *)0x0) break;\n          if (*ppdVar24 == (debug_type_s *)0x0) goto LAB_0003bc6c;\n          bVar22 = debug_type_samep(info,*ppdVar27,*ppdVar24);\n          if (bVar22 == 0) goto LAB_0003c004;\n          ppdVar27 = ppdVar27 + 1;\n          ppdVar24 = ppdVar24 + 1;\n        }\n        goto LAB_0003c00d;\n      }\n    }\n    break;" case identifier : (if_statement "if (((((t1->u).kmethod)->varargs == ((t2->u).kmethod)->varargs) &&\n        (bVar22 = debug_type_samep(info,((t1->u).kmethod)->return_type,\n                                   ((t2->u).kmethod)->return_type), bVar22 != 0)) &&\n       (bVar22 = debug_type_samep(info,((t1->u).karray)->range_type,((t2->u).karray)->range_type),\n       bVar22 != 0)) {\n      ppdVar27 = ((t1->u).kmethod)->arg_types;\n      ppdVar24 = ((t2->u).kmethod)->arg_types;\n      if ((ppdVar27 == (debug_type_conflict *)0x0) == (ppdVar24 == (debug_type_conflict *)0x0)) {\n        if (ppdVar27 == (debug_type_conflict *)0x0) goto LAB_0003c016;\n        while( true ) {\n          if (*ppdVar27 == (debug_type_s *)0x0) break;\n          if (*ppdVar24 == (debug_type_s *)0x0) goto LAB_0003bc6c;\n          bVar22 = debug_type_samep(info,*ppdVar27,*ppdVar24);\n          if (bVar22 == 0) goto LAB_0003c004;\n          ppdVar27 = ppdVar27 + 1;\n          ppdVar24 = ppdVar24 + 1;\n        }\n        goto LAB_0003c00d;\n      }\n    }" if (parenthesized_expression "(((((t1->u).kmethod)->varargs == ((t2->u).kmethod)->varargs) &&\n        (bVar22 = debug_type_samep(info,((t1->u).kmethod)->return_type,\n                                   ((t2->u).kmethod)->return_type), bVar22 != 0)) &&\n       (bVar22 = debug_type_samep(info,((t1->u).karray)->range_type,((t2->u).karray)->range_type),\n       bVar22 != 0))" ( (binary_expression "((((t1->u).kmethod)->varargs == ((t2->u).kmethod)->varargs) &&\n        (bVar22 = debug_type_samep(info,((t1->u).kmethod)->return_type,\n                                   ((t2->u).kmethod)->return_type), bVar22 != 0)) &&\n       (bVar22 = debug_type_samep(info,((t1->u).karray)->range_type,((t2->u).karray)->range_type),\n       bVar22 != 0)" (parenthesized_expression "((((t1->u).kmethod)->varargs == ((t2->u).kmethod)->varargs) &&\n        (bVar22 = debug_type_samep(info,((t1->u).kmethod)->return_type,\n                                   ((t2->u).kmethod)->return_type), bVar22 != 0))" ( (binary_expression "(((t1->u).kmethod)->varargs == ((t2->u).kmethod)->varargs) &&\n        (bVar22 = debug_type_samep(info,((t1->u).kmethod)->return_type,\n                                   ((t2->u).kmethod)->return_type), bVar22 != 0)" (parenthesized_expression "(((t1->u).kmethod)->varargs == ((t2->u).kmethod)->varargs)" ( (binary_expression "((t1->u).kmethod)->varargs == ((t2->u).kmethod)->varargs" (field_expression "((t1->u).kmethod)->varargs" (parenthesized_expression "((t1->u).kmethod)" ( (field_expression "(t1->u).kmethod" (parenthesized_expression "(t1->u)" ( (field_expression "t1->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) == (field_expression "((t2->u).kmethod)->varargs" (parenthesized_expression "((t2->u).kmethod)" ( (field_expression "(t2->u).kmethod" (parenthesized_expression "(t2->u)" ( (field_expression "t2->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) )) && (parenthesized_expression "(bVar22 = debug_type_samep(info,((t1->u).kmethod)->return_type,\n                                   ((t2->u).kmethod)->return_type), bVar22 != 0)" ( (comma_expression "bVar22 = debug_type_samep(info,((t1->u).kmethod)->return_type,\n                                   ((t2->u).kmethod)->return_type), bVar22 != 0" (assignment_expression "bVar22 = debug_type_samep(info,((t1->u).kmethod)->return_type,\n                                   ((t2->u).kmethod)->return_type)" identifier = (call_expression "debug_type_samep(info,((t1->u).kmethod)->return_type,\n                                   ((t2->u).kmethod)->return_type)" identifier (argument_list "(info,((t1->u).kmethod)->return_type,\n                                   ((t2->u).kmethod)->return_type)" ( identifier , (field_expression "((t1->u).kmethod)->return_type" (parenthesized_expression "((t1->u).kmethod)" ( (field_expression "(t1->u).kmethod" (parenthesized_expression "(t1->u)" ( (field_expression "t1->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) , (field_expression "((t2->u).kmethod)->return_type" (parenthesized_expression "((t2->u).kmethod)" ( (field_expression "(t2->u).kmethod" (parenthesized_expression "(t2->u)" ( (field_expression "t2->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) )))) , (binary_expression "bVar22 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(bVar22 = debug_type_samep(info,((t1->u).karray)->range_type,((t2->u).karray)->range_type),\n       bVar22 != 0)" ( (comma_expression "bVar22 = debug_type_samep(info,((t1->u).karray)->range_type,((t2->u).karray)->range_type),\n       bVar22 != 0" (assignment_expression "bVar22 = debug_type_samep(info,((t1->u).karray)->range_type,((t2->u).karray)->range_type)" identifier = (call_expression "debug_type_samep(info,((t1->u).karray)->range_type,((t2->u).karray)->range_type)" identifier (argument_list "(info,((t1->u).karray)->range_type,((t2->u).karray)->range_type)" ( identifier , (field_expression "((t1->u).karray)->range_type" (parenthesized_expression "((t1->u).karray)" ( (field_expression "(t1->u).karray" (parenthesized_expression "(t1->u)" ( (field_expression "t1->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) , (field_expression "((t2->u).karray)->range_type" (parenthesized_expression "((t2->u).karray)" ( (field_expression "(t2->u).karray" (parenthesized_expression "(t2->u)" ( (field_expression "t2->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) )))) , (binary_expression "bVar22 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      ppdVar27 = ((t1->u).kmethod)->arg_types;\n      ppdVar24 = ((t2->u).kmethod)->arg_types;\n      if ((ppdVar27 == (debug_type_conflict *)0x0) == (ppdVar24 == (debug_type_conflict *)0x0)) {\n        if (ppdVar27 == (debug_type_conflict *)0x0) goto LAB_0003c016;\n        while( true ) {\n          if (*ppdVar27 == (debug_type_s *)0x0) break;\n          if (*ppdVar24 == (debug_type_s *)0x0) goto LAB_0003bc6c;\n          bVar22 = debug_type_samep(info,*ppdVar27,*ppdVar24);\n          if (bVar22 == 0) goto LAB_0003c004;\n          ppdVar27 = ppdVar27 + 1;\n          ppdVar24 = ppdVar24 + 1;\n        }\n        goto LAB_0003c00d;\n      }\n    }" { (expression_statement "ppdVar27 = ((t1->u).kmethod)->arg_types;" (assignment_expression "ppdVar27 = ((t1->u).kmethod)->arg_types" identifier = (field_expression "((t1->u).kmethod)->arg_types" (parenthesized_expression "((t1->u).kmethod)" ( (field_expression "(t1->u).kmethod" (parenthesized_expression "(t1->u)" ( (field_expression "t1->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ;) (expression_statement "ppdVar24 = ((t2->u).kmethod)->arg_types;" (assignment_expression "ppdVar24 = ((t2->u).kmethod)->arg_types" identifier = (field_expression "((t2->u).kmethod)->arg_types" (parenthesized_expression "((t2->u).kmethod)" ( (field_expression "(t2->u).kmethod" (parenthesized_expression "(t2->u)" ( (field_expression "t2->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ;) (if_statement "if ((ppdVar27 == (debug_type_conflict *)0x0) == (ppdVar24 == (debug_type_conflict *)0x0)) {\n        if (ppdVar27 == (debug_type_conflict *)0x0) goto LAB_0003c016;\n        while( true ) {\n          if (*ppdVar27 == (debug_type_s *)0x0) break;\n          if (*ppdVar24 == (debug_type_s *)0x0) goto LAB_0003bc6c;\n          bVar22 = debug_type_samep(info,*ppdVar27,*ppdVar24);\n          if (bVar22 == 0) goto LAB_0003c004;\n          ppdVar27 = ppdVar27 + 1;\n          ppdVar24 = ppdVar24 + 1;\n        }\n        goto LAB_0003c00d;\n      }" if (parenthesized_expression "((ppdVar27 == (debug_type_conflict *)0x0) == (ppdVar24 == (debug_type_conflict *)0x0))" ( (binary_expression "(ppdVar27 == (debug_type_conflict *)0x0) == (ppdVar24 == (debug_type_conflict *)0x0)" (parenthesized_expression "(ppdVar27 == (debug_type_conflict *)0x0)" ( (binary_expression "ppdVar27 == (debug_type_conflict *)0x0" identifier == (cast_expression "(debug_type_conflict *)0x0" ( (type_descriptor "debug_type_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) == (parenthesized_expression "(ppdVar24 == (debug_type_conflict *)0x0)" ( (binary_expression "ppdVar24 == (debug_type_conflict *)0x0" identifier == (cast_expression "(debug_type_conflict *)0x0" ( (type_descriptor "debug_type_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n        if (ppdVar27 == (debug_type_conflict *)0x0) goto LAB_0003c016;\n        while( true ) {\n          if (*ppdVar27 == (debug_type_s *)0x0) break;\n          if (*ppdVar24 == (debug_type_s *)0x0) goto LAB_0003bc6c;\n          bVar22 = debug_type_samep(info,*ppdVar27,*ppdVar24);\n          if (bVar22 == 0) goto LAB_0003c004;\n          ppdVar27 = ppdVar27 + 1;\n          ppdVar24 = ppdVar24 + 1;\n        }\n        goto LAB_0003c00d;\n      }" { (if_statement "if (ppdVar27 == (debug_type_conflict *)0x0) goto LAB_0003c016;" if (parenthesized_expression "(ppdVar27 == (debug_type_conflict *)0x0)" ( (binary_expression "ppdVar27 == (debug_type_conflict *)0x0" identifier == (cast_expression "(debug_type_conflict *)0x0" ( (type_descriptor "debug_type_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003c016;" goto statement_identifier ;)) (while_statement "while( true ) {\n          if (*ppdVar27 == (debug_type_s *)0x0) break;\n          if (*ppdVar24 == (debug_type_s *)0x0) goto LAB_0003bc6c;\n          bVar22 = debug_type_samep(info,*ppdVar27,*ppdVar24);\n          if (bVar22 == 0) goto LAB_0003c004;\n          ppdVar27 = ppdVar27 + 1;\n          ppdVar24 = ppdVar24 + 1;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          if (*ppdVar27 == (debug_type_s *)0x0) break;\n          if (*ppdVar24 == (debug_type_s *)0x0) goto LAB_0003bc6c;\n          bVar22 = debug_type_samep(info,*ppdVar27,*ppdVar24);\n          if (bVar22 == 0) goto LAB_0003c004;\n          ppdVar27 = ppdVar27 + 1;\n          ppdVar24 = ppdVar24 + 1;\n        }" { (if_statement "if (*ppdVar27 == (debug_type_s *)0x0) break;" if (parenthesized_expression "(*ppdVar27 == (debug_type_s *)0x0)" ( (binary_expression "*ppdVar27 == (debug_type_s *)0x0" (pointer_expression "*ppdVar27" * identifier) == (cast_expression "(debug_type_s *)0x0" ( (type_descriptor "debug_type_s *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (if_statement "if (*ppdVar24 == (debug_type_s *)0x0) goto LAB_0003bc6c;" if (parenthesized_expression "(*ppdVar24 == (debug_type_s *)0x0)" ( (binary_expression "*ppdVar24 == (debug_type_s *)0x0" (pointer_expression "*ppdVar24" * identifier) == (cast_expression "(debug_type_s *)0x0" ( (type_descriptor "debug_type_s *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003bc6c;" goto statement_identifier ;)) (expression_statement "bVar22 = debug_type_samep(info,*ppdVar27,*ppdVar24);" (assignment_expression "bVar22 = debug_type_samep(info,*ppdVar27,*ppdVar24)" identifier = (call_expression "debug_type_samep(info,*ppdVar27,*ppdVar24)" identifier (argument_list "(info,*ppdVar27,*ppdVar24)" ( identifier , (pointer_expression "*ppdVar27" * identifier) , (pointer_expression "*ppdVar24" * identifier) )))) ;) (if_statement "if (bVar22 == 0) goto LAB_0003c004;" if (parenthesized_expression "(bVar22 == 0)" ( (binary_expression "bVar22 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0003c004;" goto statement_identifier ;)) (expression_statement "ppdVar27 = ppdVar27 + 1;" (assignment_expression "ppdVar27 = ppdVar27 + 1" identifier = (binary_expression "ppdVar27 + 1" identifier + number_literal)) ;) (expression_statement "ppdVar24 = ppdVar24 + 1;" (assignment_expression "ppdVar24 = ppdVar24 + 1" identifier = (binary_expression "ppdVar24 + 1" identifier + number_literal)) ;) })) (goto_statement "goto LAB_0003c00d;" goto statement_identifier ;) })) })) (break_statement "break;" break ;)) (case_statement "case DEBUG_KIND_NAMED:" case identifier :) (case_statement "case DEBUG_KIND_TAGGED:\n    pdVar10 = (t2->u).knamed;\n    pdVar11 = (t1->u).knamed;\n    iVar19 = strcmp(pdVar11->name->name,pdVar10->name->name);\n    if (iVar19 == 0) {\n      pdVar17 = pdVar10->type;\n      pdVar18 = pdVar11->type;\n      goto LAB_0003be48;\n    }\n    break;" case identifier : (expression_statement "pdVar10 = (t2->u).knamed;" (assignment_expression "pdVar10 = (t2->u).knamed" identifier = (field_expression "(t2->u).knamed" (parenthesized_expression "(t2->u)" ( (field_expression "t2->u" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pdVar11 = (t1->u).knamed;" (assignment_expression "pdVar11 = (t1->u).knamed" identifier = (field_expression "(t1->u).knamed" (parenthesized_expression "(t1->u)" ( (field_expression "t1->u" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar19 = strcmp(pdVar11->name->name,pdVar10->name->name);" (assignment_expression "iVar19 = strcmp(pdVar11->name->name,pdVar10->name->name)" identifier = (call_expression "strcmp(pdVar11->name->name,pdVar10->name->name)" identifier (argument_list "(pdVar11->name->name,pdVar10->name->name)" ( (field_expression "pdVar11->name->name" (field_expression "pdVar11->name" identifier -> field_identifier) -> field_identifier) , (field_expression "pdVar10->name->name" (field_expression "pdVar10->name" identifier -> field_identifier) -> field_identifier) )))) ;) (if_statement "if (iVar19 == 0) {\n      pdVar17 = pdVar10->type;\n      pdVar18 = pdVar11->type;\n      goto LAB_0003be48;\n    }" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (compound_statement "{\n      pdVar17 = pdVar10->type;\n      pdVar18 = pdVar11->type;\n      goto LAB_0003be48;\n    }" { (expression_statement "pdVar17 = pdVar10->type;" (assignment_expression "pdVar17 = pdVar10->type" identifier = (field_expression "pdVar10->type" identifier -> field_identifier)) ;) (expression_statement "pdVar18 = pdVar11->type;" (assignment_expression "pdVar18 = pdVar11->type" identifier = (field_expression "pdVar11->type" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0003be48;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "default:\n                    /* WARNING: Subroutine does not return */\n    abort();" default : comment (expression_statement "abort();" (call_expression "abort()" identifier (argument_list "()" ( ))) ;)) })) (labeled_statement "LAB_0003bc6c:\n  uVar20 = 0;" statement_identifier : (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_0003bc14:\n  info->compare_list = top.next;" statement_identifier : (expression_statement "info->compare_list = top.next;" (assignment_expression "info->compare_list = top.next" (field_expression "info->compare_list" identifier -> field_identifier) = (field_expression "top.next" identifier . field_identifier)) ;)) (return_statement "return uVar20;" return identifier ;) (labeled_statement "LAB_0003c004:\n  if (*ppdVar27 == (debug_type_conflict)0x0) {\nLAB_0003c00d:\n    if (*ppdVar24 == (debug_type_conflict)0x0) {\nLAB_0003c016:\n      uVar20 = 1;\n      goto LAB_0003bc14;\n    }\n  }" statement_identifier : (if_statement "if (*ppdVar27 == (debug_type_conflict)0x0) {\nLAB_0003c00d:\n    if (*ppdVar24 == (debug_type_conflict)0x0) {\nLAB_0003c016:\n      uVar20 = 1;\n      goto LAB_0003bc14;\n    }\n  }" if (parenthesized_expression "(*ppdVar27 == (debug_type_conflict)0x0)" ( (binary_expression "*ppdVar27 == (debug_type_conflict)0x0" (pointer_expression "*ppdVar27" * identifier) == (cast_expression "(debug_type_conflict)0x0" ( (type_descriptor "debug_type_conflict" type_identifier) ) number_literal)) )) (compound_statement "{\nLAB_0003c00d:\n    if (*ppdVar24 == (debug_type_conflict)0x0) {\nLAB_0003c016:\n      uVar20 = 1;\n      goto LAB_0003bc14;\n    }\n  }" { (labeled_statement "LAB_0003c00d:\n    if (*ppdVar24 == (debug_type_conflict)0x0) {\nLAB_0003c016:\n      uVar20 = 1;\n      goto LAB_0003bc14;\n    }" statement_identifier : (if_statement "if (*ppdVar24 == (debug_type_conflict)0x0) {\nLAB_0003c016:\n      uVar20 = 1;\n      goto LAB_0003bc14;\n    }" if (parenthesized_expression "(*ppdVar24 == (debug_type_conflict)0x0)" ( (binary_expression "*ppdVar24 == (debug_type_conflict)0x0" (pointer_expression "*ppdVar24" * identifier) == (cast_expression "(debug_type_conflict)0x0" ( (type_descriptor "debug_type_conflict" type_identifier) ) number_literal)) )) (compound_statement "{\nLAB_0003c016:\n      uVar20 = 1;\n      goto LAB_0003bc14;\n    }" { (labeled_statement "LAB_0003c016:\n      uVar20 = 1;" statement_identifier : (expression_statement "uVar20 = 1;" (assignment_expression "uVar20 = 1" identifier = number_literal) ;)) (goto_statement "goto LAB_0003bc14;" goto statement_identifier ;) }))) }))) (goto_statement "goto LAB_0003bc6c;" goto statement_identifier ;) })))
(translation_unit "uint FUN_0003bb00(void)\n\n{\n  uint uVar1;\n  int *piVar2;\n  uint uVar3;\n  uint *extraout_ECX;\n  int unaff_EBP;\n  undefined8 uVar4;\n  int *local_28;\n  uint *local_24;\n  uint *local_20;\n  \n  uVar4 = FUN_0003690f();\n  local_24 = (uint *)((ulonglong)uVar4 >> 0x20);\n  while (uVar3 = *local_24, local_20 = extraout_ECX, uVar3 == 1) {\n    local_24 = (uint *)**(int **)local_24[3];\n    if (local_24 == (uint *)0x0) {\n      return 0;\n    }\n  }\n  while (uVar1 = *local_20, uVar1 == 1) {\n    local_20 = (uint *)**(undefined4 **)local_20[3];\n    if (local_20 == (uint *)0x0) {\n      return 0;\n    }\n  }\n  if (local_24 == local_20) {\n    return 1;\n  }\n  if (uVar3 == 0x16) {\n    if (uVar1 == 0x17) {\n      uVar3 = FUN_0003c1f0();\n      return uVar3;\n    }\n  }\n  else if ((uVar3 == 0x17) && (uVar1 == 0x16)) {\n    uVar3 = FUN_0003c1f0();\n    return uVar3;\n  }\n  if (uVar3 != uVar1) {\n    return 0;\n  }\n  if (local_24[1] != local_20[1]) {\n    return 0;\n  }\n  if (uVar3 == 3) {\n    return (uint)(local_24[3] == local_20[3]);\n  }\n  if (uVar3 < 4) {\n    if (uVar3 == 2) {\n      return 1;\n    }\n  }\n  else if (uVar3 < 7) {\n    return 1;\n  }\n  local_28 = *(int **)((int)uVar4 + 0x30);\n  piVar2 = local_28;\n  while( true ) {\n    if (piVar2 == (int *)0x0) {\n      *(int ***)((int)uVar4 + 0x30) = &local_28;\n      if (uVar3 - 7 < 0x11) {\n                    \n                    \n        uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()\n        ;\n        return uVar3;\n      }\n                    \n      abort();\n    }\n    if ((local_24 == (uint *)piVar2[1]) && (local_20 == (uint *)piVar2[2])) break;\n    piVar2 = (int *)*piVar2;\n  }\n  return 1;\n}\n\n" (function_definition "uint FUN_0003bb00(void)\n\n{\n  uint uVar1;\n  int *piVar2;\n  uint uVar3;\n  uint *extraout_ECX;\n  int unaff_EBP;\n  undefined8 uVar4;\n  int *local_28;\n  uint *local_24;\n  uint *local_20;\n  \n  uVar4 = FUN_0003690f();\n  local_24 = (uint *)((ulonglong)uVar4 >> 0x20);\n  while (uVar3 = *local_24, local_20 = extraout_ECX, uVar3 == 1) {\n    local_24 = (uint *)**(int **)local_24[3];\n    if (local_24 == (uint *)0x0) {\n      return 0;\n    }\n  }\n  while (uVar1 = *local_20, uVar1 == 1) {\n    local_20 = (uint *)**(undefined4 **)local_20[3];\n    if (local_20 == (uint *)0x0) {\n      return 0;\n    }\n  }\n  if (local_24 == local_20) {\n    return 1;\n  }\n  if (uVar3 == 0x16) {\n    if (uVar1 == 0x17) {\n      uVar3 = FUN_0003c1f0();\n      return uVar3;\n    }\n  }\n  else if ((uVar3 == 0x17) && (uVar1 == 0x16)) {\n    uVar3 = FUN_0003c1f0();\n    return uVar3;\n  }\n  if (uVar3 != uVar1) {\n    return 0;\n  }\n  if (local_24[1] != local_20[1]) {\n    return 0;\n  }\n  if (uVar3 == 3) {\n    return (uint)(local_24[3] == local_20[3]);\n  }\n  if (uVar3 < 4) {\n    if (uVar3 == 2) {\n      return 1;\n    }\n  }\n  else if (uVar3 < 7) {\n    return 1;\n  }\n  local_28 = *(int **)((int)uVar4 + 0x30);\n  piVar2 = local_28;\n  while( true ) {\n    if (piVar2 == (int *)0x0) {\n      *(int ***)((int)uVar4 + 0x30) = &local_28;\n      if (uVar3 - 7 < 0x11) {\n                    \n                    \n        uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()\n        ;\n        return uVar3;\n      }\n                    \n      abort();\n    }\n    if ((local_24 == (uint *)piVar2[1]) && (local_20 == (uint *)piVar2[2])) break;\n    piVar2 = (int *)*piVar2;\n  }\n  return 1;\n}" type_identifier (function_declarator "FUN_0003bb00(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  uint uVar1;\n  int *piVar2;\n  uint uVar3;\n  uint *extraout_ECX;\n  int unaff_EBP;\n  undefined8 uVar4;\n  int *local_28;\n  uint *local_24;\n  uint *local_20;\n  \n  uVar4 = FUN_0003690f();\n  local_24 = (uint *)((ulonglong)uVar4 >> 0x20);\n  while (uVar3 = *local_24, local_20 = extraout_ECX, uVar3 == 1) {\n    local_24 = (uint *)**(int **)local_24[3];\n    if (local_24 == (uint *)0x0) {\n      return 0;\n    }\n  }\n  while (uVar1 = *local_20, uVar1 == 1) {\n    local_20 = (uint *)**(undefined4 **)local_20[3];\n    if (local_20 == (uint *)0x0) {\n      return 0;\n    }\n  }\n  if (local_24 == local_20) {\n    return 1;\n  }\n  if (uVar3 == 0x16) {\n    if (uVar1 == 0x17) {\n      uVar3 = FUN_0003c1f0();\n      return uVar3;\n    }\n  }\n  else if ((uVar3 == 0x17) && (uVar1 == 0x16)) {\n    uVar3 = FUN_0003c1f0();\n    return uVar3;\n  }\n  if (uVar3 != uVar1) {\n    return 0;\n  }\n  if (local_24[1] != local_20[1]) {\n    return 0;\n  }\n  if (uVar3 == 3) {\n    return (uint)(local_24[3] == local_20[3]);\n  }\n  if (uVar3 < 4) {\n    if (uVar3 == 2) {\n      return 1;\n    }\n  }\n  else if (uVar3 < 7) {\n    return 1;\n  }\n  local_28 = *(int **)((int)uVar4 + 0x30);\n  piVar2 = local_28;\n  while( true ) {\n    if (piVar2 == (int *)0x0) {\n      *(int ***)((int)uVar4 + 0x30) = &local_28;\n      if (uVar3 - 7 < 0x11) {\n                    \n                    \n        uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()\n        ;\n        return uVar3;\n      }\n                    \n      abort();\n    }\n    if ((local_24 == (uint *)piVar2[1]) && (local_20 == (uint *)piVar2[2])) break;\n    piVar2 = (int *)*piVar2;\n  }\n  return 1;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint *extraout_ECX;" type_identifier (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "int *local_28;" primitive_type (pointer_declarator "*local_28" * identifier) ;) (declaration "uint *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (declaration "uint *local_20;" type_identifier (pointer_declarator "*local_20" * identifier) ;) (expression_statement "uVar4 = FUN_0003690f();" (assignment_expression "uVar4 = FUN_0003690f()" identifier = (call_expression "FUN_0003690f()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_24 = (uint *)((ulonglong)uVar4 >> 0x20);" (assignment_expression "local_24 = (uint *)((ulonglong)uVar4 >> 0x20)" identifier = (cast_expression "(uint *)((ulonglong)uVar4 >> 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar4 >> 0x20)" ( (binary_expression "(ulonglong)uVar4 >> 0x20" (cast_expression "(ulonglong)uVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (while_statement "while (uVar3 = *local_24, local_20 = extraout_ECX, uVar3 == 1) {\n    local_24 = (uint *)**(int **)local_24[3];\n    if (local_24 == (uint *)0x0) {\n      return 0;\n    }\n  }" while (parenthesized_expression "(uVar3 = *local_24, local_20 = extraout_ECX, uVar3 == 1)" ( (comma_expression "uVar3 = *local_24, local_20 = extraout_ECX, uVar3 == 1" (assignment_expression "uVar3 = *local_24" identifier = (pointer_expression "*local_24" * identifier)) , (comma_expression "local_20 = extraout_ECX, uVar3 == 1" (assignment_expression "local_20 = extraout_ECX" identifier = identifier) , (binary_expression "uVar3 == 1" identifier == number_literal))) )) (compound_statement "{\n    local_24 = (uint *)**(int **)local_24[3];\n    if (local_24 == (uint *)0x0) {\n      return 0;\n    }\n  }" { (expression_statement "local_24 = (uint *)**(int **)local_24[3];" (assignment_expression "local_24 = (uint *)**(int **)local_24[3]" identifier = (cast_expression "(uint *)**(int **)local_24[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)local_24[3]" * (pointer_expression "*(int **)local_24[3]" * (cast_expression "(int **)local_24[3]" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "local_24[3]" identifier [ number_literal ])))))) ;) (if_statement "if (local_24 == (uint *)0x0) {\n      return 0;\n    }" if (parenthesized_expression "(local_24 == (uint *)0x0)" ( (binary_expression "local_24 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) })) (while_statement "while (uVar1 = *local_20, uVar1 == 1) {\n    local_20 = (uint *)**(undefined4 **)local_20[3];\n    if (local_20 == (uint *)0x0) {\n      return 0;\n    }\n  }" while (parenthesized_expression "(uVar1 = *local_20, uVar1 == 1)" ( (comma_expression "uVar1 = *local_20, uVar1 == 1" (assignment_expression "uVar1 = *local_20" identifier = (pointer_expression "*local_20" * identifier)) , (binary_expression "uVar1 == 1" identifier == number_literal)) )) (compound_statement "{\n    local_20 = (uint *)**(undefined4 **)local_20[3];\n    if (local_20 == (uint *)0x0) {\n      return 0;\n    }\n  }" { (expression_statement "local_20 = (uint *)**(undefined4 **)local_20[3];" (assignment_expression "local_20 = (uint *)**(undefined4 **)local_20[3]" identifier = (cast_expression "(uint *)**(undefined4 **)local_20[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)local_20[3]" * (pointer_expression "*(undefined4 **)local_20[3]" * (cast_expression "(undefined4 **)local_20[3]" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "local_20[3]" identifier [ number_literal ])))))) ;) (if_statement "if (local_20 == (uint *)0x0) {\n      return 0;\n    }" if (parenthesized_expression "(local_20 == (uint *)0x0)" ( (binary_expression "local_20 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) })) (if_statement "if (local_24 == local_20) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == local_20)" ( (binary_expression "local_24 == local_20" identifier == identifier) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (uVar3 == 0x16) {\n    if (uVar1 == 0x17) {\n      uVar3 = FUN_0003c1f0();\n      return uVar3;\n    }\n  }\n  else if ((uVar3 == 0x17) && (uVar1 == 0x16)) {\n    uVar3 = FUN_0003c1f0();\n    return uVar3;\n  }" if (parenthesized_expression "(uVar3 == 0x16)" ( (binary_expression "uVar3 == 0x16" identifier == number_literal) )) (compound_statement "{\n    if (uVar1 == 0x17) {\n      uVar3 = FUN_0003c1f0();\n      return uVar3;\n    }\n  }" { (if_statement "if (uVar1 == 0x17) {\n      uVar3 = FUN_0003c1f0();\n      return uVar3;\n    }" if (parenthesized_expression "(uVar1 == 0x17)" ( (binary_expression "uVar1 == 0x17" identifier == number_literal) )) (compound_statement "{\n      uVar3 = FUN_0003c1f0();\n      return uVar3;\n    }" { (expression_statement "uVar3 = FUN_0003c1f0();" (assignment_expression "uVar3 = FUN_0003c1f0()" identifier = (call_expression "FUN_0003c1f0()" identifier (argument_list "()" ( )))) ;) (return_statement "return uVar3;" return identifier ;) })) }) (else_clause "else if ((uVar3 == 0x17) && (uVar1 == 0x16)) {\n    uVar3 = FUN_0003c1f0();\n    return uVar3;\n  }" else (if_statement "if ((uVar3 == 0x17) && (uVar1 == 0x16)) {\n    uVar3 = FUN_0003c1f0();\n    return uVar3;\n  }" if (parenthesized_expression "((uVar3 == 0x17) && (uVar1 == 0x16))" ( (binary_expression "(uVar3 == 0x17) && (uVar1 == 0x16)" (parenthesized_expression "(uVar3 == 0x17)" ( (binary_expression "uVar3 == 0x17" identifier == number_literal) )) && (parenthesized_expression "(uVar1 == 0x16)" ( (binary_expression "uVar1 == 0x16" identifier == number_literal) ))) )) (compound_statement "{\n    uVar3 = FUN_0003c1f0();\n    return uVar3;\n  }" { (expression_statement "uVar3 = FUN_0003c1f0();" (assignment_expression "uVar3 = FUN_0003c1f0()" identifier = (call_expression "FUN_0003c1f0()" identifier (argument_list "()" ( )))) ;) (return_statement "return uVar3;" return identifier ;) })))) (if_statement "if (uVar3 != uVar1) {\n    return 0;\n  }" if (parenthesized_expression "(uVar3 != uVar1)" ( (binary_expression "uVar3 != uVar1" identifier != identifier) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (local_24[1] != local_20[1]) {\n    return 0;\n  }" if (parenthesized_expression "(local_24[1] != local_20[1])" ( (binary_expression "local_24[1] != local_20[1]" (subscript_expression "local_24[1]" identifier [ number_literal ]) != (subscript_expression "local_20[1]" identifier [ number_literal ])) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (uVar3 == 3) {\n    return (uint)(local_24[3] == local_20[3]);\n  }" if (parenthesized_expression "(uVar3 == 3)" ( (binary_expression "uVar3 == 3" identifier == number_literal) )) (compound_statement "{\n    return (uint)(local_24[3] == local_20[3]);\n  }" { (return_statement "return (uint)(local_24[3] == local_20[3]);" return (call_expression "(uint)(local_24[3] == local_20[3])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_24[3] == local_20[3])" ( (binary_expression "local_24[3] == local_20[3]" (subscript_expression "local_24[3]" identifier [ number_literal ]) == (subscript_expression "local_20[3]" identifier [ number_literal ])) ))) ;) })) (if_statement "if (uVar3 < 4) {\n    if (uVar3 == 2) {\n      return 1;\n    }\n  }\n  else if (uVar3 < 7) {\n    return 1;\n  }" if (parenthesized_expression "(uVar3 < 4)" ( (binary_expression "uVar3 < 4" identifier < number_literal) )) (compound_statement "{\n    if (uVar3 == 2) {\n      return 1;\n    }\n  }" { (if_statement "if (uVar3 == 2) {\n      return 1;\n    }" if (parenthesized_expression "(uVar3 == 2)" ( (binary_expression "uVar3 == 2" identifier == number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) }) (else_clause "else if (uVar3 < 7) {\n    return 1;\n  }" else (if_statement "if (uVar3 < 7) {\n    return 1;\n  }" if (parenthesized_expression "(uVar3 < 7)" ( (binary_expression "uVar3 < 7" identifier < number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })))) (expression_statement "local_28 = *(int **)((int)uVar4 + 0x30);" (assignment_expression "local_28 = *(int **)((int)uVar4 + 0x30)" identifier = (pointer_expression "*(int **)((int)uVar4 + 0x30)" * (cast_expression "(int **)((int)uVar4 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)uVar4 + 0x30)" ( (binary_expression "(int)uVar4 + 0x30" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "piVar2 = local_28;" (assignment_expression "piVar2 = local_28" identifier = identifier) ;) (while_statement "while( true ) {\n    if (piVar2 == (int *)0x0) {\n      *(int ***)((int)uVar4 + 0x30) = &local_28;\n      if (uVar3 - 7 < 0x11) {\n                    \n                    \n        uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()\n        ;\n        return uVar3;\n      }\n                    \n      abort();\n    }\n    if ((local_24 == (uint *)piVar2[1]) && (local_20 == (uint *)piVar2[2])) break;\n    piVar2 = (int *)*piVar2;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if (piVar2 == (int *)0x0) {\n      *(int ***)((int)uVar4 + 0x30) = &local_28;\n      if (uVar3 - 7 < 0x11) {\n                    \n                    \n        uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()\n        ;\n        return uVar3;\n      }\n                    \n      abort();\n    }\n    if ((local_24 == (uint *)piVar2[1]) && (local_20 == (uint *)piVar2[2])) break;\n    piVar2 = (int *)*piVar2;\n  }" { (if_statement "if (piVar2 == (int *)0x0) {\n      *(int ***)((int)uVar4 + 0x30) = &local_28;\n      if (uVar3 - 7 < 0x11) {\n                    \n                    \n        uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()\n        ;\n        return uVar3;\n      }\n                    \n      abort();\n    }" if (parenthesized_expression "(piVar2 == (int *)0x0)" ( (binary_expression "piVar2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *(int ***)((int)uVar4 + 0x30) = &local_28;\n      if (uVar3 - 7 < 0x11) {\n                    \n                    \n        uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()\n        ;\n        return uVar3;\n      }\n                    \n      abort();\n    }" { (expression_statement "*(int ***)((int)uVar4 + 0x30) = &local_28;" (assignment_expression "*(int ***)((int)uVar4 + 0x30) = &local_28" (pointer_expression "*(int ***)((int)uVar4 + 0x30)" * (cast_expression "(int ***)((int)uVar4 + 0x30)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)uVar4 + 0x30)" ( (binary_expression "(int)uVar4 + 0x30" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_28" & identifier)) ;) (if_statement "if (uVar3 - 7 < 0x11) {\n                    \n                    \n        uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()\n        ;\n        return uVar3;\n      }" if (parenthesized_expression "(uVar3 - 7 < 0x11)" ( (binary_expression "uVar3 - 7 < 0x11" (binary_expression "uVar3 - 7" identifier - number_literal) < number_literal) )) (compound_statement "{\n                    \n                    \n        uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()\n        ;\n        return uVar3;\n      }" { (expression_statement "uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()\n        ;" (assignment_expression "uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()" identifier = (call_expression "(*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()" (parenthesized_expression "(*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))" ( (pointer_expression "*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa)" * (cast_expression "(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa)" ( (binary_expression "*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa" (binary_expression "*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP" (pointer_expression "*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4)" * (cast_expression "(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4)" ( (binary_expression "unaff_EBP + 0x1c40e + (uVar3 - 7) * 4" (binary_expression "unaff_EBP + 0x1c40e" identifier + number_literal) + (binary_expression "(uVar3 - 7) * 4" (parenthesized_expression "(uVar3 - 7)" ( (binary_expression "uVar3 - 7" identifier - number_literal) )) * number_literal)) )))) + identifier) + number_literal) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar3;" return identifier ;) })) (expression_statement "abort();" (call_expression "abort()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((local_24 == (uint *)piVar2[1]) && (local_20 == (uint *)piVar2[2])) break;" if (parenthesized_expression "((local_24 == (uint *)piVar2[1]) && (local_20 == (uint *)piVar2[2]))" ( (binary_expression "(local_24 == (uint *)piVar2[1]) && (local_20 == (uint *)piVar2[2])" (parenthesized_expression "(local_24 == (uint *)piVar2[1])" ( (binary_expression "local_24 == (uint *)piVar2[1]" identifier == (cast_expression "(uint *)piVar2[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar2[1]" identifier [ number_literal ]))) )) && (parenthesized_expression "(local_20 == (uint *)piVar2[2])" ( (binary_expression "local_20 == (uint *)piVar2[2]" identifier == (cast_expression "(uint *)piVar2[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar2[2]" identifier [ number_literal ]))) ))) )) (break_statement "break;" break ;)) (expression_statement "piVar2 = (int *)*piVar2;" (assignment_expression "piVar2 = (int *)*piVar2" identifier = (cast_expression "(int *)*piVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar2" * identifier))) ;) })) (return_statement "return 1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == LIT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ])))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return LIT ;) })) })) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (binary_expression IDENT == LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ])))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return LIT ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (return_statement return IDENT ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (return_statement return IDENT ;) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) == (subscript_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 { (return_statement return LIT ;) })) }) (else_clause else (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) * LIT)) )))) + IDENT) + LIT) )))) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) && (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (return_statement return LIT ;) })))
(function_definition "uint FUN_0003bb00(void)\n\n{\n  uint uVar1;\n  int *piVar2;\n  uint uVar3;\n  uint *extraout_ECX;\n  int unaff_EBP;\n  undefined8 uVar4;\n  int *local_28;\n  uint *local_24;\n  uint *local_20;\n  \n  uVar4 = FUN_0003690f();\n  local_24 = (uint *)((ulonglong)uVar4 >> 0x20);\n  while (uVar3 = *local_24, local_20 = extraout_ECX, uVar3 == 1) {\n    local_24 = (uint *)**(int **)local_24[3];\n    if (local_24 == (uint *)0x0) {\n      return 0;\n    }\n  }\n  while (uVar1 = *local_20, uVar1 == 1) {\n    local_20 = (uint *)**(undefined4 **)local_20[3];\n    if (local_20 == (uint *)0x0) {\n      return 0;\n    }\n  }\n  if (local_24 == local_20) {\n    return 1;\n  }\n  if (uVar3 == 0x16) {\n    if (uVar1 == 0x17) {\n      uVar3 = FUN_0003c1f0();\n      return uVar3;\n    }\n  }\n  else if ((uVar3 == 0x17) && (uVar1 == 0x16)) {\n    uVar3 = FUN_0003c1f0();\n    return uVar3;\n  }\n  if (uVar3 != uVar1) {\n    return 0;\n  }\n  if (local_24[1] != local_20[1]) {\n    return 0;\n  }\n  if (uVar3 == 3) {\n    return (uint)(local_24[3] == local_20[3]);\n  }\n  if (uVar3 < 4) {\n    if (uVar3 == 2) {\n      return 1;\n    }\n  }\n  else if (uVar3 < 7) {\n    return 1;\n  }\n  local_28 = *(int **)((int)uVar4 + 0x30);\n  piVar2 = local_28;\n  while( true ) {\n    if (piVar2 == (int *)0x0) {\n      *(int ***)((int)uVar4 + 0x30) = &local_28;\n      if (uVar3 - 7 < 0x11) {\n                    \n                    \n        uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()\n        ;\n        return uVar3;\n      }\n                    \n      abort();\n    }\n    if ((local_24 == (uint *)piVar2[1]) && (local_20 == (uint *)piVar2[2])) break;\n    piVar2 = (int *)*piVar2;\n  }\n  return 1;\n}" (type_identifier "uint") (function_declarator "FUN_0003bb00(void)" (identifier "FUN_0003bb00") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  uint uVar1;\n  int *piVar2;\n  uint uVar3;\n  uint *extraout_ECX;\n  int unaff_EBP;\n  undefined8 uVar4;\n  int *local_28;\n  uint *local_24;\n  uint *local_20;\n  \n  uVar4 = FUN_0003690f();\n  local_24 = (uint *)((ulonglong)uVar4 >> 0x20);\n  while (uVar3 = *local_24, local_20 = extraout_ECX, uVar3 == 1) {\n    local_24 = (uint *)**(int **)local_24[3];\n    if (local_24 == (uint *)0x0) {\n      return 0;\n    }\n  }\n  while (uVar1 = *local_20, uVar1 == 1) {\n    local_20 = (uint *)**(undefined4 **)local_20[3];\n    if (local_20 == (uint *)0x0) {\n      return 0;\n    }\n  }\n  if (local_24 == local_20) {\n    return 1;\n  }\n  if (uVar3 == 0x16) {\n    if (uVar1 == 0x17) {\n      uVar3 = FUN_0003c1f0();\n      return uVar3;\n    }\n  }\n  else if ((uVar3 == 0x17) && (uVar1 == 0x16)) {\n    uVar3 = FUN_0003c1f0();\n    return uVar3;\n  }\n  if (uVar3 != uVar1) {\n    return 0;\n  }\n  if (local_24[1] != local_20[1]) {\n    return 0;\n  }\n  if (uVar3 == 3) {\n    return (uint)(local_24[3] == local_20[3]);\n  }\n  if (uVar3 < 4) {\n    if (uVar3 == 2) {\n      return 1;\n    }\n  }\n  else if (uVar3 < 7) {\n    return 1;\n  }\n  local_28 = *(int **)((int)uVar4 + 0x30);\n  piVar2 = local_28;\n  while( true ) {\n    if (piVar2 == (int *)0x0) {\n      *(int ***)((int)uVar4 + 0x30) = &local_28;\n      if (uVar3 - 7 < 0x11) {\n                    \n                    \n        uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()\n        ;\n        return uVar3;\n      }\n                    \n      abort();\n    }\n    if ((local_24 == (uint *)piVar2[1]) && (local_20 == (uint *)piVar2[2])) break;\n    piVar2 = (int *)*piVar2;\n  }\n  return 1;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "uint *extraout_ECX;" (type_identifier "uint") (pointer_declarator "*extraout_ECX" (* "*") (identifier "extraout_ECX")) (; ";")) (declaration "int unaff_EBP;" (primitive_type "int") (identifier "unaff_EBP") (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (declaration "int *local_28;" (primitive_type "int") (pointer_declarator "*local_28" (* "*") (identifier "local_28")) (; ";")) (declaration "uint *local_24;" (type_identifier "uint") (pointer_declarator "*local_24" (* "*") (identifier "local_24")) (; ";")) (declaration "uint *local_20;" (type_identifier "uint") (pointer_declarator "*local_20" (* "*") (identifier "local_20")) (; ";")) (expression_statement "uVar4 = FUN_0003690f();" (assignment_expression "uVar4 = FUN_0003690f()" (identifier "uVar4") (= "=") (call_expression "FUN_0003690f()" (identifier "FUN_0003690f") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_24 = (uint *)((ulonglong)uVar4 >> 0x20);" (assignment_expression "local_24 = (uint *)((ulonglong)uVar4 >> 0x20)" (identifier "local_24") (= "=") (cast_expression "(uint *)((ulonglong)uVar4 >> 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulonglong)uVar4 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar4 >> 0x20" (cast_expression "(ulonglong)uVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar4")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (while_statement "while (uVar3 = *local_24, local_20 = extraout_ECX, uVar3 == 1) {\n    local_24 = (uint *)**(int **)local_24[3];\n    if (local_24 == (uint *)0x0) {\n      return 0;\n    }\n  }" (while "while") (parenthesized_expression "(uVar3 = *local_24, local_20 = extraout_ECX, uVar3 == 1)" (( "(") (comma_expression "uVar3 = *local_24, local_20 = extraout_ECX, uVar3 == 1" (assignment_expression "uVar3 = *local_24" (identifier "uVar3") (= "=") (pointer_expression "*local_24" (* "*") (identifier "local_24"))) (, ",") (comma_expression "local_20 = extraout_ECX, uVar3 == 1" (assignment_expression "local_20 = extraout_ECX" (identifier "local_20") (= "=") (identifier "extraout_ECX")) (, ",") (binary_expression "uVar3 == 1" (identifier "uVar3") (== "==") (number_literal "1")))) () ")")) (compound_statement "{\n    local_24 = (uint *)**(int **)local_24[3];\n    if (local_24 == (uint *)0x0) {\n      return 0;\n    }\n  }" ({ "{") (expression_statement "local_24 = (uint *)**(int **)local_24[3];" (assignment_expression "local_24 = (uint *)**(int **)local_24[3]" (identifier "local_24") (= "=") (cast_expression "(uint *)**(int **)local_24[3]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(int **)local_24[3]" (* "*") (pointer_expression "*(int **)local_24[3]" (* "*") (cast_expression "(int **)local_24[3]" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "local_24[3]" (identifier "local_24") ([ "[") (number_literal "3") (] "]"))))))) (; ";")) (if_statement "if (local_24 == (uint *)0x0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(local_24 == (uint *)0x0)" (( "(") (binary_expression "local_24 == (uint *)0x0" (identifier "local_24") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}"))) (while_statement "while (uVar1 = *local_20, uVar1 == 1) {\n    local_20 = (uint *)**(undefined4 **)local_20[3];\n    if (local_20 == (uint *)0x0) {\n      return 0;\n    }\n  }" (while "while") (parenthesized_expression "(uVar1 = *local_20, uVar1 == 1)" (( "(") (comma_expression "uVar1 = *local_20, uVar1 == 1" (assignment_expression "uVar1 = *local_20" (identifier "uVar1") (= "=") (pointer_expression "*local_20" (* "*") (identifier "local_20"))) (, ",") (binary_expression "uVar1 == 1" (identifier "uVar1") (== "==") (number_literal "1"))) () ")")) (compound_statement "{\n    local_20 = (uint *)**(undefined4 **)local_20[3];\n    if (local_20 == (uint *)0x0) {\n      return 0;\n    }\n  }" ({ "{") (expression_statement "local_20 = (uint *)**(undefined4 **)local_20[3];" (assignment_expression "local_20 = (uint *)**(undefined4 **)local_20[3]" (identifier "local_20") (= "=") (cast_expression "(uint *)**(undefined4 **)local_20[3]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)local_20[3]" (* "*") (pointer_expression "*(undefined4 **)local_20[3]" (* "*") (cast_expression "(undefined4 **)local_20[3]" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "local_20[3]" (identifier "local_20") ([ "[") (number_literal "3") (] "]"))))))) (; ";")) (if_statement "if (local_20 == (uint *)0x0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(local_20 == (uint *)0x0)" (( "(") (binary_expression "local_20 == (uint *)0x0" (identifier "local_20") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}"))) (if_statement "if (local_24 == local_20) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(local_24 == local_20)" (( "(") (binary_expression "local_24 == local_20" (identifier "local_24") (== "==") (identifier "local_20")) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (uVar3 == 0x16) {\n    if (uVar1 == 0x17) {\n      uVar3 = FUN_0003c1f0();\n      return uVar3;\n    }\n  }\n  else if ((uVar3 == 0x17) && (uVar1 == 0x16)) {\n    uVar3 = FUN_0003c1f0();\n    return uVar3;\n  }" (if "if") (parenthesized_expression "(uVar3 == 0x16)" (( "(") (binary_expression "uVar3 == 0x16" (identifier "uVar3") (== "==") (number_literal "0x16")) () ")")) (compound_statement "{\n    if (uVar1 == 0x17) {\n      uVar3 = FUN_0003c1f0();\n      return uVar3;\n    }\n  }" ({ "{") (if_statement "if (uVar1 == 0x17) {\n      uVar3 = FUN_0003c1f0();\n      return uVar3;\n    }" (if "if") (parenthesized_expression "(uVar1 == 0x17)" (( "(") (binary_expression "uVar1 == 0x17" (identifier "uVar1") (== "==") (number_literal "0x17")) () ")")) (compound_statement "{\n      uVar3 = FUN_0003c1f0();\n      return uVar3;\n    }" ({ "{") (expression_statement "uVar3 = FUN_0003c1f0();" (assignment_expression "uVar3 = FUN_0003c1f0()" (identifier "uVar3") (= "=") (call_expression "FUN_0003c1f0()" (identifier "FUN_0003c1f0") (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}"))) (} "}")) (else_clause "else if ((uVar3 == 0x17) && (uVar1 == 0x16)) {\n    uVar3 = FUN_0003c1f0();\n    return uVar3;\n  }" (else "else") (if_statement "if ((uVar3 == 0x17) && (uVar1 == 0x16)) {\n    uVar3 = FUN_0003c1f0();\n    return uVar3;\n  }" (if "if") (parenthesized_expression "((uVar3 == 0x17) && (uVar1 == 0x16))" (( "(") (binary_expression "(uVar3 == 0x17) && (uVar1 == 0x16)" (parenthesized_expression "(uVar3 == 0x17)" (( "(") (binary_expression "uVar3 == 0x17" (identifier "uVar3") (== "==") (number_literal "0x17")) () ")")) (&& "&&") (parenthesized_expression "(uVar1 == 0x16)" (( "(") (binary_expression "uVar1 == 0x16" (identifier "uVar1") (== "==") (number_literal "0x16")) () ")"))) () ")")) (compound_statement "{\n    uVar3 = FUN_0003c1f0();\n    return uVar3;\n  }" ({ "{") (expression_statement "uVar3 = FUN_0003c1f0();" (assignment_expression "uVar3 = FUN_0003c1f0()" (identifier "uVar3") (= "=") (call_expression "FUN_0003c1f0()" (identifier "FUN_0003c1f0") (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}"))))) (if_statement "if (uVar3 != uVar1) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(uVar3 != uVar1)" (( "(") (binary_expression "uVar3 != uVar1" (identifier "uVar3") (!= "!=") (identifier "uVar1")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (local_24[1] != local_20[1]) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(local_24[1] != local_20[1])" (( "(") (binary_expression "local_24[1] != local_20[1]" (subscript_expression "local_24[1]" (identifier "local_24") ([ "[") (number_literal "1") (] "]")) (!= "!=") (subscript_expression "local_20[1]" (identifier "local_20") ([ "[") (number_literal "1") (] "]"))) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (uVar3 == 3) {\n    return (uint)(local_24[3] == local_20[3]);\n  }" (if "if") (parenthesized_expression "(uVar3 == 3)" (( "(") (binary_expression "uVar3 == 3" (identifier "uVar3") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n    return (uint)(local_24[3] == local_20[3]);\n  }" ({ "{") (return_statement "return (uint)(local_24[3] == local_20[3]);" (return "return") (call_expression "(uint)(local_24[3] == local_20[3])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_24[3] == local_20[3])" (( "(") (binary_expression "local_24[3] == local_20[3]" (subscript_expression "local_24[3]" (identifier "local_24") ([ "[") (number_literal "3") (] "]")) (== "==") (subscript_expression "local_20[3]" (identifier "local_20") ([ "[") (number_literal "3") (] "]"))) () ")"))) (; ";")) (} "}"))) (if_statement "if (uVar3 < 4) {\n    if (uVar3 == 2) {\n      return 1;\n    }\n  }\n  else if (uVar3 < 7) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(uVar3 < 4)" (( "(") (binary_expression "uVar3 < 4" (identifier "uVar3") (< "<") (number_literal "4")) () ")")) (compound_statement "{\n    if (uVar3 == 2) {\n      return 1;\n    }\n  }" ({ "{") (if_statement "if (uVar3 == 2) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(uVar3 == 2)" (( "(") (binary_expression "uVar3 == 2" (identifier "uVar3") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (} "}")) (else_clause "else if (uVar3 < 7) {\n    return 1;\n  }" (else "else") (if_statement "if (uVar3 < 7) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(uVar3 < 7)" (( "(") (binary_expression "uVar3 < 7" (identifier "uVar3") (< "<") (number_literal "7")) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))))) (expression_statement "local_28 = *(int **)((int)uVar4 + 0x30);" (assignment_expression "local_28 = *(int **)((int)uVar4 + 0x30)" (identifier "local_28") (= "=") (pointer_expression "*(int **)((int)uVar4 + 0x30)" (* "*") (cast_expression "(int **)((int)uVar4 + 0x30)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)uVar4 + 0x30)" (( "(") (binary_expression "(int)uVar4 + 0x30" (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4")) (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "piVar2 = local_28;" (assignment_expression "piVar2 = local_28" (identifier "piVar2") (= "=") (identifier "local_28")) (; ";")) (while_statement "while( true ) {\n    if (piVar2 == (int *)0x0) {\n      *(int ***)((int)uVar4 + 0x30) = &local_28;\n      if (uVar3 - 7 < 0x11) {\n                    \n                    \n        uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()\n        ;\n        return uVar3;\n      }\n                    \n      abort();\n    }\n    if ((local_24 == (uint *)piVar2[1]) && (local_20 == (uint *)piVar2[2])) break;\n    piVar2 = (int *)*piVar2;\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    if (piVar2 == (int *)0x0) {\n      *(int ***)((int)uVar4 + 0x30) = &local_28;\n      if (uVar3 - 7 < 0x11) {\n                    \n                    \n        uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()\n        ;\n        return uVar3;\n      }\n                    \n      abort();\n    }\n    if ((local_24 == (uint *)piVar2[1]) && (local_20 == (uint *)piVar2[2])) break;\n    piVar2 = (int *)*piVar2;\n  }" ({ "{") (if_statement "if (piVar2 == (int *)0x0) {\n      *(int ***)((int)uVar4 + 0x30) = &local_28;\n      if (uVar3 - 7 < 0x11) {\n                    \n                    \n        uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()\n        ;\n        return uVar3;\n      }\n                    \n      abort();\n    }" (if "if") (parenthesized_expression "(piVar2 == (int *)0x0)" (( "(") (binary_expression "piVar2 == (int *)0x0" (identifier "piVar2") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      *(int ***)((int)uVar4 + 0x30) = &local_28;\n      if (uVar3 - 7 < 0x11) {\n                    \n                    \n        uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()\n        ;\n        return uVar3;\n      }\n                    \n      abort();\n    }" ({ "{") (expression_statement "*(int ***)((int)uVar4 + 0x30) = &local_28;" (assignment_expression "*(int ***)((int)uVar4 + 0x30) = &local_28" (pointer_expression "*(int ***)((int)uVar4 + 0x30)" (* "*") (cast_expression "(int ***)((int)uVar4 + 0x30)" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)uVar4 + 0x30)" (( "(") (binary_expression "(int)uVar4 + 0x30" (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4")) (+ "+") (number_literal "0x30")) () ")")))) (= "=") (pointer_expression "&local_28" (& "&") (identifier "local_28"))) (; ";")) (if_statement "if (uVar3 - 7 < 0x11) {\n                    \n                    \n        uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()\n        ;\n        return uVar3;\n      }" (if "if") (parenthesized_expression "(uVar3 - 7 < 0x11)" (( "(") (binary_expression "uVar3 - 7 < 0x11" (binary_expression "uVar3 - 7" (identifier "uVar3") (- "-") (number_literal "7")) (< "<") (number_literal "0x11")) () ")")) (compound_statement "{\n                    \n                    \n        uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()\n        ;\n        return uVar3;\n      }" ({ "{") (expression_statement "uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()\n        ;" (assignment_expression "uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()" (identifier "uVar3") (= "=") (call_expression "(*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()" (parenthesized_expression "(*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))" (( "(") (pointer_expression "*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa)" (* "*") (cast_expression "(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa)" (( "(") (binary_expression "*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa" (binary_expression "*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP" (pointer_expression "*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4)" (( "(") (binary_expression "unaff_EBP + 0x1c40e + (uVar3 - 7) * 4" (binary_expression "unaff_EBP + 0x1c40e" (identifier "unaff_EBP") (+ "+") (number_literal "0x1c40e")) (+ "+") (binary_expression "(uVar3 - 7) * 4" (parenthesized_expression "(uVar3 - 7)" (( "(") (binary_expression "uVar3 - 7" (identifier "uVar3") (- "-") (number_literal "7")) () ")")) (* "*") (number_literal "4"))) () ")")))) (+ "+") (identifier "unaff_EBP")) (+ "+") (number_literal "0x374fa")) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}"))) (expression_statement "abort();" (call_expression "abort()" (identifier "abort") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if ((local_24 == (uint *)piVar2[1]) && (local_20 == (uint *)piVar2[2])) break;" (if "if") (parenthesized_expression "((local_24 == (uint *)piVar2[1]) && (local_20 == (uint *)piVar2[2]))" (( "(") (binary_expression "(local_24 == (uint *)piVar2[1]) && (local_20 == (uint *)piVar2[2])" (parenthesized_expression "(local_24 == (uint *)piVar2[1])" (( "(") (binary_expression "local_24 == (uint *)piVar2[1]" (identifier "local_24") (== "==") (cast_expression "(uint *)piVar2[1]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar2[1]" (identifier "piVar2") ([ "[") (number_literal "1") (] "]")))) () ")")) (&& "&&") (parenthesized_expression "(local_20 == (uint *)piVar2[2])" (( "(") (binary_expression "local_20 == (uint *)piVar2[2]" (identifier "local_20") (== "==") (cast_expression "(uint *)piVar2[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar2[2]" (identifier "piVar2") ([ "[") (number_literal "2") (] "]")))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "piVar2 = (int *)*piVar2;" (assignment_expression "piVar2 = (int *)*piVar2" (identifier "piVar2") (= "=") (cast_expression "(int *)*piVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar2" (* "*") (identifier "piVar2")))) (; ";")) (} "}"))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */

type_1 __regparm3 function_1(type_2 *info,type_3 *var_3,type_3 *var_5)

{
  type_4 *paVar1;
  type_4 *paVar2;
  type_5 var_1;
  type_5 var_4;
  type_6 *var_12;
  type_7 *var_16;
  type_7 *var_15;
  type_8 *var_20;
  type_8 *var_24;
  char *__s2;
  char *__s1;
  type_9 *var_27;
  type_9 *var_28;
  type_10 *var_18;
  type_10 *ppdVar13;
  type_11 *var_19;
  type_11 *ppdVar15;
  type_12 *pcVar16;
  type_3 *pdVar17;
  type_3 *pdVar18;
  int var_22;
  type_13 uVar20;
  type_14 *var_14;
  type_1 var_17;
  type_15 *var_29;
  type_14 *var_13;
  type_15 *var_30;
  type_16 *var_32;
  type_17 *ppdVar25;
  type_16 pdVar26;
  type_16 *var_31;
  type_17 *ppdVar28;
  type_16 pdVar29;
  type_15 *local_4c;
  int var_25;
  type_15 *local_44;
  type_6 top;
  
  while (var_1 = var_3->kind, var_1 == var_2) {
    var_3 = *((var_3->u).kindirect)->slot;
    if (var_3 == (type_16)0x0) {
      return 0;
    }
  }
  while (var_4 = var_5->kind, var_4 == var_2) {
    var_5 = *((var_5->u).kindirect)->slot;
    if (var_5 == (type_16)0x0) {
      return 0;
    }
  }
  if (var_3 == var_5) {
    return 1;
  }
  if (var_1 == var_6) {
    if (var_4 == var_7) {
      var_17 = function_1(info,((var_3->u).karray)->range_type,var_5);
      return var_17;
    }
  }
  else if ((var_1 == var_7) && (var_4 == var_6)) {
    var_17 = function_1(info,var_3,((var_5->u).karray)->range_type);
    return var_17;
  }
  if (var_1 != var_4) {
    return 0;
  }
  if (var_3->size != var_5->size) {
    return 0;
  }
  if (var_1 == var_8) {
    return (type_13)((var_3->u).kindirect == (var_5->u).kindirect);
  }
  if (var_1 < var_9) {
    if (var_1 == var_10) {
      return 1;
    }
  }
  else if (var_1 < var_11) {
    return 1;
  }
  top.next = info->compare_list;
  for (var_12 = top.next; var_12 != (type_6 *)0x0; var_12 = var_12->next) {
    if ((var_3 == var_12->var_3) && (var_5 == var_12->var_5)) {
      return 1;
    }
  }
  info->compare_list = &top;
  top.var_3 = var_3;
  top.var_5 = var_5;
  switch(var_1) {
  case var_11:
  case DEBUG_KIND_UNION:
  case DEBUG_KIND_CLASS:
  case DEBUG_KIND_UNION_CLASS:
    var_13 = (var_3->u).kclass;
    var_14 = (var_5->u).kclass;
    if (var_13 == (type_14 *)0x0) {
LAB_0003c14c:
      uVar20 = (type_13)(var_14 == (type_14 *)0x0);
      goto LAB_0003bc14;
    }
    if (var_14 != (type_14 *)0x0) {
      if ((info->base_id < var_13->id) && (var_13->id == var_14->id)) goto LAB_0003c016;
      var_16 = var_14->fields;
      var_15 = var_13->fields;
      if (((var_15 == (type_7 *)0x0) == (var_16 == (type_7 *)0x0)) &&
         ((((var_13->baseclasses == (type_10 *)0x0) ==
            (var_14->baseclasses == (type_10 *)0x0) &&
           ((var_13->methods == (type_11 *)0x0) == (var_14->methods == (type_11 *)0x0)))
          && ((var_13->vptrbase == (type_16)0x0) ==
              (var_14->vptrbase == (type_16)0x0))))) {
        var_25 = 0;
        if (var_15 == (type_7 *)0x0) {
LAB_0003c02c:
          if ((var_13->vptrbase == (type_3 *)0x0) ||
             (var_17 = function_1(info,var_13->vptrbase,var_14->vptrbase), var_17 != 0)) {
            var_18 = var_13->baseclasses;
            if (var_18 == (type_10 *)0x0) {
LAB_0003c0bd:
              var_19 = var_13->methods;
              if (var_19 != (type_11 *)0x0) {
                ppdVar15 = var_14->methods;
                local_4c = (type_15 *)0x0;
                while( true ) {
                  var_20 = *(type_8 **)((int)var_19 + (int)local_4c);
                  var_14 = *(type_14 **)((int)ppdVar15 + (int)local_4c);
                  if (var_20 == (type_8 *)0x0) break;
                  if (var_14 == (type_14 *)0x0) goto LAB_0003bc6c;
                  if (((*(char *)*var_20 != *(char *)var_14->fields) ||
                      (var_22 = var_21((char *)*var_20,(char *)var_14->fields), var_22 != 0)) ||
                     ((var_20[1] == 0) != (var_14->mark == 0))) goto LAB_0003bc6c;
                  local_4c = (type_15 *)((int)local_4c + 4);
                  if (var_20[1] == 0) {
                    /* WARNING: Does not return */
                    pcVar16 = (type_12 *)var_23();
                    (*pcVar16)();
                  }
                }
                goto LAB_0003c14c;
              }
              goto LAB_0003c016;
            }
            ppdVar13 = var_14->baseclasses;
            var_22 = 0;
            while( true ) {
              var_20 = *(type_8 **)((int)var_18 + var_22);
              var_24 = *(type_8 **)((int)ppdVar13 + var_22);
              if (var_20 == (type_8 *)0x0) break;
              if ((((var_24 == (type_8 *)0x0) || (var_20[1] != var_24[1])) ||
                  (var_20[2] != var_24[2])) || (var_20[3] != var_24[3])) goto LAB_0003bc6c;
              var_22 = var_22 + 4;
              var_17 = function_1(info,(type_3 *)*var_20,(type_3 *)*var_24);
              if (var_17 == 0) goto LAB_0003bc6c;
            }
            if (var_24 == (type_8 *)0x0) goto LAB_0003c0bd;
          }
        }
        else {
          while( true ) {
            var_20 = *(type_8 **)((int)var_15 + var_25);
            var_24 = *(type_8 **)((int)var_16 + var_25);
            if (var_20 == (type_8 *)0x0) break;
            if (var_24 == (type_8 *)0x0) goto LAB_0003bc6c;
            __s2 = (char *)*var_24;
            __s1 = (char *)*var_20;
            if (((*__s1 != *__s2) || (var_20[2] != var_24[2])) || (var_20[3] != var_24[3]))
            goto LAB_0003bc6c;
            if (var_20[3] == 0) {
              if ((char *)var_20[4] != (char *)var_24[4]) goto LAB_0003bc6c;
              if (var_20[5] != var_24[5]) {
                uVar20 = 0;
                goto LAB_0003bc14;
              }
            }
            else {
              var_22 = var_21((char *)var_20[4],(char *)var_24[4]);
              if (var_22 != 0) goto LAB_0003bc6c;
            }
            var_22 = var_21(__s1,__s2);
            if (var_22 != 0) goto LAB_0003bc6c;
            pdVar17 = var_26(info,(type_16)var_24[1],
                                          (type_18 *)0x0);
            pdVar18 = var_26(info,(type_16)var_20[1],
                                          (type_18 *)0x0);
            var_17 = function_1(info,pdVar18,pdVar17);
            var_25 = var_25 + 4;
            if (var_17 == 0) goto LAB_0003bc6c;
          }
          if (var_24 == (type_8 *)0x0) goto LAB_0003c02c;
        }
      }
    }
    break;
  case DEBUG_KIND_ENUM:
    var_27 = (var_3->u).knamed;
    var_28 = (var_5->u).knamed;
    if (var_27 == (type_9 *)0x0) {
      uVar20 = (type_13)(var_28 == (type_9 *)0x0);
      goto LAB_0003bc14;
    }
    if (var_28 != (type_9 *)0x0) {
      local_44 = var_27->name;
      local_4c = var_28->name;
      pdVar29 = var_27->type;
      pdVar26 = var_28->type;
      var_29 = local_44->next;
      var_30 = local_4c->next;
      if (var_29 == (type_15 *)0x0) {
LAB_0003c1d9:
        uVar20 = (type_13)(local_4c->next == (type_15 *)0x0);
        goto LAB_0003bc14;
      }
      if ((((var_30 != (type_15 *)0x0) && (*(char *)&var_30->next == *(char *)&var_29->next))
          && (pdVar26->size == pdVar29->size)) && (pdVar26->kind == pdVar29->kind)) {
        while (var_22 = var_21((char *)var_29,(char *)var_30), var_22 == 0) {
          local_44 = (type_15 *)&local_44->name;
          ppdVar28 = &pdVar29->pointer;
          ppdVar25 = &pdVar26->pointer;
          local_4c = (type_15 *)&local_4c->name;
          var_29 = *(type_15 **)local_44;
          var_30 = *(type_15 **)local_4c;
          if (var_29 == (type_15 *)0x0) goto LAB_0003c1d9;
          if (((var_30 == (type_15 *)0x0) ||
              (*(char *)&var_29->next != *(char *)&var_30->next)) ||
             (paVar1 = &pdVar29->u, paVar2 = &pdVar26->u, pdVar26 = (type_16)ppdVar25,
             pdVar29 = (type_16)ppdVar28,
             paVar1->kindirect != paVar2->kindirect || *ppdVar28 != *ppdVar25)) break;
        }
        uVar20 = 0;
        goto LAB_0003bc14;
      }
    }
    break;
  case DEBUG_KIND_POINTER:
  case DEBUG_KIND_REFERENCE:
  case DEBUG_KIND_CONST:
  case DEBUG_KIND_VOLATILE:
    uVar20 = function_1(info,(var_3->u).kpointer,(var_5->u).kpointer);
    goto LAB_0003bc14;
  case DEBUG_KIND_FUNCTION:
    if ((((var_3->u).kfunction)->varargs == ((var_5->u).kfunction)->varargs) &&
       (var_17 = function_1(info,((var_3->u).kfunction)->return_type,
                                  ((var_5->u).kfunction)->return_type), var_17 != 0)) {
      var_31 = ((var_3->u).kfunction)->arg_types;
      var_32 = ((var_5->u).kfunction)->arg_types;
      if ((var_31 == (type_16 *)0x0) == (var_32 == (type_16 *)0x0)) {
        if (var_31 == (type_16 *)0x0) goto LAB_0003c016;
        while( true ) {
          if (*var_31 == (type_3 *)0x0) break;
          if (*var_32 == (type_3 *)0x0) goto LAB_0003bc6c;
          var_17 = function_1(info,*var_31,*var_32);
          if (var_17 == 0) goto LAB_0003c004;
          var_31 = var_31 + 1;
          var_32 = var_32 + 1;
        }
        goto LAB_0003c00d;
      }
    }
    break;
  case DEBUG_KIND_RANGE:
    var_14 = (type_14 *)(var_3->u).kmethod;
    var_13 = (type_14 *)(var_5->u).kmethod;
    if (((var_14->id == var_13->id) &&
        ((type_16 *)var_14->mark == (type_16 *)var_13->mark)) &&
       (var_14->methods == var_13->methods)) {
      if (var_14->baseclasses != var_13->baseclasses) {
        uVar20 = 0;
        goto LAB_0003bc14;
      }
LAB_0003be6e:
      pdVar17 = (type_3 *)var_13->fields;
      pdVar18 = (type_3 *)var_14->fields;
LAB_0003be48:
      var_17 = function_1(info,pdVar18,pdVar17);
      uVar20 = (type_13)(var_17 != 0);
      goto LAB_0003bc14;
    }
    break;
  case DEBUG_KIND_ARRAY:
    var_14 = (var_3->u).kclass;
    var_13 = (var_5->u).kclass;
    if (((var_14->baseclasses == var_13->baseclasses) && (var_14->id == var_13->id)) &&
       ((var_14->vptrbase == var_13->vptrbase && (var_14->methods == var_13->methods)))) {
      if ((type_16)var_14[1].fields != (type_16)var_13[1].fields) {
        uVar20 = 0;
        goto LAB_0003bc14;
      }
      goto LAB_0003be6e;
    }
    break;
  case DEBUG_KIND_SET:
    var_13 = (type_14 *)(var_5->u).kfunction;
    var_14 = (type_14 *)(var_3->u).kfunction;
    if ((type_16 *)var_14->mark == (type_16 *)var_13->mark)
    goto LAB_0003be6e;
    break;
  case DEBUG_KIND_OFFSET:
    var_17 = function_1(info,((var_3->u).kfunction)->return_type,((var_5->u).kfunction)->return_type
                             );
    if (var_17 != 0) {
      pdVar17 = ((var_5->u).karray)->range_type;
      pdVar18 = ((var_3->u).karray)->range_type;
      goto LAB_0003be48;
    }
    break;
  case DEBUG_KIND_METHOD:
    if (((((var_3->u).kmethod)->varargs == ((var_5->u).kmethod)->varargs) &&
        (var_17 = function_1(info,((var_3->u).kmethod)->return_type,
                                   ((var_5->u).kmethod)->return_type), var_17 != 0)) &&
       (var_17 = function_1(info,((var_3->u).karray)->range_type,((var_5->u).karray)->range_type),
       var_17 != 0)) {
      var_31 = ((var_3->u).kmethod)->arg_types;
      var_32 = ((var_5->u).kmethod)->arg_types;
      if ((var_31 == (type_16 *)0x0) == (var_32 == (type_16 *)0x0)) {
        if (var_31 == (type_16 *)0x0) goto LAB_0003c016;
        while( true ) {
          if (*var_31 == (type_3 *)0x0) break;
          if (*var_32 == (type_3 *)0x0) goto LAB_0003bc6c;
          var_17 = function_1(info,*var_31,*var_32);
          if (var_17 == 0) goto LAB_0003c004;
          var_31 = var_31 + 1;
          var_32 = var_32 + 1;
        }
        goto LAB_0003c00d;
      }
    }
    break;
  case var_6:
  case var_7:
    var_27 = (var_5->u).knamed;
    var_28 = (var_3->u).knamed;
    var_22 = var_21(var_28->name->name,var_27->name->name);
    if (var_22 == 0) {
      pdVar17 = var_27->type;
      pdVar18 = var_28->type;
      goto LAB_0003be48;
    }
    break;
  default:
                    /* WARNING: Subroutine does not return */
    var_33();
  }
LAB_0003bc6c:
  uVar20 = 0;
LAB_0003bc14:
  info->compare_list = top.next;
  return uVar20;
LAB_0003c004:
  if (*var_31 == (type_16)0x0) {
LAB_0003c00d:
    if (*var_32 == (type_16)0x0) {
LAB_0003c016:
      uVar20 = 1;
      goto LAB_0003bc14;
    }
  }
  goto LAB_0003bc6c;
}


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

uint MASKED(void)

{
  uint uVar1;
  int *piVar2;
  uint uVar3;
  uint *extraout_ECX;
  int unaff_EBP;
  undefined8 uVar4;
  int *local_28;
  uint *local_24;
  uint *local_20;
  
  uVar4 = FUN_0003690f();
  local_24 = (uint *)((ulonglong)uVar4 >> 0x20);
  while (uVar3 = *local_24, local_20 = extraout_ECX, uVar3 == 1) {
    local_24 = (uint *)**(int **)local_24[3];
    if (local_24 == (uint *)0x0) {
      return 0;
    }
  }
  while (uVar1 = *local_20, uVar1 == 1) {
    local_20 = (uint *)**(undefined4 **)local_20[3];
    if (local_20 == (uint *)0x0) {
      return 0;
    }
  }
  if (local_24 == local_20) {
    return 1;
  }
  if (uVar3 == 0x16) {
    if (uVar1 == 0x17) {
      uVar3 = FUN_0003c1f0();
      return uVar3;
    }
  }
  else if ((uVar3 == 0x17) && (uVar1 == 0x16)) {
    uVar3 = FUN_0003c1f0();
    return uVar3;
  }
  if (uVar3 != uVar1) {
    return 0;
  }
  if (local_24[1] != local_20[1]) {
    return 0;
  }
  if (uVar3 == 3) {
    return (uint)(local_24[3] == local_20[3]);
  }
  if (uVar3 < 4) {
    if (uVar3 == 2) {
      return 1;
    }
  }
  else if (uVar3 < 7) {
    return 1;
  }
  local_28 = *(int **)((int)uVar4 + 0x30);
  piVar2 = local_28;
  while( true ) {
    if (piVar2 == (int *)0x0) {
      *(int ***)((int)uVar4 + 0x30) = &local_28;
      if (uVar3 - 7 < 0x11) {
                    /* WARNING: Could not recover jumptable at 0x0003bc05. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        uVar3 = (*(code *)(*(int *)(unaff_EBP + 0x1c40e + (uVar3 - 7) * 4) + unaff_EBP + 0x374fa))()
        ;
        return uVar3;
      }
                    /* WARNING: Subroutine does not return */
      abort();
    }
    if ((local_24 == (uint *)piVar2[1]) && (local_20 == (uint *)piVar2[2])) break;
    piVar2 = (int *)*piVar2;
  }
  return 1;
}

