
/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

void __regparm3 d_count_templates_scopes(int *num_templates,int *num_scopes,demangle_component *dc)

{
  demangle_component *dc_00;
  
  if (dc != (demangle_component *)0x0) {
    do {
      switch(dc->type) {
      default:
        goto _L25;
      case DEMANGLE_COMPONENT_QUAL_NAME:
      case DEMANGLE_COMPONENT_LOCAL_NAME:
      case DEMANGLE_COMPONENT_TYPED_NAME:
      case DEMANGLE_COMPONENT_VTABLE:
      case DEMANGLE_COMPONENT_VTT:
      case DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE:
      case DEMANGLE_COMPONENT_TYPEINFO:
      case DEMANGLE_COMPONENT_TYPEINFO_NAME:
      case DEMANGLE_COMPONENT_TYPEINFO_FN:
      case DEMANGLE_COMPONENT_THUNK:
      case DEMANGLE_COMPONENT_VIRTUAL_THUNK:
      case DEMANGLE_COMPONENT_COVARIANT_THUNK:
      case DEMANGLE_COMPONENT_JAVA_CLASS:
      case DEMANGLE_COMPONENT_GUARD:
      case DEMANGLE_COMPONENT_TLS_INIT:
      case DEMANGLE_COMPONENT_TLS_WRAPPER:
      case DEMANGLE_COMPONENT_REFTEMP:
      case DEMANGLE_COMPONENT_HIDDEN_ALIAS:
      case DEMANGLE_COMPONENT_RESTRICT:
      case DEMANGLE_COMPONENT_VOLATILE:
      case DEMANGLE_COMPONENT_CONST:
      case DEMANGLE_COMPONENT_RESTRICT_THIS:
      case DEMANGLE_COMPONENT_VOLATILE_THIS:
      case DEMANGLE_COMPONENT_CONST_THIS:
      case DEMANGLE_COMPONENT_REFERENCE_THIS:
      case DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS:
      case DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL:
      case DEMANGLE_COMPONENT_POINTER:
      case DEMANGLE_COMPONENT_COMPLEX:
      case DEMANGLE_COMPONENT_IMAGINARY:
      case DEMANGLE_COMPONENT_VENDOR_TYPE:
      case DEMANGLE_COMPONENT_FUNCTION_TYPE:
      case DEMANGLE_COMPONENT_ARRAY_TYPE:
      case DEMANGLE_COMPONENT_PTRMEM_TYPE:
      case DEMANGLE_COMPONENT_VECTOR_TYPE:
      case DEMANGLE_COMPONENT_ARGLIST:
      case DEMANGLE_COMPONENT_TEMPLATE_ARGLIST:
      case DEMANGLE_COMPONENT_INITIALIZER_LIST:
      case DEMANGLE_COMPONENT_CAST:
      case DEMANGLE_COMPONENT_CONVERSION:
      case DEMANGLE_COMPONENT_NULLARY:
      case DEMANGLE_COMPONENT_UNARY:
      case DEMANGLE_COMPONENT_BINARY:
      case DEMANGLE_COMPONENT_BINARY_ARGS:
      case DEMANGLE_COMPONENT_TRINARY:
      case DEMANGLE_COMPONENT_TRINARY_ARG1:
      case DEMANGLE_COMPONENT_TRINARY_ARG2:
      case DEMANGLE_COMPONENT_LITERAL:
      case DEMANGLE_COMPONENT_LITERAL_NEG:
      case DEMANGLE_COMPONENT_JAVA_RESOURCE:
      case DEMANGLE_COMPONENT_COMPOUND_NAME:
      case DEMANGLE_COMPONENT_DECLTYPE:
      case DEMANGLE_COMPONENT_TRANSACTION_CLONE:
      case DEMANGLE_COMPONENT_NONTRANSACTION_CLONE:
      case DEMANGLE_COMPONENT_PACK_EXPANSION:
      case DEMANGLE_COMPONENT_TAGGED_NAME:
      case DEMANGLE_COMPONENT_TRANSACTION_SAFE:
      case DEMANGLE_COMPONENT_CLONE:
      case DEMANGLE_COMPONENT_NOEXCEPT:
      case DEMANGLE_COMPONENT_THROW_SPEC:
_L49:
        dc_00 = (dc->u).s_fixed.length;
        break;
      case DEMANGLE_COMPONENT_TEMPLATE:
        *num_templates = *num_templates + 1;
        dc_00 = (dc->u).s_fixed.length;
        break;
      case DEMANGLE_COMPONENT_CTOR:
      case DEMANGLE_COMPONENT_DTOR:
      case DEMANGLE_COMPONENT_EXTENDED_OPERATOR:
        dc = (dc->u).s_extended_operator.name;
        goto LAB_001d45fb;
      case DEMANGLE_COMPONENT_REFERENCE:
      case DEMANGLE_COMPONENT_RVALUE_REFERENCE:
        dc_00 = (dc->u).s_fixed.length;
        if (dc_00->type == DEMANGLE_COMPONENT_TEMPLATE_PARAM) {
          *num_scopes = *num_scopes + 1;
          goto _L49;
        }
        break;
      case DEMANGLE_COMPONENT_FIXED_TYPE:
      case DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS:
      case DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS:
      case DEMANGLE_COMPONENT_LAMBDA:
      case DEMANGLE_COMPONENT_DEFAULT_ARG:
        dc = (dc->u).s_fixed.length;
        goto LAB_001d45fb;
      }
      d_count_templates_scopes(num_templates,num_scopes,dc_00);
      dc = (dc->u).s_extended_operator.name;
LAB_001d45fb:
    } while (dc != (demangle_component *)0x0);
  }
_L25:
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

void __regparm3 FUN_001d45c0(int *param_1,int *param_2,undefined4 *param_3)

{
  if (param_3 != (undefined4 *)0x0) {
    do {
      switch(*param_3) {
      default:
        goto LAB_001d45ff;
      case 1:
      case 2:
      case 3:
      case 9:
      case 10:
      case 0xb:
      case 0xc:
      case 0xd:
      case 0xe:
      case 0xf:
      case 0x10:
      case 0x11:
      case 0x12:
      case 0x13:
      case 0x14:
      case 0x15:
      case 0x16:
      case 0x17:
      case 0x19:
      case 0x1a:
      case 0x1b:
      case 0x1c:
      case 0x1d:
      case 0x1e:
      case 0x1f:
      case 0x20:
      case 0x21:
      case 0x22:
      case 0x25:
      case 0x26:
      case 0x28:
      case 0x29:
      case 0x2a:
      case 0x2b:
      case 0x2d:
      case 0x2e:
      case 0x2f:
      case 0x30:
      case 0x33:
      case 0x34:
      case 0x35:
      case 0x36:
      case 0x37:
      case 0x38:
      case 0x39:
      case 0x3a:
      case 0x3b:
      case 0x3c:
      case 0x3d:
      case 0x3e:
      case 0x3f:
      case 0x42:
      case 0x48:
      case 0x49:
      case 0x4a:
      case 0x4b:
      case 0x4c:
      case 0x4d:
      case 0x4e:
      case 0x4f:
code_r0x001d4624:
        break;
      case 4:
        *param_1 = *param_1 + 1;
        break;
      case 7:
      case 8:
      case 0x32:
        param_3 = (undefined4 *)param_3[3];
        goto code_r0x001d45fb;
      case 0x23:
      case 0x24:
        if (*(int *)param_3[2] == 5) {
          *param_2 = *param_2 + 1;
          goto code_r0x001d4624;
        }
        break;
      case 0x2c:
      case 0x43:
      case 0x44:
      case 0x45:
      case 0x46:
        param_3 = (undefined4 *)param_3[2];
        goto code_r0x001d45fb;
      }
      FUN_001d45c0();
      param_3 = (undefined4 *)param_3[3];
code_r0x001d45fb:
    } while (param_3 != (undefined4 *)0x0);
  }
LAB_001d45ff:
  return;
}


PUSH EBP
MOV EBP,EDX
PUSH EDI
MOV EDI,EAX
PUSH ESI
CALL 0x000559ea
ADD ESI,0x1baa34
PUSH EBX
MOV EBX,ECX
SUB ESP,0xc
TEST ECX,ECX
JZ 0x001d45ff
LEA ESI,[ESI]
CMP dword ptr [EBX],0x4f
JA 0x001d45ff
MOV EAX,dword ptr [EBX]
MOV EDX,dword ptr [ESI + EAX*0x4 + 0xfff126b4]
ADD EDX,ESI
JMP EDX
ADD ESP,0xc
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\n\nvoid __regparm3 FUN_001d45c0(int *param_1,int *param_2,undefined4 *param_3)\n\n{\n  if (param_3 != (undefined4 *)0x0) {\n    do {\n      switch(*param_3) {\n      default:\n        goto LAB_001d45ff;\n      case 1:\n      case 2:\n      case 3:\n      case 9:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n      case 0xe:\n      case 0xf:\n      case 0x10:\n      case 0x11:\n      case 0x12:\n      case 0x13:\n      case 0x14:\n      case 0x15:\n      case 0x16:\n      case 0x17:\n      case 0x19:\n      case 0x1a:\n      case 0x1b:\n      case 0x1c:\n      case 0x1d:\n      case 0x1e:\n      case 0x1f:\n      case 0x20:\n      case 0x21:\n      case 0x22:\n      case 0x25:\n      case 0x26:\n      case 0x28:\n      case 0x29:\n      case 0x2a:\n      case 0x2b:\n      case 0x2d:\n      case 0x2e:\n      case 0x2f:\n      case 0x30:\n      case 0x33:\n      case 0x34:\n      case 0x35:\n      case 0x36:\n      case 0x37:\n      case 0x38:\n      case 0x39:\n      case 0x3a:\n      case 0x3b:\n      case 0x3c:\n      case 0x3d:\n      case 0x3e:\n      case 0x3f:\n      case 0x42:\n      case 0x48:\n      case 0x49:\n      case 0x4a:\n      case 0x4b:\n      case 0x4c:\n      case 0x4d:\n      case 0x4e:\n      case 0x4f:\ncode_r0x001d4624:\n        break;\n      case 4:\n        *param_1 = *param_1 + 1;\n        break;\n      case 7:\n      case 8:\n      case 0x32:\n        param_3 = (undefined4 *)param_3[3];\n        goto code_r0x001d45fb;\n      case 0x23:\n      case 0x24:\n        if (*(int *)param_3[2] == 5) {\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }\n        break;\n      case 0x2c:\n      case 0x43:\n      case 0x44:\n      case 0x45:\n      case 0x46:\n        param_3 = (undefined4 *)param_3[2];\n        goto code_r0x001d45fb;\n      }\n      FUN_001d45c0();\n      param_3 = (undefined4 *)param_3[3];\ncode_r0x001d45fb:\n    } while (param_3 != (undefined4 *)0x0);\n  }\nLAB_001d45ff:\n  return;\n}\n\n" comment (function_definition "void __regparm3 FUN_001d45c0(int *param_1,int *param_2,undefined4 *param_3)\n\n{\n  if (param_3 != (undefined4 *)0x0) {\n    do {\n      switch(*param_3) {\n      default:\n        goto LAB_001d45ff;\n      case 1:\n      case 2:\n      case 3:\n      case 9:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n      case 0xe:\n      case 0xf:\n      case 0x10:\n      case 0x11:\n      case 0x12:\n      case 0x13:\n      case 0x14:\n      case 0x15:\n      case 0x16:\n      case 0x17:\n      case 0x19:\n      case 0x1a:\n      case 0x1b:\n      case 0x1c:\n      case 0x1d:\n      case 0x1e:\n      case 0x1f:\n      case 0x20:\n      case 0x21:\n      case 0x22:\n      case 0x25:\n      case 0x26:\n      case 0x28:\n      case 0x29:\n      case 0x2a:\n      case 0x2b:\n      case 0x2d:\n      case 0x2e:\n      case 0x2f:\n      case 0x30:\n      case 0x33:\n      case 0x34:\n      case 0x35:\n      case 0x36:\n      case 0x37:\n      case 0x38:\n      case 0x39:\n      case 0x3a:\n      case 0x3b:\n      case 0x3c:\n      case 0x3d:\n      case 0x3e:\n      case 0x3f:\n      case 0x42:\n      case 0x48:\n      case 0x49:\n      case 0x4a:\n      case 0x4b:\n      case 0x4c:\n      case 0x4d:\n      case 0x4e:\n      case 0x4f:\ncode_r0x001d4624:\n        break;\n      case 4:\n        *param_1 = *param_1 + 1;\n        break;\n      case 7:\n      case 8:\n      case 0x32:\n        param_3 = (undefined4 *)param_3[3];\n        goto code_r0x001d45fb;\n      case 0x23:\n      case 0x24:\n        if (*(int *)param_3[2] == 5) {\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }\n        break;\n      case 0x2c:\n      case 0x43:\n      case 0x44:\n      case 0x45:\n      case 0x46:\n        param_3 = (undefined4 *)param_3[2];\n        goto code_r0x001d45fb;\n      }\n      FUN_001d45c0();\n      param_3 = (undefined4 *)param_3[3];\ncode_r0x001d45fb:\n    } while (param_3 != (undefined4 *)0x0);\n  }\nLAB_001d45ff:\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_001d45c0(int *param_1,int *param_2,undefined4 *param_3)" identifier (parameter_list "(int *param_1,int *param_2,undefined4 *param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  if (param_3 != (undefined4 *)0x0) {\n    do {\n      switch(*param_3) {\n      default:\n        goto LAB_001d45ff;\n      case 1:\n      case 2:\n      case 3:\n      case 9:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n      case 0xe:\n      case 0xf:\n      case 0x10:\n      case 0x11:\n      case 0x12:\n      case 0x13:\n      case 0x14:\n      case 0x15:\n      case 0x16:\n      case 0x17:\n      case 0x19:\n      case 0x1a:\n      case 0x1b:\n      case 0x1c:\n      case 0x1d:\n      case 0x1e:\n      case 0x1f:\n      case 0x20:\n      case 0x21:\n      case 0x22:\n      case 0x25:\n      case 0x26:\n      case 0x28:\n      case 0x29:\n      case 0x2a:\n      case 0x2b:\n      case 0x2d:\n      case 0x2e:\n      case 0x2f:\n      case 0x30:\n      case 0x33:\n      case 0x34:\n      case 0x35:\n      case 0x36:\n      case 0x37:\n      case 0x38:\n      case 0x39:\n      case 0x3a:\n      case 0x3b:\n      case 0x3c:\n      case 0x3d:\n      case 0x3e:\n      case 0x3f:\n      case 0x42:\n      case 0x48:\n      case 0x49:\n      case 0x4a:\n      case 0x4b:\n      case 0x4c:\n      case 0x4d:\n      case 0x4e:\n      case 0x4f:\ncode_r0x001d4624:\n        break;\n      case 4:\n        *param_1 = *param_1 + 1;\n        break;\n      case 7:\n      case 8:\n      case 0x32:\n        param_3 = (undefined4 *)param_3[3];\n        goto code_r0x001d45fb;\n      case 0x23:\n      case 0x24:\n        if (*(int *)param_3[2] == 5) {\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }\n        break;\n      case 0x2c:\n      case 0x43:\n      case 0x44:\n      case 0x45:\n      case 0x46:\n        param_3 = (undefined4 *)param_3[2];\n        goto code_r0x001d45fb;\n      }\n      FUN_001d45c0();\n      param_3 = (undefined4 *)param_3[3];\ncode_r0x001d45fb:\n    } while (param_3 != (undefined4 *)0x0);\n  }\nLAB_001d45ff:\n  return;\n}" { (if_statement "if (param_3 != (undefined4 *)0x0) {\n    do {\n      switch(*param_3) {\n      default:\n        goto LAB_001d45ff;\n      case 1:\n      case 2:\n      case 3:\n      case 9:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n      case 0xe:\n      case 0xf:\n      case 0x10:\n      case 0x11:\n      case 0x12:\n      case 0x13:\n      case 0x14:\n      case 0x15:\n      case 0x16:\n      case 0x17:\n      case 0x19:\n      case 0x1a:\n      case 0x1b:\n      case 0x1c:\n      case 0x1d:\n      case 0x1e:\n      case 0x1f:\n      case 0x20:\n      case 0x21:\n      case 0x22:\n      case 0x25:\n      case 0x26:\n      case 0x28:\n      case 0x29:\n      case 0x2a:\n      case 0x2b:\n      case 0x2d:\n      case 0x2e:\n      case 0x2f:\n      case 0x30:\n      case 0x33:\n      case 0x34:\n      case 0x35:\n      case 0x36:\n      case 0x37:\n      case 0x38:\n      case 0x39:\n      case 0x3a:\n      case 0x3b:\n      case 0x3c:\n      case 0x3d:\n      case 0x3e:\n      case 0x3f:\n      case 0x42:\n      case 0x48:\n      case 0x49:\n      case 0x4a:\n      case 0x4b:\n      case 0x4c:\n      case 0x4d:\n      case 0x4e:\n      case 0x4f:\ncode_r0x001d4624:\n        break;\n      case 4:\n        *param_1 = *param_1 + 1;\n        break;\n      case 7:\n      case 8:\n      case 0x32:\n        param_3 = (undefined4 *)param_3[3];\n        goto code_r0x001d45fb;\n      case 0x23:\n      case 0x24:\n        if (*(int *)param_3[2] == 5) {\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }\n        break;\n      case 0x2c:\n      case 0x43:\n      case 0x44:\n      case 0x45:\n      case 0x46:\n        param_3 = (undefined4 *)param_3[2];\n        goto code_r0x001d45fb;\n      }\n      FUN_001d45c0();\n      param_3 = (undefined4 *)param_3[3];\ncode_r0x001d45fb:\n    } while (param_3 != (undefined4 *)0x0);\n  }" if (parenthesized_expression "(param_3 != (undefined4 *)0x0)" ( (binary_expression "param_3 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    do {\n      switch(*param_3) {\n      default:\n        goto LAB_001d45ff;\n      case 1:\n      case 2:\n      case 3:\n      case 9:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n      case 0xe:\n      case 0xf:\n      case 0x10:\n      case 0x11:\n      case 0x12:\n      case 0x13:\n      case 0x14:\n      case 0x15:\n      case 0x16:\n      case 0x17:\n      case 0x19:\n      case 0x1a:\n      case 0x1b:\n      case 0x1c:\n      case 0x1d:\n      case 0x1e:\n      case 0x1f:\n      case 0x20:\n      case 0x21:\n      case 0x22:\n      case 0x25:\n      case 0x26:\n      case 0x28:\n      case 0x29:\n      case 0x2a:\n      case 0x2b:\n      case 0x2d:\n      case 0x2e:\n      case 0x2f:\n      case 0x30:\n      case 0x33:\n      case 0x34:\n      case 0x35:\n      case 0x36:\n      case 0x37:\n      case 0x38:\n      case 0x39:\n      case 0x3a:\n      case 0x3b:\n      case 0x3c:\n      case 0x3d:\n      case 0x3e:\n      case 0x3f:\n      case 0x42:\n      case 0x48:\n      case 0x49:\n      case 0x4a:\n      case 0x4b:\n      case 0x4c:\n      case 0x4d:\n      case 0x4e:\n      case 0x4f:\ncode_r0x001d4624:\n        break;\n      case 4:\n        *param_1 = *param_1 + 1;\n        break;\n      case 7:\n      case 8:\n      case 0x32:\n        param_3 = (undefined4 *)param_3[3];\n        goto code_r0x001d45fb;\n      case 0x23:\n      case 0x24:\n        if (*(int *)param_3[2] == 5) {\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }\n        break;\n      case 0x2c:\n      case 0x43:\n      case 0x44:\n      case 0x45:\n      case 0x46:\n        param_3 = (undefined4 *)param_3[2];\n        goto code_r0x001d45fb;\n      }\n      FUN_001d45c0();\n      param_3 = (undefined4 *)param_3[3];\ncode_r0x001d45fb:\n    } while (param_3 != (undefined4 *)0x0);\n  }" { (do_statement "do {\n      switch(*param_3) {\n      default:\n        goto LAB_001d45ff;\n      case 1:\n      case 2:\n      case 3:\n      case 9:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n      case 0xe:\n      case 0xf:\n      case 0x10:\n      case 0x11:\n      case 0x12:\n      case 0x13:\n      case 0x14:\n      case 0x15:\n      case 0x16:\n      case 0x17:\n      case 0x19:\n      case 0x1a:\n      case 0x1b:\n      case 0x1c:\n      case 0x1d:\n      case 0x1e:\n      case 0x1f:\n      case 0x20:\n      case 0x21:\n      case 0x22:\n      case 0x25:\n      case 0x26:\n      case 0x28:\n      case 0x29:\n      case 0x2a:\n      case 0x2b:\n      case 0x2d:\n      case 0x2e:\n      case 0x2f:\n      case 0x30:\n      case 0x33:\n      case 0x34:\n      case 0x35:\n      case 0x36:\n      case 0x37:\n      case 0x38:\n      case 0x39:\n      case 0x3a:\n      case 0x3b:\n      case 0x3c:\n      case 0x3d:\n      case 0x3e:\n      case 0x3f:\n      case 0x42:\n      case 0x48:\n      case 0x49:\n      case 0x4a:\n      case 0x4b:\n      case 0x4c:\n      case 0x4d:\n      case 0x4e:\n      case 0x4f:\ncode_r0x001d4624:\n        break;\n      case 4:\n        *param_1 = *param_1 + 1;\n        break;\n      case 7:\n      case 8:\n      case 0x32:\n        param_3 = (undefined4 *)param_3[3];\n        goto code_r0x001d45fb;\n      case 0x23:\n      case 0x24:\n        if (*(int *)param_3[2] == 5) {\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }\n        break;\n      case 0x2c:\n      case 0x43:\n      case 0x44:\n      case 0x45:\n      case 0x46:\n        param_3 = (undefined4 *)param_3[2];\n        goto code_r0x001d45fb;\n      }\n      FUN_001d45c0();\n      param_3 = (undefined4 *)param_3[3];\ncode_r0x001d45fb:\n    } while (param_3 != (undefined4 *)0x0);" do (compound_statement "{\n      switch(*param_3) {\n      default:\n        goto LAB_001d45ff;\n      case 1:\n      case 2:\n      case 3:\n      case 9:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n      case 0xe:\n      case 0xf:\n      case 0x10:\n      case 0x11:\n      case 0x12:\n      case 0x13:\n      case 0x14:\n      case 0x15:\n      case 0x16:\n      case 0x17:\n      case 0x19:\n      case 0x1a:\n      case 0x1b:\n      case 0x1c:\n      case 0x1d:\n      case 0x1e:\n      case 0x1f:\n      case 0x20:\n      case 0x21:\n      case 0x22:\n      case 0x25:\n      case 0x26:\n      case 0x28:\n      case 0x29:\n      case 0x2a:\n      case 0x2b:\n      case 0x2d:\n      case 0x2e:\n      case 0x2f:\n      case 0x30:\n      case 0x33:\n      case 0x34:\n      case 0x35:\n      case 0x36:\n      case 0x37:\n      case 0x38:\n      case 0x39:\n      case 0x3a:\n      case 0x3b:\n      case 0x3c:\n      case 0x3d:\n      case 0x3e:\n      case 0x3f:\n      case 0x42:\n      case 0x48:\n      case 0x49:\n      case 0x4a:\n      case 0x4b:\n      case 0x4c:\n      case 0x4d:\n      case 0x4e:\n      case 0x4f:\ncode_r0x001d4624:\n        break;\n      case 4:\n        *param_1 = *param_1 + 1;\n        break;\n      case 7:\n      case 8:\n      case 0x32:\n        param_3 = (undefined4 *)param_3[3];\n        goto code_r0x001d45fb;\n      case 0x23:\n      case 0x24:\n        if (*(int *)param_3[2] == 5) {\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }\n        break;\n      case 0x2c:\n      case 0x43:\n      case 0x44:\n      case 0x45:\n      case 0x46:\n        param_3 = (undefined4 *)param_3[2];\n        goto code_r0x001d45fb;\n      }\n      FUN_001d45c0();\n      param_3 = (undefined4 *)param_3[3];\ncode_r0x001d45fb:\n    }" { (switch_statement "switch(*param_3) {\n      default:\n        goto LAB_001d45ff;\n      case 1:\n      case 2:\n      case 3:\n      case 9:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n      case 0xe:\n      case 0xf:\n      case 0x10:\n      case 0x11:\n      case 0x12:\n      case 0x13:\n      case 0x14:\n      case 0x15:\n      case 0x16:\n      case 0x17:\n      case 0x19:\n      case 0x1a:\n      case 0x1b:\n      case 0x1c:\n      case 0x1d:\n      case 0x1e:\n      case 0x1f:\n      case 0x20:\n      case 0x21:\n      case 0x22:\n      case 0x25:\n      case 0x26:\n      case 0x28:\n      case 0x29:\n      case 0x2a:\n      case 0x2b:\n      case 0x2d:\n      case 0x2e:\n      case 0x2f:\n      case 0x30:\n      case 0x33:\n      case 0x34:\n      case 0x35:\n      case 0x36:\n      case 0x37:\n      case 0x38:\n      case 0x39:\n      case 0x3a:\n      case 0x3b:\n      case 0x3c:\n      case 0x3d:\n      case 0x3e:\n      case 0x3f:\n      case 0x42:\n      case 0x48:\n      case 0x49:\n      case 0x4a:\n      case 0x4b:\n      case 0x4c:\n      case 0x4d:\n      case 0x4e:\n      case 0x4f:\ncode_r0x001d4624:\n        break;\n      case 4:\n        *param_1 = *param_1 + 1;\n        break;\n      case 7:\n      case 8:\n      case 0x32:\n        param_3 = (undefined4 *)param_3[3];\n        goto code_r0x001d45fb;\n      case 0x23:\n      case 0x24:\n        if (*(int *)param_3[2] == 5) {\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }\n        break;\n      case 0x2c:\n      case 0x43:\n      case 0x44:\n      case 0x45:\n      case 0x46:\n        param_3 = (undefined4 *)param_3[2];\n        goto code_r0x001d45fb;\n      }" switch (parenthesized_expression "(*param_3)" ( (pointer_expression "*param_3" * identifier) )) (compound_statement "{\n      default:\n        goto LAB_001d45ff;\n      case 1:\n      case 2:\n      case 3:\n      case 9:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n      case 0xe:\n      case 0xf:\n      case 0x10:\n      case 0x11:\n      case 0x12:\n      case 0x13:\n      case 0x14:\n      case 0x15:\n      case 0x16:\n      case 0x17:\n      case 0x19:\n      case 0x1a:\n      case 0x1b:\n      case 0x1c:\n      case 0x1d:\n      case 0x1e:\n      case 0x1f:\n      case 0x20:\n      case 0x21:\n      case 0x22:\n      case 0x25:\n      case 0x26:\n      case 0x28:\n      case 0x29:\n      case 0x2a:\n      case 0x2b:\n      case 0x2d:\n      case 0x2e:\n      case 0x2f:\n      case 0x30:\n      case 0x33:\n      case 0x34:\n      case 0x35:\n      case 0x36:\n      case 0x37:\n      case 0x38:\n      case 0x39:\n      case 0x3a:\n      case 0x3b:\n      case 0x3c:\n      case 0x3d:\n      case 0x3e:\n      case 0x3f:\n      case 0x42:\n      case 0x48:\n      case 0x49:\n      case 0x4a:\n      case 0x4b:\n      case 0x4c:\n      case 0x4d:\n      case 0x4e:\n      case 0x4f:\ncode_r0x001d4624:\n        break;\n      case 4:\n        *param_1 = *param_1 + 1;\n        break;\n      case 7:\n      case 8:\n      case 0x32:\n        param_3 = (undefined4 *)param_3[3];\n        goto code_r0x001d45fb;\n      case 0x23:\n      case 0x24:\n        if (*(int *)param_3[2] == 5) {\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }\n        break;\n      case 0x2c:\n      case 0x43:\n      case 0x44:\n      case 0x45:\n      case 0x46:\n        param_3 = (undefined4 *)param_3[2];\n        goto code_r0x001d45fb;\n      }" { (case_statement "default:\n        goto LAB_001d45ff;" default : (goto_statement "goto LAB_001d45ff;" goto statement_identifier ;)) (case_statement "case 1:" case number_literal :) (case_statement "case 2:" case number_literal :) (case_statement "case 3:" case number_literal :) (case_statement "case 9:" case number_literal :) (case_statement "case 10:" case number_literal :) (case_statement "case 0xb:" case number_literal :) (case_statement "case 0xc:" case number_literal :) (case_statement "case 0xd:" case number_literal :) (case_statement "case 0xe:" case number_literal :) (case_statement "case 0xf:" case number_literal :) (case_statement "case 0x10:" case number_literal :) (case_statement "case 0x11:" case number_literal :) (case_statement "case 0x12:" case number_literal :) (case_statement "case 0x13:" case number_literal :) (case_statement "case 0x14:" case number_literal :) (case_statement "case 0x15:" case number_literal :) (case_statement "case 0x16:" case number_literal :) (case_statement "case 0x17:" case number_literal :) (case_statement "case 0x19:" case number_literal :) (case_statement "case 0x1a:" case number_literal :) (case_statement "case 0x1b:" case number_literal :) (case_statement "case 0x1c:" case number_literal :) (case_statement "case 0x1d:" case number_literal :) (case_statement "case 0x1e:" case number_literal :) (case_statement "case 0x1f:" case number_literal :) (case_statement "case 0x20:" case number_literal :) (case_statement "case 0x21:" case number_literal :) (case_statement "case 0x22:" case number_literal :) (case_statement "case 0x25:" case number_literal :) (case_statement "case 0x26:" case number_literal :) (case_statement "case 0x28:" case number_literal :) (case_statement "case 0x29:" case number_literal :) (case_statement "case 0x2a:" case number_literal :) (case_statement "case 0x2b:" case number_literal :) (case_statement "case 0x2d:" case number_literal :) (case_statement "case 0x2e:" case number_literal :) (case_statement "case 0x2f:" case number_literal :) (case_statement "case 0x30:" case number_literal :) (case_statement "case 0x33:" case number_literal :) (case_statement "case 0x34:" case number_literal :) (case_statement "case 0x35:" case number_literal :) (case_statement "case 0x36:" case number_literal :) (case_statement "case 0x37:" case number_literal :) (case_statement "case 0x38:" case number_literal :) (case_statement "case 0x39:" case number_literal :) (case_statement "case 0x3a:" case number_literal :) (case_statement "case 0x3b:" case number_literal :) (case_statement "case 0x3c:" case number_literal :) (case_statement "case 0x3d:" case number_literal :) (case_statement "case 0x3e:" case number_literal :) (case_statement "case 0x3f:" case number_literal :) (case_statement "case 0x42:" case number_literal :) (case_statement "case 0x48:" case number_literal :) (case_statement "case 0x49:" case number_literal :) (case_statement "case 0x4a:" case number_literal :) (case_statement "case 0x4b:" case number_literal :) (case_statement "case 0x4c:" case number_literal :) (case_statement "case 0x4d:" case number_literal :) (case_statement "case 0x4e:" case number_literal :) (case_statement "case 0x4f:\ncode_r0x001d4624:\n        break;" case number_literal : (labeled_statement "code_r0x001d4624:\n        break;" statement_identifier : (break_statement "break;" break ;))) (case_statement "case 4:\n        *param_1 = *param_1 + 1;\n        break;" case number_literal : (expression_statement "*param_1 = *param_1 + 1;" (assignment_expression "*param_1 = *param_1 + 1" (pointer_expression "*param_1" * identifier) = (binary_expression "*param_1 + 1" (pointer_expression "*param_1" * identifier) + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 7:" case number_literal :) (case_statement "case 8:" case number_literal :) (case_statement "case 0x32:\n        param_3 = (undefined4 *)param_3[3];\n        goto code_r0x001d45fb;" case number_literal : (expression_statement "param_3 = (undefined4 *)param_3[3];" (assignment_expression "param_3 = (undefined4 *)param_3[3]" identifier = (cast_expression "(undefined4 *)param_3[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) ;) (goto_statement "goto code_r0x001d45fb;" goto statement_identifier ;)) (case_statement "case 0x23:" case number_literal :) (case_statement "case 0x24:\n        if (*(int *)param_3[2] == 5) {\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }\n        break;" case number_literal : (if_statement "if (*(int *)param_3[2] == 5) {\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }" if (parenthesized_expression "(*(int *)param_3[2] == 5)" ( (binary_expression "*(int *)param_3[2] == 5" (pointer_expression "*(int *)param_3[2]" * (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) == number_literal) )) (compound_statement "{\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }" { (expression_statement "*param_2 = *param_2 + 1;" (assignment_expression "*param_2 = *param_2 + 1" (pointer_expression "*param_2" * identifier) = (binary_expression "*param_2 + 1" (pointer_expression "*param_2" * identifier) + number_literal)) ;) (goto_statement "goto code_r0x001d4624;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 0x2c:" case number_literal :) (case_statement "case 0x43:" case number_literal :) (case_statement "case 0x44:" case number_literal :) (case_statement "case 0x45:" case number_literal :) (case_statement "case 0x46:\n        param_3 = (undefined4 *)param_3[2];\n        goto code_r0x001d45fb;" case number_literal : (expression_statement "param_3 = (undefined4 *)param_3[2];" (assignment_expression "param_3 = (undefined4 *)param_3[2]" identifier = (cast_expression "(undefined4 *)param_3[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) ;) (goto_statement "goto code_r0x001d45fb;" goto statement_identifier ;)) })) (expression_statement "FUN_001d45c0();" (call_expression "FUN_001d45c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "param_3 = (undefined4 *)param_3[3];" (assignment_expression "param_3 = (undefined4 *)param_3[3]" identifier = (cast_expression "(undefined4 *)param_3[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) ;) (labeled_statement "code_r0x001d45fb:" statement_identifier : (expression_statement "" ;)) }) while (parenthesized_expression "(param_3 != (undefined4 *)0x0)" ( (binary_expression "param_3 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (labeled_statement "LAB_001d45ff:\n  return;" statement_identifier : (return_statement "return;" return ;)) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\n\nvoid __regparm3 d_count_templates_scopes(int *num_templates,int *num_scopes,demangle_component *dc)\n\n{\n  demangle_component *dc_00;\n  \n  if (dc != (demangle_component *)0x0) {\n    do {\n      switch(dc->type) {\n      default:\n        goto _L25;\n      case DEMANGLE_COMPONENT_QUAL_NAME:\n      case DEMANGLE_COMPONENT_LOCAL_NAME:\n      case DEMANGLE_COMPONENT_TYPED_NAME:\n      case DEMANGLE_COMPONENT_VTABLE:\n      case DEMANGLE_COMPONENT_VTT:\n      case DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE:\n      case DEMANGLE_COMPONENT_TYPEINFO:\n      case DEMANGLE_COMPONENT_TYPEINFO_NAME:\n      case DEMANGLE_COMPONENT_TYPEINFO_FN:\n      case DEMANGLE_COMPONENT_THUNK:\n      case DEMANGLE_COMPONENT_VIRTUAL_THUNK:\n      case DEMANGLE_COMPONENT_COVARIANT_THUNK:\n      case DEMANGLE_COMPONENT_JAVA_CLASS:\n      case DEMANGLE_COMPONENT_GUARD:\n      case DEMANGLE_COMPONENT_TLS_INIT:\n      case DEMANGLE_COMPONENT_TLS_WRAPPER:\n      case DEMANGLE_COMPONENT_REFTEMP:\n      case DEMANGLE_COMPONENT_HIDDEN_ALIAS:\n      case DEMANGLE_COMPONENT_RESTRICT:\n      case DEMANGLE_COMPONENT_VOLATILE:\n      case DEMANGLE_COMPONENT_CONST:\n      case DEMANGLE_COMPONENT_RESTRICT_THIS:\n      case DEMANGLE_COMPONENT_VOLATILE_THIS:\n      case DEMANGLE_COMPONENT_CONST_THIS:\n      case DEMANGLE_COMPONENT_REFERENCE_THIS:\n      case DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS:\n      case DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL:\n      case DEMANGLE_COMPONENT_POINTER:\n      case DEMANGLE_COMPONENT_COMPLEX:\n      case DEMANGLE_COMPONENT_IMAGINARY:\n      case DEMANGLE_COMPONENT_VENDOR_TYPE:\n      case DEMANGLE_COMPONENT_FUNCTION_TYPE:\n      case DEMANGLE_COMPONENT_ARRAY_TYPE:\n      case DEMANGLE_COMPONENT_PTRMEM_TYPE:\n      case DEMANGLE_COMPONENT_VECTOR_TYPE:\n      case DEMANGLE_COMPONENT_ARGLIST:\n      case DEMANGLE_COMPONENT_TEMPLATE_ARGLIST:\n      case DEMANGLE_COMPONENT_INITIALIZER_LIST:\n      case DEMANGLE_COMPONENT_CAST:\n      case DEMANGLE_COMPONENT_CONVERSION:\n      case DEMANGLE_COMPONENT_NULLARY:\n      case DEMANGLE_COMPONENT_UNARY:\n      case DEMANGLE_COMPONENT_BINARY:\n      case DEMANGLE_COMPONENT_BINARY_ARGS:\n      case DEMANGLE_COMPONENT_TRINARY:\n      case DEMANGLE_COMPONENT_TRINARY_ARG1:\n      case DEMANGLE_COMPONENT_TRINARY_ARG2:\n      case DEMANGLE_COMPONENT_LITERAL:\n      case DEMANGLE_COMPONENT_LITERAL_NEG:\n      case DEMANGLE_COMPONENT_JAVA_RESOURCE:\n      case DEMANGLE_COMPONENT_COMPOUND_NAME:\n      case DEMANGLE_COMPONENT_DECLTYPE:\n      case DEMANGLE_COMPONENT_TRANSACTION_CLONE:\n      case DEMANGLE_COMPONENT_NONTRANSACTION_CLONE:\n      case DEMANGLE_COMPONENT_PACK_EXPANSION:\n      case DEMANGLE_COMPONENT_TAGGED_NAME:\n      case DEMANGLE_COMPONENT_TRANSACTION_SAFE:\n      case DEMANGLE_COMPONENT_CLONE:\n      case DEMANGLE_COMPONENT_NOEXCEPT:\n      case DEMANGLE_COMPONENT_THROW_SPEC:\n_L49:\n        dc_00 = (dc->u).s_fixed.length;\n        break;\n      case DEMANGLE_COMPONENT_TEMPLATE:\n        *num_templates = *num_templates + 1;\n        dc_00 = (dc->u).s_fixed.length;\n        break;\n      case DEMANGLE_COMPONENT_CTOR:\n      case DEMANGLE_COMPONENT_DTOR:\n      case DEMANGLE_COMPONENT_EXTENDED_OPERATOR:\n        dc = (dc->u).s_extended_operator.name;\n        goto LAB_001d45fb;\n      case DEMANGLE_COMPONENT_REFERENCE:\n      case DEMANGLE_COMPONENT_RVALUE_REFERENCE:\n        dc_00 = (dc->u).s_fixed.length;\n        if (dc_00->type == DEMANGLE_COMPONENT_TEMPLATE_PARAM) {\n          *num_scopes = *num_scopes + 1;\n          goto _L49;\n        }\n        break;\n      case DEMANGLE_COMPONENT_FIXED_TYPE:\n      case DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS:\n      case DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS:\n      case DEMANGLE_COMPONENT_LAMBDA:\n      case DEMANGLE_COMPONENT_DEFAULT_ARG:\n        dc = (dc->u).s_fixed.length;\n        goto LAB_001d45fb;\n      }\n      d_count_templates_scopes(num_templates,num_scopes,dc_00);\n      dc = (dc->u).s_extended_operator.name;\nLAB_001d45fb:\n    } while (dc != (demangle_component *)0x0);\n  }\n_L25:\n  return;\n}\n\n" comment (function_definition "void __regparm3 d_count_templates_scopes(int *num_templates,int *num_scopes,demangle_component *dc)\n\n{\n  demangle_component *dc_00;\n  \n  if (dc != (demangle_component *)0x0) {\n    do {\n      switch(dc->type) {\n      default:\n        goto _L25;\n      case DEMANGLE_COMPONENT_QUAL_NAME:\n      case DEMANGLE_COMPONENT_LOCAL_NAME:\n      case DEMANGLE_COMPONENT_TYPED_NAME:\n      case DEMANGLE_COMPONENT_VTABLE:\n      case DEMANGLE_COMPONENT_VTT:\n      case DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE:\n      case DEMANGLE_COMPONENT_TYPEINFO:\n      case DEMANGLE_COMPONENT_TYPEINFO_NAME:\n      case DEMANGLE_COMPONENT_TYPEINFO_FN:\n      case DEMANGLE_COMPONENT_THUNK:\n      case DEMANGLE_COMPONENT_VIRTUAL_THUNK:\n      case DEMANGLE_COMPONENT_COVARIANT_THUNK:\n      case DEMANGLE_COMPONENT_JAVA_CLASS:\n      case DEMANGLE_COMPONENT_GUARD:\n      case DEMANGLE_COMPONENT_TLS_INIT:\n      case DEMANGLE_COMPONENT_TLS_WRAPPER:\n      case DEMANGLE_COMPONENT_REFTEMP:\n      case DEMANGLE_COMPONENT_HIDDEN_ALIAS:\n      case DEMANGLE_COMPONENT_RESTRICT:\n      case DEMANGLE_COMPONENT_VOLATILE:\n      case DEMANGLE_COMPONENT_CONST:\n      case DEMANGLE_COMPONENT_RESTRICT_THIS:\n      case DEMANGLE_COMPONENT_VOLATILE_THIS:\n      case DEMANGLE_COMPONENT_CONST_THIS:\n      case DEMANGLE_COMPONENT_REFERENCE_THIS:\n      case DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS:\n      case DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL:\n      case DEMANGLE_COMPONENT_POINTER:\n      case DEMANGLE_COMPONENT_COMPLEX:\n      case DEMANGLE_COMPONENT_IMAGINARY:\n      case DEMANGLE_COMPONENT_VENDOR_TYPE:\n      case DEMANGLE_COMPONENT_FUNCTION_TYPE:\n      case DEMANGLE_COMPONENT_ARRAY_TYPE:\n      case DEMANGLE_COMPONENT_PTRMEM_TYPE:\n      case DEMANGLE_COMPONENT_VECTOR_TYPE:\n      case DEMANGLE_COMPONENT_ARGLIST:\n      case DEMANGLE_COMPONENT_TEMPLATE_ARGLIST:\n      case DEMANGLE_COMPONENT_INITIALIZER_LIST:\n      case DEMANGLE_COMPONENT_CAST:\n      case DEMANGLE_COMPONENT_CONVERSION:\n      case DEMANGLE_COMPONENT_NULLARY:\n      case DEMANGLE_COMPONENT_UNARY:\n      case DEMANGLE_COMPONENT_BINARY:\n      case DEMANGLE_COMPONENT_BINARY_ARGS:\n      case DEMANGLE_COMPONENT_TRINARY:\n      case DEMANGLE_COMPONENT_TRINARY_ARG1:\n      case DEMANGLE_COMPONENT_TRINARY_ARG2:\n      case DEMANGLE_COMPONENT_LITERAL:\n      case DEMANGLE_COMPONENT_LITERAL_NEG:\n      case DEMANGLE_COMPONENT_JAVA_RESOURCE:\n      case DEMANGLE_COMPONENT_COMPOUND_NAME:\n      case DEMANGLE_COMPONENT_DECLTYPE:\n      case DEMANGLE_COMPONENT_TRANSACTION_CLONE:\n      case DEMANGLE_COMPONENT_NONTRANSACTION_CLONE:\n      case DEMANGLE_COMPONENT_PACK_EXPANSION:\n      case DEMANGLE_COMPONENT_TAGGED_NAME:\n      case DEMANGLE_COMPONENT_TRANSACTION_SAFE:\n      case DEMANGLE_COMPONENT_CLONE:\n      case DEMANGLE_COMPONENT_NOEXCEPT:\n      case DEMANGLE_COMPONENT_THROW_SPEC:\n_L49:\n        dc_00 = (dc->u).s_fixed.length;\n        break;\n      case DEMANGLE_COMPONENT_TEMPLATE:\n        *num_templates = *num_templates + 1;\n        dc_00 = (dc->u).s_fixed.length;\n        break;\n      case DEMANGLE_COMPONENT_CTOR:\n      case DEMANGLE_COMPONENT_DTOR:\n      case DEMANGLE_COMPONENT_EXTENDED_OPERATOR:\n        dc = (dc->u).s_extended_operator.name;\n        goto LAB_001d45fb;\n      case DEMANGLE_COMPONENT_REFERENCE:\n      case DEMANGLE_COMPONENT_RVALUE_REFERENCE:\n        dc_00 = (dc->u).s_fixed.length;\n        if (dc_00->type == DEMANGLE_COMPONENT_TEMPLATE_PARAM) {\n          *num_scopes = *num_scopes + 1;\n          goto _L49;\n        }\n        break;\n      case DEMANGLE_COMPONENT_FIXED_TYPE:\n      case DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS:\n      case DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS:\n      case DEMANGLE_COMPONENT_LAMBDA:\n      case DEMANGLE_COMPONENT_DEFAULT_ARG:\n        dc = (dc->u).s_fixed.length;\n        goto LAB_001d45fb;\n      }\n      d_count_templates_scopes(num_templates,num_scopes,dc_00);\n      dc = (dc->u).s_extended_operator.name;\nLAB_001d45fb:\n    } while (dc != (demangle_component *)0x0);\n  }\n_L25:\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "d_count_templates_scopes(int *num_templates,int *num_scopes,demangle_component *dc)" identifier (parameter_list "(int *num_templates,int *num_scopes,demangle_component *dc)" ( (parameter_declaration "int *num_templates" primitive_type (pointer_declarator "*num_templates" * identifier)) , (parameter_declaration "int *num_scopes" primitive_type (pointer_declarator "*num_scopes" * identifier)) , (parameter_declaration "demangle_component *dc" type_identifier (pointer_declarator "*dc" * identifier)) ))) (compound_statement "{\n  demangle_component *dc_00;\n  \n  if (dc != (demangle_component *)0x0) {\n    do {\n      switch(dc->type) {\n      default:\n        goto _L25;\n      case DEMANGLE_COMPONENT_QUAL_NAME:\n      case DEMANGLE_COMPONENT_LOCAL_NAME:\n      case DEMANGLE_COMPONENT_TYPED_NAME:\n      case DEMANGLE_COMPONENT_VTABLE:\n      case DEMANGLE_COMPONENT_VTT:\n      case DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE:\n      case DEMANGLE_COMPONENT_TYPEINFO:\n      case DEMANGLE_COMPONENT_TYPEINFO_NAME:\n      case DEMANGLE_COMPONENT_TYPEINFO_FN:\n      case DEMANGLE_COMPONENT_THUNK:\n      case DEMANGLE_COMPONENT_VIRTUAL_THUNK:\n      case DEMANGLE_COMPONENT_COVARIANT_THUNK:\n      case DEMANGLE_COMPONENT_JAVA_CLASS:\n      case DEMANGLE_COMPONENT_GUARD:\n      case DEMANGLE_COMPONENT_TLS_INIT:\n      case DEMANGLE_COMPONENT_TLS_WRAPPER:\n      case DEMANGLE_COMPONENT_REFTEMP:\n      case DEMANGLE_COMPONENT_HIDDEN_ALIAS:\n      case DEMANGLE_COMPONENT_RESTRICT:\n      case DEMANGLE_COMPONENT_VOLATILE:\n      case DEMANGLE_COMPONENT_CONST:\n      case DEMANGLE_COMPONENT_RESTRICT_THIS:\n      case DEMANGLE_COMPONENT_VOLATILE_THIS:\n      case DEMANGLE_COMPONENT_CONST_THIS:\n      case DEMANGLE_COMPONENT_REFERENCE_THIS:\n      case DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS:\n      case DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL:\n      case DEMANGLE_COMPONENT_POINTER:\n      case DEMANGLE_COMPONENT_COMPLEX:\n      case DEMANGLE_COMPONENT_IMAGINARY:\n      case DEMANGLE_COMPONENT_VENDOR_TYPE:\n      case DEMANGLE_COMPONENT_FUNCTION_TYPE:\n      case DEMANGLE_COMPONENT_ARRAY_TYPE:\n      case DEMANGLE_COMPONENT_PTRMEM_TYPE:\n      case DEMANGLE_COMPONENT_VECTOR_TYPE:\n      case DEMANGLE_COMPONENT_ARGLIST:\n      case DEMANGLE_COMPONENT_TEMPLATE_ARGLIST:\n      case DEMANGLE_COMPONENT_INITIALIZER_LIST:\n      case DEMANGLE_COMPONENT_CAST:\n      case DEMANGLE_COMPONENT_CONVERSION:\n      case DEMANGLE_COMPONENT_NULLARY:\n      case DEMANGLE_COMPONENT_UNARY:\n      case DEMANGLE_COMPONENT_BINARY:\n      case DEMANGLE_COMPONENT_BINARY_ARGS:\n      case DEMANGLE_COMPONENT_TRINARY:\n      case DEMANGLE_COMPONENT_TRINARY_ARG1:\n      case DEMANGLE_COMPONENT_TRINARY_ARG2:\n      case DEMANGLE_COMPONENT_LITERAL:\n      case DEMANGLE_COMPONENT_LITERAL_NEG:\n      case DEMANGLE_COMPONENT_JAVA_RESOURCE:\n      case DEMANGLE_COMPONENT_COMPOUND_NAME:\n      case DEMANGLE_COMPONENT_DECLTYPE:\n      case DEMANGLE_COMPONENT_TRANSACTION_CLONE:\n      case DEMANGLE_COMPONENT_NONTRANSACTION_CLONE:\n      case DEMANGLE_COMPONENT_PACK_EXPANSION:\n      case DEMANGLE_COMPONENT_TAGGED_NAME:\n      case DEMANGLE_COMPONENT_TRANSACTION_SAFE:\n      case DEMANGLE_COMPONENT_CLONE:\n      case DEMANGLE_COMPONENT_NOEXCEPT:\n      case DEMANGLE_COMPONENT_THROW_SPEC:\n_L49:\n        dc_00 = (dc->u).s_fixed.length;\n        break;\n      case DEMANGLE_COMPONENT_TEMPLATE:\n        *num_templates = *num_templates + 1;\n        dc_00 = (dc->u).s_fixed.length;\n        break;\n      case DEMANGLE_COMPONENT_CTOR:\n      case DEMANGLE_COMPONENT_DTOR:\n      case DEMANGLE_COMPONENT_EXTENDED_OPERATOR:\n        dc = (dc->u).s_extended_operator.name;\n        goto LAB_001d45fb;\n      case DEMANGLE_COMPONENT_REFERENCE:\n      case DEMANGLE_COMPONENT_RVALUE_REFERENCE:\n        dc_00 = (dc->u).s_fixed.length;\n        if (dc_00->type == DEMANGLE_COMPONENT_TEMPLATE_PARAM) {\n          *num_scopes = *num_scopes + 1;\n          goto _L49;\n        }\n        break;\n      case DEMANGLE_COMPONENT_FIXED_TYPE:\n      case DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS:\n      case DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS:\n      case DEMANGLE_COMPONENT_LAMBDA:\n      case DEMANGLE_COMPONENT_DEFAULT_ARG:\n        dc = (dc->u).s_fixed.length;\n        goto LAB_001d45fb;\n      }\n      d_count_templates_scopes(num_templates,num_scopes,dc_00);\n      dc = (dc->u).s_extended_operator.name;\nLAB_001d45fb:\n    } while (dc != (demangle_component *)0x0);\n  }\n_L25:\n  return;\n}" { (declaration "demangle_component *dc_00;" type_identifier (pointer_declarator "*dc_00" * identifier) ;) (if_statement "if (dc != (demangle_component *)0x0) {\n    do {\n      switch(dc->type) {\n      default:\n        goto _L25;\n      case DEMANGLE_COMPONENT_QUAL_NAME:\n      case DEMANGLE_COMPONENT_LOCAL_NAME:\n      case DEMANGLE_COMPONENT_TYPED_NAME:\n      case DEMANGLE_COMPONENT_VTABLE:\n      case DEMANGLE_COMPONENT_VTT:\n      case DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE:\n      case DEMANGLE_COMPONENT_TYPEINFO:\n      case DEMANGLE_COMPONENT_TYPEINFO_NAME:\n      case DEMANGLE_COMPONENT_TYPEINFO_FN:\n      case DEMANGLE_COMPONENT_THUNK:\n      case DEMANGLE_COMPONENT_VIRTUAL_THUNK:\n      case DEMANGLE_COMPONENT_COVARIANT_THUNK:\n      case DEMANGLE_COMPONENT_JAVA_CLASS:\n      case DEMANGLE_COMPONENT_GUARD:\n      case DEMANGLE_COMPONENT_TLS_INIT:\n      case DEMANGLE_COMPONENT_TLS_WRAPPER:\n      case DEMANGLE_COMPONENT_REFTEMP:\n      case DEMANGLE_COMPONENT_HIDDEN_ALIAS:\n      case DEMANGLE_COMPONENT_RESTRICT:\n      case DEMANGLE_COMPONENT_VOLATILE:\n      case DEMANGLE_COMPONENT_CONST:\n      case DEMANGLE_COMPONENT_RESTRICT_THIS:\n      case DEMANGLE_COMPONENT_VOLATILE_THIS:\n      case DEMANGLE_COMPONENT_CONST_THIS:\n      case DEMANGLE_COMPONENT_REFERENCE_THIS:\n      case DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS:\n      case DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL:\n      case DEMANGLE_COMPONENT_POINTER:\n      case DEMANGLE_COMPONENT_COMPLEX:\n      case DEMANGLE_COMPONENT_IMAGINARY:\n      case DEMANGLE_COMPONENT_VENDOR_TYPE:\n      case DEMANGLE_COMPONENT_FUNCTION_TYPE:\n      case DEMANGLE_COMPONENT_ARRAY_TYPE:\n      case DEMANGLE_COMPONENT_PTRMEM_TYPE:\n      case DEMANGLE_COMPONENT_VECTOR_TYPE:\n      case DEMANGLE_COMPONENT_ARGLIST:\n      case DEMANGLE_COMPONENT_TEMPLATE_ARGLIST:\n      case DEMANGLE_COMPONENT_INITIALIZER_LIST:\n      case DEMANGLE_COMPONENT_CAST:\n      case DEMANGLE_COMPONENT_CONVERSION:\n      case DEMANGLE_COMPONENT_NULLARY:\n      case DEMANGLE_COMPONENT_UNARY:\n      case DEMANGLE_COMPONENT_BINARY:\n      case DEMANGLE_COMPONENT_BINARY_ARGS:\n      case DEMANGLE_COMPONENT_TRINARY:\n      case DEMANGLE_COMPONENT_TRINARY_ARG1:\n      case DEMANGLE_COMPONENT_TRINARY_ARG2:\n      case DEMANGLE_COMPONENT_LITERAL:\n      case DEMANGLE_COMPONENT_LITERAL_NEG:\n      case DEMANGLE_COMPONENT_JAVA_RESOURCE:\n      case DEMANGLE_COMPONENT_COMPOUND_NAME:\n      case DEMANGLE_COMPONENT_DECLTYPE:\n      case DEMANGLE_COMPONENT_TRANSACTION_CLONE:\n      case DEMANGLE_COMPONENT_NONTRANSACTION_CLONE:\n      case DEMANGLE_COMPONENT_PACK_EXPANSION:\n      case DEMANGLE_COMPONENT_TAGGED_NAME:\n      case DEMANGLE_COMPONENT_TRANSACTION_SAFE:\n      case DEMANGLE_COMPONENT_CLONE:\n      case DEMANGLE_COMPONENT_NOEXCEPT:\n      case DEMANGLE_COMPONENT_THROW_SPEC:\n_L49:\n        dc_00 = (dc->u).s_fixed.length;\n        break;\n      case DEMANGLE_COMPONENT_TEMPLATE:\n        *num_templates = *num_templates + 1;\n        dc_00 = (dc->u).s_fixed.length;\n        break;\n      case DEMANGLE_COMPONENT_CTOR:\n      case DEMANGLE_COMPONENT_DTOR:\n      case DEMANGLE_COMPONENT_EXTENDED_OPERATOR:\n        dc = (dc->u).s_extended_operator.name;\n        goto LAB_001d45fb;\n      case DEMANGLE_COMPONENT_REFERENCE:\n      case DEMANGLE_COMPONENT_RVALUE_REFERENCE:\n        dc_00 = (dc->u).s_fixed.length;\n        if (dc_00->type == DEMANGLE_COMPONENT_TEMPLATE_PARAM) {\n          *num_scopes = *num_scopes + 1;\n          goto _L49;\n        }\n        break;\n      case DEMANGLE_COMPONENT_FIXED_TYPE:\n      case DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS:\n      case DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS:\n      case DEMANGLE_COMPONENT_LAMBDA:\n      case DEMANGLE_COMPONENT_DEFAULT_ARG:\n        dc = (dc->u).s_fixed.length;\n        goto LAB_001d45fb;\n      }\n      d_count_templates_scopes(num_templates,num_scopes,dc_00);\n      dc = (dc->u).s_extended_operator.name;\nLAB_001d45fb:\n    } while (dc != (demangle_component *)0x0);\n  }" if (parenthesized_expression "(dc != (demangle_component *)0x0)" ( (binary_expression "dc != (demangle_component *)0x0" identifier != (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    do {\n      switch(dc->type) {\n      default:\n        goto _L25;\n      case DEMANGLE_COMPONENT_QUAL_NAME:\n      case DEMANGLE_COMPONENT_LOCAL_NAME:\n      case DEMANGLE_COMPONENT_TYPED_NAME:\n      case DEMANGLE_COMPONENT_VTABLE:\n      case DEMANGLE_COMPONENT_VTT:\n      case DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE:\n      case DEMANGLE_COMPONENT_TYPEINFO:\n      case DEMANGLE_COMPONENT_TYPEINFO_NAME:\n      case DEMANGLE_COMPONENT_TYPEINFO_FN:\n      case DEMANGLE_COMPONENT_THUNK:\n      case DEMANGLE_COMPONENT_VIRTUAL_THUNK:\n      case DEMANGLE_COMPONENT_COVARIANT_THUNK:\n      case DEMANGLE_COMPONENT_JAVA_CLASS:\n      case DEMANGLE_COMPONENT_GUARD:\n      case DEMANGLE_COMPONENT_TLS_INIT:\n      case DEMANGLE_COMPONENT_TLS_WRAPPER:\n      case DEMANGLE_COMPONENT_REFTEMP:\n      case DEMANGLE_COMPONENT_HIDDEN_ALIAS:\n      case DEMANGLE_COMPONENT_RESTRICT:\n      case DEMANGLE_COMPONENT_VOLATILE:\n      case DEMANGLE_COMPONENT_CONST:\n      case DEMANGLE_COMPONENT_RESTRICT_THIS:\n      case DEMANGLE_COMPONENT_VOLATILE_THIS:\n      case DEMANGLE_COMPONENT_CONST_THIS:\n      case DEMANGLE_COMPONENT_REFERENCE_THIS:\n      case DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS:\n      case DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL:\n      case DEMANGLE_COMPONENT_POINTER:\n      case DEMANGLE_COMPONENT_COMPLEX:\n      case DEMANGLE_COMPONENT_IMAGINARY:\n      case DEMANGLE_COMPONENT_VENDOR_TYPE:\n      case DEMANGLE_COMPONENT_FUNCTION_TYPE:\n      case DEMANGLE_COMPONENT_ARRAY_TYPE:\n      case DEMANGLE_COMPONENT_PTRMEM_TYPE:\n      case DEMANGLE_COMPONENT_VECTOR_TYPE:\n      case DEMANGLE_COMPONENT_ARGLIST:\n      case DEMANGLE_COMPONENT_TEMPLATE_ARGLIST:\n      case DEMANGLE_COMPONENT_INITIALIZER_LIST:\n      case DEMANGLE_COMPONENT_CAST:\n      case DEMANGLE_COMPONENT_CONVERSION:\n      case DEMANGLE_COMPONENT_NULLARY:\n      case DEMANGLE_COMPONENT_UNARY:\n      case DEMANGLE_COMPONENT_BINARY:\n      case DEMANGLE_COMPONENT_BINARY_ARGS:\n      case DEMANGLE_COMPONENT_TRINARY:\n      case DEMANGLE_COMPONENT_TRINARY_ARG1:\n      case DEMANGLE_COMPONENT_TRINARY_ARG2:\n      case DEMANGLE_COMPONENT_LITERAL:\n      case DEMANGLE_COMPONENT_LITERAL_NEG:\n      case DEMANGLE_COMPONENT_JAVA_RESOURCE:\n      case DEMANGLE_COMPONENT_COMPOUND_NAME:\n      case DEMANGLE_COMPONENT_DECLTYPE:\n      case DEMANGLE_COMPONENT_TRANSACTION_CLONE:\n      case DEMANGLE_COMPONENT_NONTRANSACTION_CLONE:\n      case DEMANGLE_COMPONENT_PACK_EXPANSION:\n      case DEMANGLE_COMPONENT_TAGGED_NAME:\n      case DEMANGLE_COMPONENT_TRANSACTION_SAFE:\n      case DEMANGLE_COMPONENT_CLONE:\n      case DEMANGLE_COMPONENT_NOEXCEPT:\n      case DEMANGLE_COMPONENT_THROW_SPEC:\n_L49:\n        dc_00 = (dc->u).s_fixed.length;\n        break;\n      case DEMANGLE_COMPONENT_TEMPLATE:\n        *num_templates = *num_templates + 1;\n        dc_00 = (dc->u).s_fixed.length;\n        break;\n      case DEMANGLE_COMPONENT_CTOR:\n      case DEMANGLE_COMPONENT_DTOR:\n      case DEMANGLE_COMPONENT_EXTENDED_OPERATOR:\n        dc = (dc->u).s_extended_operator.name;\n        goto LAB_001d45fb;\n      case DEMANGLE_COMPONENT_REFERENCE:\n      case DEMANGLE_COMPONENT_RVALUE_REFERENCE:\n        dc_00 = (dc->u).s_fixed.length;\n        if (dc_00->type == DEMANGLE_COMPONENT_TEMPLATE_PARAM) {\n          *num_scopes = *num_scopes + 1;\n          goto _L49;\n        }\n        break;\n      case DEMANGLE_COMPONENT_FIXED_TYPE:\n      case DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS:\n      case DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS:\n      case DEMANGLE_COMPONENT_LAMBDA:\n      case DEMANGLE_COMPONENT_DEFAULT_ARG:\n        dc = (dc->u).s_fixed.length;\n        goto LAB_001d45fb;\n      }\n      d_count_templates_scopes(num_templates,num_scopes,dc_00);\n      dc = (dc->u).s_extended_operator.name;\nLAB_001d45fb:\n    } while (dc != (demangle_component *)0x0);\n  }" { (do_statement "do {\n      switch(dc->type) {\n      default:\n        goto _L25;\n      case DEMANGLE_COMPONENT_QUAL_NAME:\n      case DEMANGLE_COMPONENT_LOCAL_NAME:\n      case DEMANGLE_COMPONENT_TYPED_NAME:\n      case DEMANGLE_COMPONENT_VTABLE:\n      case DEMANGLE_COMPONENT_VTT:\n      case DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE:\n      case DEMANGLE_COMPONENT_TYPEINFO:\n      case DEMANGLE_COMPONENT_TYPEINFO_NAME:\n      case DEMANGLE_COMPONENT_TYPEINFO_FN:\n      case DEMANGLE_COMPONENT_THUNK:\n      case DEMANGLE_COMPONENT_VIRTUAL_THUNK:\n      case DEMANGLE_COMPONENT_COVARIANT_THUNK:\n      case DEMANGLE_COMPONENT_JAVA_CLASS:\n      case DEMANGLE_COMPONENT_GUARD:\n      case DEMANGLE_COMPONENT_TLS_INIT:\n      case DEMANGLE_COMPONENT_TLS_WRAPPER:\n      case DEMANGLE_COMPONENT_REFTEMP:\n      case DEMANGLE_COMPONENT_HIDDEN_ALIAS:\n      case DEMANGLE_COMPONENT_RESTRICT:\n      case DEMANGLE_COMPONENT_VOLATILE:\n      case DEMANGLE_COMPONENT_CONST:\n      case DEMANGLE_COMPONENT_RESTRICT_THIS:\n      case DEMANGLE_COMPONENT_VOLATILE_THIS:\n      case DEMANGLE_COMPONENT_CONST_THIS:\n      case DEMANGLE_COMPONENT_REFERENCE_THIS:\n      case DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS:\n      case DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL:\n      case DEMANGLE_COMPONENT_POINTER:\n      case DEMANGLE_COMPONENT_COMPLEX:\n      case DEMANGLE_COMPONENT_IMAGINARY:\n      case DEMANGLE_COMPONENT_VENDOR_TYPE:\n      case DEMANGLE_COMPONENT_FUNCTION_TYPE:\n      case DEMANGLE_COMPONENT_ARRAY_TYPE:\n      case DEMANGLE_COMPONENT_PTRMEM_TYPE:\n      case DEMANGLE_COMPONENT_VECTOR_TYPE:\n      case DEMANGLE_COMPONENT_ARGLIST:\n      case DEMANGLE_COMPONENT_TEMPLATE_ARGLIST:\n      case DEMANGLE_COMPONENT_INITIALIZER_LIST:\n      case DEMANGLE_COMPONENT_CAST:\n      case DEMANGLE_COMPONENT_CONVERSION:\n      case DEMANGLE_COMPONENT_NULLARY:\n      case DEMANGLE_COMPONENT_UNARY:\n      case DEMANGLE_COMPONENT_BINARY:\n      case DEMANGLE_COMPONENT_BINARY_ARGS:\n      case DEMANGLE_COMPONENT_TRINARY:\n      case DEMANGLE_COMPONENT_TRINARY_ARG1:\n      case DEMANGLE_COMPONENT_TRINARY_ARG2:\n      case DEMANGLE_COMPONENT_LITERAL:\n      case DEMANGLE_COMPONENT_LITERAL_NEG:\n      case DEMANGLE_COMPONENT_JAVA_RESOURCE:\n      case DEMANGLE_COMPONENT_COMPOUND_NAME:\n      case DEMANGLE_COMPONENT_DECLTYPE:\n      case DEMANGLE_COMPONENT_TRANSACTION_CLONE:\n      case DEMANGLE_COMPONENT_NONTRANSACTION_CLONE:\n      case DEMANGLE_COMPONENT_PACK_EXPANSION:\n      case DEMANGLE_COMPONENT_TAGGED_NAME:\n      case DEMANGLE_COMPONENT_TRANSACTION_SAFE:\n      case DEMANGLE_COMPONENT_CLONE:\n      case DEMANGLE_COMPONENT_NOEXCEPT:\n      case DEMANGLE_COMPONENT_THROW_SPEC:\n_L49:\n        dc_00 = (dc->u).s_fixed.length;\n        break;\n      case DEMANGLE_COMPONENT_TEMPLATE:\n        *num_templates = *num_templates + 1;\n        dc_00 = (dc->u).s_fixed.length;\n        break;\n      case DEMANGLE_COMPONENT_CTOR:\n      case DEMANGLE_COMPONENT_DTOR:\n      case DEMANGLE_COMPONENT_EXTENDED_OPERATOR:\n        dc = (dc->u).s_extended_operator.name;\n        goto LAB_001d45fb;\n      case DEMANGLE_COMPONENT_REFERENCE:\n      case DEMANGLE_COMPONENT_RVALUE_REFERENCE:\n        dc_00 = (dc->u).s_fixed.length;\n        if (dc_00->type == DEMANGLE_COMPONENT_TEMPLATE_PARAM) {\n          *num_scopes = *num_scopes + 1;\n          goto _L49;\n        }\n        break;\n      case DEMANGLE_COMPONENT_FIXED_TYPE:\n      case DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS:\n      case DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS:\n      case DEMANGLE_COMPONENT_LAMBDA:\n      case DEMANGLE_COMPONENT_DEFAULT_ARG:\n        dc = (dc->u).s_fixed.length;\n        goto LAB_001d45fb;\n      }\n      d_count_templates_scopes(num_templates,num_scopes,dc_00);\n      dc = (dc->u).s_extended_operator.name;\nLAB_001d45fb:\n    } while (dc != (demangle_component *)0x0);" do (compound_statement "{\n      switch(dc->type) {\n      default:\n        goto _L25;\n      case DEMANGLE_COMPONENT_QUAL_NAME:\n      case DEMANGLE_COMPONENT_LOCAL_NAME:\n      case DEMANGLE_COMPONENT_TYPED_NAME:\n      case DEMANGLE_COMPONENT_VTABLE:\n      case DEMANGLE_COMPONENT_VTT:\n      case DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE:\n      case DEMANGLE_COMPONENT_TYPEINFO:\n      case DEMANGLE_COMPONENT_TYPEINFO_NAME:\n      case DEMANGLE_COMPONENT_TYPEINFO_FN:\n      case DEMANGLE_COMPONENT_THUNK:\n      case DEMANGLE_COMPONENT_VIRTUAL_THUNK:\n      case DEMANGLE_COMPONENT_COVARIANT_THUNK:\n      case DEMANGLE_COMPONENT_JAVA_CLASS:\n      case DEMANGLE_COMPONENT_GUARD:\n      case DEMANGLE_COMPONENT_TLS_INIT:\n      case DEMANGLE_COMPONENT_TLS_WRAPPER:\n      case DEMANGLE_COMPONENT_REFTEMP:\n      case DEMANGLE_COMPONENT_HIDDEN_ALIAS:\n      case DEMANGLE_COMPONENT_RESTRICT:\n      case DEMANGLE_COMPONENT_VOLATILE:\n      case DEMANGLE_COMPONENT_CONST:\n      case DEMANGLE_COMPONENT_RESTRICT_THIS:\n      case DEMANGLE_COMPONENT_VOLATILE_THIS:\n      case DEMANGLE_COMPONENT_CONST_THIS:\n      case DEMANGLE_COMPONENT_REFERENCE_THIS:\n      case DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS:\n      case DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL:\n      case DEMANGLE_COMPONENT_POINTER:\n      case DEMANGLE_COMPONENT_COMPLEX:\n      case DEMANGLE_COMPONENT_IMAGINARY:\n      case DEMANGLE_COMPONENT_VENDOR_TYPE:\n      case DEMANGLE_COMPONENT_FUNCTION_TYPE:\n      case DEMANGLE_COMPONENT_ARRAY_TYPE:\n      case DEMANGLE_COMPONENT_PTRMEM_TYPE:\n      case DEMANGLE_COMPONENT_VECTOR_TYPE:\n      case DEMANGLE_COMPONENT_ARGLIST:\n      case DEMANGLE_COMPONENT_TEMPLATE_ARGLIST:\n      case DEMANGLE_COMPONENT_INITIALIZER_LIST:\n      case DEMANGLE_COMPONENT_CAST:\n      case DEMANGLE_COMPONENT_CONVERSION:\n      case DEMANGLE_COMPONENT_NULLARY:\n      case DEMANGLE_COMPONENT_UNARY:\n      case DEMANGLE_COMPONENT_BINARY:\n      case DEMANGLE_COMPONENT_BINARY_ARGS:\n      case DEMANGLE_COMPONENT_TRINARY:\n      case DEMANGLE_COMPONENT_TRINARY_ARG1:\n      case DEMANGLE_COMPONENT_TRINARY_ARG2:\n      case DEMANGLE_COMPONENT_LITERAL:\n      case DEMANGLE_COMPONENT_LITERAL_NEG:\n      case DEMANGLE_COMPONENT_JAVA_RESOURCE:\n      case DEMANGLE_COMPONENT_COMPOUND_NAME:\n      case DEMANGLE_COMPONENT_DECLTYPE:\n      case DEMANGLE_COMPONENT_TRANSACTION_CLONE:\n      case DEMANGLE_COMPONENT_NONTRANSACTION_CLONE:\n      case DEMANGLE_COMPONENT_PACK_EXPANSION:\n      case DEMANGLE_COMPONENT_TAGGED_NAME:\n      case DEMANGLE_COMPONENT_TRANSACTION_SAFE:\n      case DEMANGLE_COMPONENT_CLONE:\n      case DEMANGLE_COMPONENT_NOEXCEPT:\n      case DEMANGLE_COMPONENT_THROW_SPEC:\n_L49:\n        dc_00 = (dc->u).s_fixed.length;\n        break;\n      case DEMANGLE_COMPONENT_TEMPLATE:\n        *num_templates = *num_templates + 1;\n        dc_00 = (dc->u).s_fixed.length;\n        break;\n      case DEMANGLE_COMPONENT_CTOR:\n      case DEMANGLE_COMPONENT_DTOR:\n      case DEMANGLE_COMPONENT_EXTENDED_OPERATOR:\n        dc = (dc->u).s_extended_operator.name;\n        goto LAB_001d45fb;\n      case DEMANGLE_COMPONENT_REFERENCE:\n      case DEMANGLE_COMPONENT_RVALUE_REFERENCE:\n        dc_00 = (dc->u).s_fixed.length;\n        if (dc_00->type == DEMANGLE_COMPONENT_TEMPLATE_PARAM) {\n          *num_scopes = *num_scopes + 1;\n          goto _L49;\n        }\n        break;\n      case DEMANGLE_COMPONENT_FIXED_TYPE:\n      case DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS:\n      case DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS:\n      case DEMANGLE_COMPONENT_LAMBDA:\n      case DEMANGLE_COMPONENT_DEFAULT_ARG:\n        dc = (dc->u).s_fixed.length;\n        goto LAB_001d45fb;\n      }\n      d_count_templates_scopes(num_templates,num_scopes,dc_00);\n      dc = (dc->u).s_extended_operator.name;\nLAB_001d45fb:\n    }" { (switch_statement "switch(dc->type) {\n      default:\n        goto _L25;\n      case DEMANGLE_COMPONENT_QUAL_NAME:\n      case DEMANGLE_COMPONENT_LOCAL_NAME:\n      case DEMANGLE_COMPONENT_TYPED_NAME:\n      case DEMANGLE_COMPONENT_VTABLE:\n      case DEMANGLE_COMPONENT_VTT:\n      case DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE:\n      case DEMANGLE_COMPONENT_TYPEINFO:\n      case DEMANGLE_COMPONENT_TYPEINFO_NAME:\n      case DEMANGLE_COMPONENT_TYPEINFO_FN:\n      case DEMANGLE_COMPONENT_THUNK:\n      case DEMANGLE_COMPONENT_VIRTUAL_THUNK:\n      case DEMANGLE_COMPONENT_COVARIANT_THUNK:\n      case DEMANGLE_COMPONENT_JAVA_CLASS:\n      case DEMANGLE_COMPONENT_GUARD:\n      case DEMANGLE_COMPONENT_TLS_INIT:\n      case DEMANGLE_COMPONENT_TLS_WRAPPER:\n      case DEMANGLE_COMPONENT_REFTEMP:\n      case DEMANGLE_COMPONENT_HIDDEN_ALIAS:\n      case DEMANGLE_COMPONENT_RESTRICT:\n      case DEMANGLE_COMPONENT_VOLATILE:\n      case DEMANGLE_COMPONENT_CONST:\n      case DEMANGLE_COMPONENT_RESTRICT_THIS:\n      case DEMANGLE_COMPONENT_VOLATILE_THIS:\n      case DEMANGLE_COMPONENT_CONST_THIS:\n      case DEMANGLE_COMPONENT_REFERENCE_THIS:\n      case DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS:\n      case DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL:\n      case DEMANGLE_COMPONENT_POINTER:\n      case DEMANGLE_COMPONENT_COMPLEX:\n      case DEMANGLE_COMPONENT_IMAGINARY:\n      case DEMANGLE_COMPONENT_VENDOR_TYPE:\n      case DEMANGLE_COMPONENT_FUNCTION_TYPE:\n      case DEMANGLE_COMPONENT_ARRAY_TYPE:\n      case DEMANGLE_COMPONENT_PTRMEM_TYPE:\n      case DEMANGLE_COMPONENT_VECTOR_TYPE:\n      case DEMANGLE_COMPONENT_ARGLIST:\n      case DEMANGLE_COMPONENT_TEMPLATE_ARGLIST:\n      case DEMANGLE_COMPONENT_INITIALIZER_LIST:\n      case DEMANGLE_COMPONENT_CAST:\n      case DEMANGLE_COMPONENT_CONVERSION:\n      case DEMANGLE_COMPONENT_NULLARY:\n      case DEMANGLE_COMPONENT_UNARY:\n      case DEMANGLE_COMPONENT_BINARY:\n      case DEMANGLE_COMPONENT_BINARY_ARGS:\n      case DEMANGLE_COMPONENT_TRINARY:\n      case DEMANGLE_COMPONENT_TRINARY_ARG1:\n      case DEMANGLE_COMPONENT_TRINARY_ARG2:\n      case DEMANGLE_COMPONENT_LITERAL:\n      case DEMANGLE_COMPONENT_LITERAL_NEG:\n      case DEMANGLE_COMPONENT_JAVA_RESOURCE:\n      case DEMANGLE_COMPONENT_COMPOUND_NAME:\n      case DEMANGLE_COMPONENT_DECLTYPE:\n      case DEMANGLE_COMPONENT_TRANSACTION_CLONE:\n      case DEMANGLE_COMPONENT_NONTRANSACTION_CLONE:\n      case DEMANGLE_COMPONENT_PACK_EXPANSION:\n      case DEMANGLE_COMPONENT_TAGGED_NAME:\n      case DEMANGLE_COMPONENT_TRANSACTION_SAFE:\n      case DEMANGLE_COMPONENT_CLONE:\n      case DEMANGLE_COMPONENT_NOEXCEPT:\n      case DEMANGLE_COMPONENT_THROW_SPEC:\n_L49:\n        dc_00 = (dc->u).s_fixed.length;\n        break;\n      case DEMANGLE_COMPONENT_TEMPLATE:\n        *num_templates = *num_templates + 1;\n        dc_00 = (dc->u).s_fixed.length;\n        break;\n      case DEMANGLE_COMPONENT_CTOR:\n      case DEMANGLE_COMPONENT_DTOR:\n      case DEMANGLE_COMPONENT_EXTENDED_OPERATOR:\n        dc = (dc->u).s_extended_operator.name;\n        goto LAB_001d45fb;\n      case DEMANGLE_COMPONENT_REFERENCE:\n      case DEMANGLE_COMPONENT_RVALUE_REFERENCE:\n        dc_00 = (dc->u).s_fixed.length;\n        if (dc_00->type == DEMANGLE_COMPONENT_TEMPLATE_PARAM) {\n          *num_scopes = *num_scopes + 1;\n          goto _L49;\n        }\n        break;\n      case DEMANGLE_COMPONENT_FIXED_TYPE:\n      case DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS:\n      case DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS:\n      case DEMANGLE_COMPONENT_LAMBDA:\n      case DEMANGLE_COMPONENT_DEFAULT_ARG:\n        dc = (dc->u).s_fixed.length;\n        goto LAB_001d45fb;\n      }" switch (parenthesized_expression "(dc->type)" ( (field_expression "dc->type" identifier -> field_identifier) )) (compound_statement "{\n      default:\n        goto _L25;\n      case DEMANGLE_COMPONENT_QUAL_NAME:\n      case DEMANGLE_COMPONENT_LOCAL_NAME:\n      case DEMANGLE_COMPONENT_TYPED_NAME:\n      case DEMANGLE_COMPONENT_VTABLE:\n      case DEMANGLE_COMPONENT_VTT:\n      case DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE:\n      case DEMANGLE_COMPONENT_TYPEINFO:\n      case DEMANGLE_COMPONENT_TYPEINFO_NAME:\n      case DEMANGLE_COMPONENT_TYPEINFO_FN:\n      case DEMANGLE_COMPONENT_THUNK:\n      case DEMANGLE_COMPONENT_VIRTUAL_THUNK:\n      case DEMANGLE_COMPONENT_COVARIANT_THUNK:\n      case DEMANGLE_COMPONENT_JAVA_CLASS:\n      case DEMANGLE_COMPONENT_GUARD:\n      case DEMANGLE_COMPONENT_TLS_INIT:\n      case DEMANGLE_COMPONENT_TLS_WRAPPER:\n      case DEMANGLE_COMPONENT_REFTEMP:\n      case DEMANGLE_COMPONENT_HIDDEN_ALIAS:\n      case DEMANGLE_COMPONENT_RESTRICT:\n      case DEMANGLE_COMPONENT_VOLATILE:\n      case DEMANGLE_COMPONENT_CONST:\n      case DEMANGLE_COMPONENT_RESTRICT_THIS:\n      case DEMANGLE_COMPONENT_VOLATILE_THIS:\n      case DEMANGLE_COMPONENT_CONST_THIS:\n      case DEMANGLE_COMPONENT_REFERENCE_THIS:\n      case DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS:\n      case DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL:\n      case DEMANGLE_COMPONENT_POINTER:\n      case DEMANGLE_COMPONENT_COMPLEX:\n      case DEMANGLE_COMPONENT_IMAGINARY:\n      case DEMANGLE_COMPONENT_VENDOR_TYPE:\n      case DEMANGLE_COMPONENT_FUNCTION_TYPE:\n      case DEMANGLE_COMPONENT_ARRAY_TYPE:\n      case DEMANGLE_COMPONENT_PTRMEM_TYPE:\n      case DEMANGLE_COMPONENT_VECTOR_TYPE:\n      case DEMANGLE_COMPONENT_ARGLIST:\n      case DEMANGLE_COMPONENT_TEMPLATE_ARGLIST:\n      case DEMANGLE_COMPONENT_INITIALIZER_LIST:\n      case DEMANGLE_COMPONENT_CAST:\n      case DEMANGLE_COMPONENT_CONVERSION:\n      case DEMANGLE_COMPONENT_NULLARY:\n      case DEMANGLE_COMPONENT_UNARY:\n      case DEMANGLE_COMPONENT_BINARY:\n      case DEMANGLE_COMPONENT_BINARY_ARGS:\n      case DEMANGLE_COMPONENT_TRINARY:\n      case DEMANGLE_COMPONENT_TRINARY_ARG1:\n      case DEMANGLE_COMPONENT_TRINARY_ARG2:\n      case DEMANGLE_COMPONENT_LITERAL:\n      case DEMANGLE_COMPONENT_LITERAL_NEG:\n      case DEMANGLE_COMPONENT_JAVA_RESOURCE:\n      case DEMANGLE_COMPONENT_COMPOUND_NAME:\n      case DEMANGLE_COMPONENT_DECLTYPE:\n      case DEMANGLE_COMPONENT_TRANSACTION_CLONE:\n      case DEMANGLE_COMPONENT_NONTRANSACTION_CLONE:\n      case DEMANGLE_COMPONENT_PACK_EXPANSION:\n      case DEMANGLE_COMPONENT_TAGGED_NAME:\n      case DEMANGLE_COMPONENT_TRANSACTION_SAFE:\n      case DEMANGLE_COMPONENT_CLONE:\n      case DEMANGLE_COMPONENT_NOEXCEPT:\n      case DEMANGLE_COMPONENT_THROW_SPEC:\n_L49:\n        dc_00 = (dc->u).s_fixed.length;\n        break;\n      case DEMANGLE_COMPONENT_TEMPLATE:\n        *num_templates = *num_templates + 1;\n        dc_00 = (dc->u).s_fixed.length;\n        break;\n      case DEMANGLE_COMPONENT_CTOR:\n      case DEMANGLE_COMPONENT_DTOR:\n      case DEMANGLE_COMPONENT_EXTENDED_OPERATOR:\n        dc = (dc->u).s_extended_operator.name;\n        goto LAB_001d45fb;\n      case DEMANGLE_COMPONENT_REFERENCE:\n      case DEMANGLE_COMPONENT_RVALUE_REFERENCE:\n        dc_00 = (dc->u).s_fixed.length;\n        if (dc_00->type == DEMANGLE_COMPONENT_TEMPLATE_PARAM) {\n          *num_scopes = *num_scopes + 1;\n          goto _L49;\n        }\n        break;\n      case DEMANGLE_COMPONENT_FIXED_TYPE:\n      case DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS:\n      case DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS:\n      case DEMANGLE_COMPONENT_LAMBDA:\n      case DEMANGLE_COMPONENT_DEFAULT_ARG:\n        dc = (dc->u).s_fixed.length;\n        goto LAB_001d45fb;\n      }" { (case_statement "default:\n        goto _L25;" default : (goto_statement "goto _L25;" goto statement_identifier ;)) (case_statement "case DEMANGLE_COMPONENT_QUAL_NAME:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_LOCAL_NAME:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_TYPED_NAME:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_VTABLE:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_VTT:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_TYPEINFO:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_TYPEINFO_NAME:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_TYPEINFO_FN:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_THUNK:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_VIRTUAL_THUNK:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_COVARIANT_THUNK:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_JAVA_CLASS:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_GUARD:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_TLS_INIT:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_TLS_WRAPPER:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_REFTEMP:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_HIDDEN_ALIAS:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_RESTRICT:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_VOLATILE:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_CONST:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_RESTRICT_THIS:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_VOLATILE_THIS:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_CONST_THIS:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_REFERENCE_THIS:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_POINTER:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_COMPLEX:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_IMAGINARY:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_VENDOR_TYPE:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_FUNCTION_TYPE:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_ARRAY_TYPE:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_PTRMEM_TYPE:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_VECTOR_TYPE:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_ARGLIST:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_TEMPLATE_ARGLIST:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_INITIALIZER_LIST:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_CAST:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_CONVERSION:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_NULLARY:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_UNARY:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_BINARY:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_BINARY_ARGS:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_TRINARY:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_TRINARY_ARG1:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_TRINARY_ARG2:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_LITERAL:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_LITERAL_NEG:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_JAVA_RESOURCE:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_COMPOUND_NAME:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_DECLTYPE:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_TRANSACTION_CLONE:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_NONTRANSACTION_CLONE:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_PACK_EXPANSION:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_TAGGED_NAME:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_TRANSACTION_SAFE:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_CLONE:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_NOEXCEPT:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_THROW_SPEC:\n_L49:\n        dc_00 = (dc->u).s_fixed.length;\n        break;" case identifier : (labeled_statement "_L49:\n        dc_00 = (dc->u).s_fixed.length;" statement_identifier : (expression_statement "dc_00 = (dc->u).s_fixed.length;" (assignment_expression "dc_00 = (dc->u).s_fixed.length" identifier = (field_expression "(dc->u).s_fixed.length" (field_expression "(dc->u).s_fixed" (parenthesized_expression "(dc->u)" ( (field_expression "dc->u" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;)) (break_statement "break;" break ;)) (case_statement "case DEMANGLE_COMPONENT_TEMPLATE:\n        *num_templates = *num_templates + 1;\n        dc_00 = (dc->u).s_fixed.length;\n        break;" case identifier : (expression_statement "*num_templates = *num_templates + 1;" (assignment_expression "*num_templates = *num_templates + 1" (pointer_expression "*num_templates" * identifier) = (binary_expression "*num_templates + 1" (pointer_expression "*num_templates" * identifier) + number_literal)) ;) (expression_statement "dc_00 = (dc->u).s_fixed.length;" (assignment_expression "dc_00 = (dc->u).s_fixed.length" identifier = (field_expression "(dc->u).s_fixed.length" (field_expression "(dc->u).s_fixed" (parenthesized_expression "(dc->u)" ( (field_expression "dc->u" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (break_statement "break;" break ;)) (case_statement "case DEMANGLE_COMPONENT_CTOR:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_DTOR:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_EXTENDED_OPERATOR:\n        dc = (dc->u).s_extended_operator.name;\n        goto LAB_001d45fb;" case identifier : (expression_statement "dc = (dc->u).s_extended_operator.name;" (assignment_expression "dc = (dc->u).s_extended_operator.name" identifier = (field_expression "(dc->u).s_extended_operator.name" (field_expression "(dc->u).s_extended_operator" (parenthesized_expression "(dc->u)" ( (field_expression "dc->u" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (goto_statement "goto LAB_001d45fb;" goto statement_identifier ;)) (case_statement "case DEMANGLE_COMPONENT_REFERENCE:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_RVALUE_REFERENCE:\n        dc_00 = (dc->u).s_fixed.length;\n        if (dc_00->type == DEMANGLE_COMPONENT_TEMPLATE_PARAM) {\n          *num_scopes = *num_scopes + 1;\n          goto _L49;\n        }\n        break;" case identifier : (expression_statement "dc_00 = (dc->u).s_fixed.length;" (assignment_expression "dc_00 = (dc->u).s_fixed.length" identifier = (field_expression "(dc->u).s_fixed.length" (field_expression "(dc->u).s_fixed" (parenthesized_expression "(dc->u)" ( (field_expression "dc->u" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (dc_00->type == DEMANGLE_COMPONENT_TEMPLATE_PARAM) {\n          *num_scopes = *num_scopes + 1;\n          goto _L49;\n        }" if (parenthesized_expression "(dc_00->type == DEMANGLE_COMPONENT_TEMPLATE_PARAM)" ( (binary_expression "dc_00->type == DEMANGLE_COMPONENT_TEMPLATE_PARAM" (field_expression "dc_00->type" identifier -> field_identifier) == identifier) )) (compound_statement "{\n          *num_scopes = *num_scopes + 1;\n          goto _L49;\n        }" { (expression_statement "*num_scopes = *num_scopes + 1;" (assignment_expression "*num_scopes = *num_scopes + 1" (pointer_expression "*num_scopes" * identifier) = (binary_expression "*num_scopes + 1" (pointer_expression "*num_scopes" * identifier) + number_literal)) ;) (goto_statement "goto _L49;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case DEMANGLE_COMPONENT_FIXED_TYPE:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_LAMBDA:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_DEFAULT_ARG:\n        dc = (dc->u).s_fixed.length;\n        goto LAB_001d45fb;" case identifier : (expression_statement "dc = (dc->u).s_fixed.length;" (assignment_expression "dc = (dc->u).s_fixed.length" identifier = (field_expression "(dc->u).s_fixed.length" (field_expression "(dc->u).s_fixed" (parenthesized_expression "(dc->u)" ( (field_expression "dc->u" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (goto_statement "goto LAB_001d45fb;" goto statement_identifier ;)) })) (expression_statement "d_count_templates_scopes(num_templates,num_scopes,dc_00);" (call_expression "d_count_templates_scopes(num_templates,num_scopes,dc_00)" identifier (argument_list "(num_templates,num_scopes,dc_00)" ( identifier , identifier , identifier ))) ;) (expression_statement "dc = (dc->u).s_extended_operator.name;" (assignment_expression "dc = (dc->u).s_extended_operator.name" identifier = (field_expression "(dc->u).s_extended_operator.name" (field_expression "(dc->u).s_extended_operator" (parenthesized_expression "(dc->u)" ( (field_expression "dc->u" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (labeled_statement "LAB_001d45fb:" statement_identifier : (expression_statement "" ;)) }) while (parenthesized_expression "(dc != (demangle_component *)0x0)" ( (binary_expression "dc != (demangle_component *)0x0" identifier != (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (labeled_statement "_L25:\n  return;" statement_identifier : (return_statement "return;" return ;)) })))
(translation_unit "void __regparm3 FUN_001d45c0(int *param_1,int *param_2,undefined4 *param_3)\n\n{\n  if (param_3 != (undefined4 *)0x0) {\n    do {\n      switch(*param_3) {\n      default:\n        goto LAB_001d45ff;\n      case 1:\n      case 2:\n      case 3:\n      case 9:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n      case 0xe:\n      case 0xf:\n      case 0x10:\n      case 0x11:\n      case 0x12:\n      case 0x13:\n      case 0x14:\n      case 0x15:\n      case 0x16:\n      case 0x17:\n      case 0x19:\n      case 0x1a:\n      case 0x1b:\n      case 0x1c:\n      case 0x1d:\n      case 0x1e:\n      case 0x1f:\n      case 0x20:\n      case 0x21:\n      case 0x22:\n      case 0x25:\n      case 0x26:\n      case 0x28:\n      case 0x29:\n      case 0x2a:\n      case 0x2b:\n      case 0x2d:\n      case 0x2e:\n      case 0x2f:\n      case 0x30:\n      case 0x33:\n      case 0x34:\n      case 0x35:\n      case 0x36:\n      case 0x37:\n      case 0x38:\n      case 0x39:\n      case 0x3a:\n      case 0x3b:\n      case 0x3c:\n      case 0x3d:\n      case 0x3e:\n      case 0x3f:\n      case 0x42:\n      case 0x48:\n      case 0x49:\n      case 0x4a:\n      case 0x4b:\n      case 0x4c:\n      case 0x4d:\n      case 0x4e:\n      case 0x4f:\ncode_r0x001d4624:\n        break;\n      case 4:\n        *param_1 = *param_1 + 1;\n        break;\n      case 7:\n      case 8:\n      case 0x32:\n        param_3 = (undefined4 *)param_3[3];\n        goto code_r0x001d45fb;\n      case 0x23:\n      case 0x24:\n        if (*(int *)param_3[2] == 5) {\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }\n        break;\n      case 0x2c:\n      case 0x43:\n      case 0x44:\n      case 0x45:\n      case 0x46:\n        param_3 = (undefined4 *)param_3[2];\n        goto code_r0x001d45fb;\n      }\n      FUN_001d45c0();\n      param_3 = (undefined4 *)param_3[3];\ncode_r0x001d45fb:\n    } while (param_3 != (undefined4 *)0x0);\n  }\nLAB_001d45ff:\n  return;\n}\n\n" (function_definition "void __regparm3 FUN_001d45c0(int *param_1,int *param_2,undefined4 *param_3)\n\n{\n  if (param_3 != (undefined4 *)0x0) {\n    do {\n      switch(*param_3) {\n      default:\n        goto LAB_001d45ff;\n      case 1:\n      case 2:\n      case 3:\n      case 9:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n      case 0xe:\n      case 0xf:\n      case 0x10:\n      case 0x11:\n      case 0x12:\n      case 0x13:\n      case 0x14:\n      case 0x15:\n      case 0x16:\n      case 0x17:\n      case 0x19:\n      case 0x1a:\n      case 0x1b:\n      case 0x1c:\n      case 0x1d:\n      case 0x1e:\n      case 0x1f:\n      case 0x20:\n      case 0x21:\n      case 0x22:\n      case 0x25:\n      case 0x26:\n      case 0x28:\n      case 0x29:\n      case 0x2a:\n      case 0x2b:\n      case 0x2d:\n      case 0x2e:\n      case 0x2f:\n      case 0x30:\n      case 0x33:\n      case 0x34:\n      case 0x35:\n      case 0x36:\n      case 0x37:\n      case 0x38:\n      case 0x39:\n      case 0x3a:\n      case 0x3b:\n      case 0x3c:\n      case 0x3d:\n      case 0x3e:\n      case 0x3f:\n      case 0x42:\n      case 0x48:\n      case 0x49:\n      case 0x4a:\n      case 0x4b:\n      case 0x4c:\n      case 0x4d:\n      case 0x4e:\n      case 0x4f:\ncode_r0x001d4624:\n        break;\n      case 4:\n        *param_1 = *param_1 + 1;\n        break;\n      case 7:\n      case 8:\n      case 0x32:\n        param_3 = (undefined4 *)param_3[3];\n        goto code_r0x001d45fb;\n      case 0x23:\n      case 0x24:\n        if (*(int *)param_3[2] == 5) {\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }\n        break;\n      case 0x2c:\n      case 0x43:\n      case 0x44:\n      case 0x45:\n      case 0x46:\n        param_3 = (undefined4 *)param_3[2];\n        goto code_r0x001d45fb;\n      }\n      FUN_001d45c0();\n      param_3 = (undefined4 *)param_3[3];\ncode_r0x001d45fb:\n    } while (param_3 != (undefined4 *)0x0);\n  }\nLAB_001d45ff:\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_001d45c0(int *param_1,int *param_2,undefined4 *param_3)" identifier (parameter_list "(int *param_1,int *param_2,undefined4 *param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  if (param_3 != (undefined4 *)0x0) {\n    do {\n      switch(*param_3) {\n      default:\n        goto LAB_001d45ff;\n      case 1:\n      case 2:\n      case 3:\n      case 9:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n      case 0xe:\n      case 0xf:\n      case 0x10:\n      case 0x11:\n      case 0x12:\n      case 0x13:\n      case 0x14:\n      case 0x15:\n      case 0x16:\n      case 0x17:\n      case 0x19:\n      case 0x1a:\n      case 0x1b:\n      case 0x1c:\n      case 0x1d:\n      case 0x1e:\n      case 0x1f:\n      case 0x20:\n      case 0x21:\n      case 0x22:\n      case 0x25:\n      case 0x26:\n      case 0x28:\n      case 0x29:\n      case 0x2a:\n      case 0x2b:\n      case 0x2d:\n      case 0x2e:\n      case 0x2f:\n      case 0x30:\n      case 0x33:\n      case 0x34:\n      case 0x35:\n      case 0x36:\n      case 0x37:\n      case 0x38:\n      case 0x39:\n      case 0x3a:\n      case 0x3b:\n      case 0x3c:\n      case 0x3d:\n      case 0x3e:\n      case 0x3f:\n      case 0x42:\n      case 0x48:\n      case 0x49:\n      case 0x4a:\n      case 0x4b:\n      case 0x4c:\n      case 0x4d:\n      case 0x4e:\n      case 0x4f:\ncode_r0x001d4624:\n        break;\n      case 4:\n        *param_1 = *param_1 + 1;\n        break;\n      case 7:\n      case 8:\n      case 0x32:\n        param_3 = (undefined4 *)param_3[3];\n        goto code_r0x001d45fb;\n      case 0x23:\n      case 0x24:\n        if (*(int *)param_3[2] == 5) {\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }\n        break;\n      case 0x2c:\n      case 0x43:\n      case 0x44:\n      case 0x45:\n      case 0x46:\n        param_3 = (undefined4 *)param_3[2];\n        goto code_r0x001d45fb;\n      }\n      FUN_001d45c0();\n      param_3 = (undefined4 *)param_3[3];\ncode_r0x001d45fb:\n    } while (param_3 != (undefined4 *)0x0);\n  }\nLAB_001d45ff:\n  return;\n}" { (if_statement "if (param_3 != (undefined4 *)0x0) {\n    do {\n      switch(*param_3) {\n      default:\n        goto LAB_001d45ff;\n      case 1:\n      case 2:\n      case 3:\n      case 9:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n      case 0xe:\n      case 0xf:\n      case 0x10:\n      case 0x11:\n      case 0x12:\n      case 0x13:\n      case 0x14:\n      case 0x15:\n      case 0x16:\n      case 0x17:\n      case 0x19:\n      case 0x1a:\n      case 0x1b:\n      case 0x1c:\n      case 0x1d:\n      case 0x1e:\n      case 0x1f:\n      case 0x20:\n      case 0x21:\n      case 0x22:\n      case 0x25:\n      case 0x26:\n      case 0x28:\n      case 0x29:\n      case 0x2a:\n      case 0x2b:\n      case 0x2d:\n      case 0x2e:\n      case 0x2f:\n      case 0x30:\n      case 0x33:\n      case 0x34:\n      case 0x35:\n      case 0x36:\n      case 0x37:\n      case 0x38:\n      case 0x39:\n      case 0x3a:\n      case 0x3b:\n      case 0x3c:\n      case 0x3d:\n      case 0x3e:\n      case 0x3f:\n      case 0x42:\n      case 0x48:\n      case 0x49:\n      case 0x4a:\n      case 0x4b:\n      case 0x4c:\n      case 0x4d:\n      case 0x4e:\n      case 0x4f:\ncode_r0x001d4624:\n        break;\n      case 4:\n        *param_1 = *param_1 + 1;\n        break;\n      case 7:\n      case 8:\n      case 0x32:\n        param_3 = (undefined4 *)param_3[3];\n        goto code_r0x001d45fb;\n      case 0x23:\n      case 0x24:\n        if (*(int *)param_3[2] == 5) {\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }\n        break;\n      case 0x2c:\n      case 0x43:\n      case 0x44:\n      case 0x45:\n      case 0x46:\n        param_3 = (undefined4 *)param_3[2];\n        goto code_r0x001d45fb;\n      }\n      FUN_001d45c0();\n      param_3 = (undefined4 *)param_3[3];\ncode_r0x001d45fb:\n    } while (param_3 != (undefined4 *)0x0);\n  }" if (parenthesized_expression "(param_3 != (undefined4 *)0x0)" ( (binary_expression "param_3 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    do {\n      switch(*param_3) {\n      default:\n        goto LAB_001d45ff;\n      case 1:\n      case 2:\n      case 3:\n      case 9:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n      case 0xe:\n      case 0xf:\n      case 0x10:\n      case 0x11:\n      case 0x12:\n      case 0x13:\n      case 0x14:\n      case 0x15:\n      case 0x16:\n      case 0x17:\n      case 0x19:\n      case 0x1a:\n      case 0x1b:\n      case 0x1c:\n      case 0x1d:\n      case 0x1e:\n      case 0x1f:\n      case 0x20:\n      case 0x21:\n      case 0x22:\n      case 0x25:\n      case 0x26:\n      case 0x28:\n      case 0x29:\n      case 0x2a:\n      case 0x2b:\n      case 0x2d:\n      case 0x2e:\n      case 0x2f:\n      case 0x30:\n      case 0x33:\n      case 0x34:\n      case 0x35:\n      case 0x36:\n      case 0x37:\n      case 0x38:\n      case 0x39:\n      case 0x3a:\n      case 0x3b:\n      case 0x3c:\n      case 0x3d:\n      case 0x3e:\n      case 0x3f:\n      case 0x42:\n      case 0x48:\n      case 0x49:\n      case 0x4a:\n      case 0x4b:\n      case 0x4c:\n      case 0x4d:\n      case 0x4e:\n      case 0x4f:\ncode_r0x001d4624:\n        break;\n      case 4:\n        *param_1 = *param_1 + 1;\n        break;\n      case 7:\n      case 8:\n      case 0x32:\n        param_3 = (undefined4 *)param_3[3];\n        goto code_r0x001d45fb;\n      case 0x23:\n      case 0x24:\n        if (*(int *)param_3[2] == 5) {\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }\n        break;\n      case 0x2c:\n      case 0x43:\n      case 0x44:\n      case 0x45:\n      case 0x46:\n        param_3 = (undefined4 *)param_3[2];\n        goto code_r0x001d45fb;\n      }\n      FUN_001d45c0();\n      param_3 = (undefined4 *)param_3[3];\ncode_r0x001d45fb:\n    } while (param_3 != (undefined4 *)0x0);\n  }" { (do_statement "do {\n      switch(*param_3) {\n      default:\n        goto LAB_001d45ff;\n      case 1:\n      case 2:\n      case 3:\n      case 9:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n      case 0xe:\n      case 0xf:\n      case 0x10:\n      case 0x11:\n      case 0x12:\n      case 0x13:\n      case 0x14:\n      case 0x15:\n      case 0x16:\n      case 0x17:\n      case 0x19:\n      case 0x1a:\n      case 0x1b:\n      case 0x1c:\n      case 0x1d:\n      case 0x1e:\n      case 0x1f:\n      case 0x20:\n      case 0x21:\n      case 0x22:\n      case 0x25:\n      case 0x26:\n      case 0x28:\n      case 0x29:\n      case 0x2a:\n      case 0x2b:\n      case 0x2d:\n      case 0x2e:\n      case 0x2f:\n      case 0x30:\n      case 0x33:\n      case 0x34:\n      case 0x35:\n      case 0x36:\n      case 0x37:\n      case 0x38:\n      case 0x39:\n      case 0x3a:\n      case 0x3b:\n      case 0x3c:\n      case 0x3d:\n      case 0x3e:\n      case 0x3f:\n      case 0x42:\n      case 0x48:\n      case 0x49:\n      case 0x4a:\n      case 0x4b:\n      case 0x4c:\n      case 0x4d:\n      case 0x4e:\n      case 0x4f:\ncode_r0x001d4624:\n        break;\n      case 4:\n        *param_1 = *param_1 + 1;\n        break;\n      case 7:\n      case 8:\n      case 0x32:\n        param_3 = (undefined4 *)param_3[3];\n        goto code_r0x001d45fb;\n      case 0x23:\n      case 0x24:\n        if (*(int *)param_3[2] == 5) {\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }\n        break;\n      case 0x2c:\n      case 0x43:\n      case 0x44:\n      case 0x45:\n      case 0x46:\n        param_3 = (undefined4 *)param_3[2];\n        goto code_r0x001d45fb;\n      }\n      FUN_001d45c0();\n      param_3 = (undefined4 *)param_3[3];\ncode_r0x001d45fb:\n    } while (param_3 != (undefined4 *)0x0);" do (compound_statement "{\n      switch(*param_3) {\n      default:\n        goto LAB_001d45ff;\n      case 1:\n      case 2:\n      case 3:\n      case 9:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n      case 0xe:\n      case 0xf:\n      case 0x10:\n      case 0x11:\n      case 0x12:\n      case 0x13:\n      case 0x14:\n      case 0x15:\n      case 0x16:\n      case 0x17:\n      case 0x19:\n      case 0x1a:\n      case 0x1b:\n      case 0x1c:\n      case 0x1d:\n      case 0x1e:\n      case 0x1f:\n      case 0x20:\n      case 0x21:\n      case 0x22:\n      case 0x25:\n      case 0x26:\n      case 0x28:\n      case 0x29:\n      case 0x2a:\n      case 0x2b:\n      case 0x2d:\n      case 0x2e:\n      case 0x2f:\n      case 0x30:\n      case 0x33:\n      case 0x34:\n      case 0x35:\n      case 0x36:\n      case 0x37:\n      case 0x38:\n      case 0x39:\n      case 0x3a:\n      case 0x3b:\n      case 0x3c:\n      case 0x3d:\n      case 0x3e:\n      case 0x3f:\n      case 0x42:\n      case 0x48:\n      case 0x49:\n      case 0x4a:\n      case 0x4b:\n      case 0x4c:\n      case 0x4d:\n      case 0x4e:\n      case 0x4f:\ncode_r0x001d4624:\n        break;\n      case 4:\n        *param_1 = *param_1 + 1;\n        break;\n      case 7:\n      case 8:\n      case 0x32:\n        param_3 = (undefined4 *)param_3[3];\n        goto code_r0x001d45fb;\n      case 0x23:\n      case 0x24:\n        if (*(int *)param_3[2] == 5) {\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }\n        break;\n      case 0x2c:\n      case 0x43:\n      case 0x44:\n      case 0x45:\n      case 0x46:\n        param_3 = (undefined4 *)param_3[2];\n        goto code_r0x001d45fb;\n      }\n      FUN_001d45c0();\n      param_3 = (undefined4 *)param_3[3];\ncode_r0x001d45fb:\n    }" { (switch_statement "switch(*param_3) {\n      default:\n        goto LAB_001d45ff;\n      case 1:\n      case 2:\n      case 3:\n      case 9:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n      case 0xe:\n      case 0xf:\n      case 0x10:\n      case 0x11:\n      case 0x12:\n      case 0x13:\n      case 0x14:\n      case 0x15:\n      case 0x16:\n      case 0x17:\n      case 0x19:\n      case 0x1a:\n      case 0x1b:\n      case 0x1c:\n      case 0x1d:\n      case 0x1e:\n      case 0x1f:\n      case 0x20:\n      case 0x21:\n      case 0x22:\n      case 0x25:\n      case 0x26:\n      case 0x28:\n      case 0x29:\n      case 0x2a:\n      case 0x2b:\n      case 0x2d:\n      case 0x2e:\n      case 0x2f:\n      case 0x30:\n      case 0x33:\n      case 0x34:\n      case 0x35:\n      case 0x36:\n      case 0x37:\n      case 0x38:\n      case 0x39:\n      case 0x3a:\n      case 0x3b:\n      case 0x3c:\n      case 0x3d:\n      case 0x3e:\n      case 0x3f:\n      case 0x42:\n      case 0x48:\n      case 0x49:\n      case 0x4a:\n      case 0x4b:\n      case 0x4c:\n      case 0x4d:\n      case 0x4e:\n      case 0x4f:\ncode_r0x001d4624:\n        break;\n      case 4:\n        *param_1 = *param_1 + 1;\n        break;\n      case 7:\n      case 8:\n      case 0x32:\n        param_3 = (undefined4 *)param_3[3];\n        goto code_r0x001d45fb;\n      case 0x23:\n      case 0x24:\n        if (*(int *)param_3[2] == 5) {\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }\n        break;\n      case 0x2c:\n      case 0x43:\n      case 0x44:\n      case 0x45:\n      case 0x46:\n        param_3 = (undefined4 *)param_3[2];\n        goto code_r0x001d45fb;\n      }" switch (parenthesized_expression "(*param_3)" ( (pointer_expression "*param_3" * identifier) )) (compound_statement "{\n      default:\n        goto LAB_001d45ff;\n      case 1:\n      case 2:\n      case 3:\n      case 9:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n      case 0xe:\n      case 0xf:\n      case 0x10:\n      case 0x11:\n      case 0x12:\n      case 0x13:\n      case 0x14:\n      case 0x15:\n      case 0x16:\n      case 0x17:\n      case 0x19:\n      case 0x1a:\n      case 0x1b:\n      case 0x1c:\n      case 0x1d:\n      case 0x1e:\n      case 0x1f:\n      case 0x20:\n      case 0x21:\n      case 0x22:\n      case 0x25:\n      case 0x26:\n      case 0x28:\n      case 0x29:\n      case 0x2a:\n      case 0x2b:\n      case 0x2d:\n      case 0x2e:\n      case 0x2f:\n      case 0x30:\n      case 0x33:\n      case 0x34:\n      case 0x35:\n      case 0x36:\n      case 0x37:\n      case 0x38:\n      case 0x39:\n      case 0x3a:\n      case 0x3b:\n      case 0x3c:\n      case 0x3d:\n      case 0x3e:\n      case 0x3f:\n      case 0x42:\n      case 0x48:\n      case 0x49:\n      case 0x4a:\n      case 0x4b:\n      case 0x4c:\n      case 0x4d:\n      case 0x4e:\n      case 0x4f:\ncode_r0x001d4624:\n        break;\n      case 4:\n        *param_1 = *param_1 + 1;\n        break;\n      case 7:\n      case 8:\n      case 0x32:\n        param_3 = (undefined4 *)param_3[3];\n        goto code_r0x001d45fb;\n      case 0x23:\n      case 0x24:\n        if (*(int *)param_3[2] == 5) {\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }\n        break;\n      case 0x2c:\n      case 0x43:\n      case 0x44:\n      case 0x45:\n      case 0x46:\n        param_3 = (undefined4 *)param_3[2];\n        goto code_r0x001d45fb;\n      }" { (case_statement "default:\n        goto LAB_001d45ff;" default : (goto_statement "goto LAB_001d45ff;" goto statement_identifier ;)) (case_statement "case 1:" case number_literal :) (case_statement "case 2:" case number_literal :) (case_statement "case 3:" case number_literal :) (case_statement "case 9:" case number_literal :) (case_statement "case 10:" case number_literal :) (case_statement "case 0xb:" case number_literal :) (case_statement "case 0xc:" case number_literal :) (case_statement "case 0xd:" case number_literal :) (case_statement "case 0xe:" case number_literal :) (case_statement "case 0xf:" case number_literal :) (case_statement "case 0x10:" case number_literal :) (case_statement "case 0x11:" case number_literal :) (case_statement "case 0x12:" case number_literal :) (case_statement "case 0x13:" case number_literal :) (case_statement "case 0x14:" case number_literal :) (case_statement "case 0x15:" case number_literal :) (case_statement "case 0x16:" case number_literal :) (case_statement "case 0x17:" case number_literal :) (case_statement "case 0x19:" case number_literal :) (case_statement "case 0x1a:" case number_literal :) (case_statement "case 0x1b:" case number_literal :) (case_statement "case 0x1c:" case number_literal :) (case_statement "case 0x1d:" case number_literal :) (case_statement "case 0x1e:" case number_literal :) (case_statement "case 0x1f:" case number_literal :) (case_statement "case 0x20:" case number_literal :) (case_statement "case 0x21:" case number_literal :) (case_statement "case 0x22:" case number_literal :) (case_statement "case 0x25:" case number_literal :) (case_statement "case 0x26:" case number_literal :) (case_statement "case 0x28:" case number_literal :) (case_statement "case 0x29:" case number_literal :) (case_statement "case 0x2a:" case number_literal :) (case_statement "case 0x2b:" case number_literal :) (case_statement "case 0x2d:" case number_literal :) (case_statement "case 0x2e:" case number_literal :) (case_statement "case 0x2f:" case number_literal :) (case_statement "case 0x30:" case number_literal :) (case_statement "case 0x33:" case number_literal :) (case_statement "case 0x34:" case number_literal :) (case_statement "case 0x35:" case number_literal :) (case_statement "case 0x36:" case number_literal :) (case_statement "case 0x37:" case number_literal :) (case_statement "case 0x38:" case number_literal :) (case_statement "case 0x39:" case number_literal :) (case_statement "case 0x3a:" case number_literal :) (case_statement "case 0x3b:" case number_literal :) (case_statement "case 0x3c:" case number_literal :) (case_statement "case 0x3d:" case number_literal :) (case_statement "case 0x3e:" case number_literal :) (case_statement "case 0x3f:" case number_literal :) (case_statement "case 0x42:" case number_literal :) (case_statement "case 0x48:" case number_literal :) (case_statement "case 0x49:" case number_literal :) (case_statement "case 0x4a:" case number_literal :) (case_statement "case 0x4b:" case number_literal :) (case_statement "case 0x4c:" case number_literal :) (case_statement "case 0x4d:" case number_literal :) (case_statement "case 0x4e:" case number_literal :) (case_statement "case 0x4f:\ncode_r0x001d4624:\n        break;" case number_literal : (labeled_statement "code_r0x001d4624:\n        break;" statement_identifier : (break_statement "break;" break ;))) (case_statement "case 4:\n        *param_1 = *param_1 + 1;\n        break;" case number_literal : (expression_statement "*param_1 = *param_1 + 1;" (assignment_expression "*param_1 = *param_1 + 1" (pointer_expression "*param_1" * identifier) = (binary_expression "*param_1 + 1" (pointer_expression "*param_1" * identifier) + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 7:" case number_literal :) (case_statement "case 8:" case number_literal :) (case_statement "case 0x32:\n        param_3 = (undefined4 *)param_3[3];\n        goto code_r0x001d45fb;" case number_literal : (expression_statement "param_3 = (undefined4 *)param_3[3];" (assignment_expression "param_3 = (undefined4 *)param_3[3]" identifier = (cast_expression "(undefined4 *)param_3[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) ;) (goto_statement "goto code_r0x001d45fb;" goto statement_identifier ;)) (case_statement "case 0x23:" case number_literal :) (case_statement "case 0x24:\n        if (*(int *)param_3[2] == 5) {\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }\n        break;" case number_literal : (if_statement "if (*(int *)param_3[2] == 5) {\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }" if (parenthesized_expression "(*(int *)param_3[2] == 5)" ( (binary_expression "*(int *)param_3[2] == 5" (pointer_expression "*(int *)param_3[2]" * (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) == number_literal) )) (compound_statement "{\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }" { (expression_statement "*param_2 = *param_2 + 1;" (assignment_expression "*param_2 = *param_2 + 1" (pointer_expression "*param_2" * identifier) = (binary_expression "*param_2 + 1" (pointer_expression "*param_2" * identifier) + number_literal)) ;) (goto_statement "goto code_r0x001d4624;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 0x2c:" case number_literal :) (case_statement "case 0x43:" case number_literal :) (case_statement "case 0x44:" case number_literal :) (case_statement "case 0x45:" case number_literal :) (case_statement "case 0x46:\n        param_3 = (undefined4 *)param_3[2];\n        goto code_r0x001d45fb;" case number_literal : (expression_statement "param_3 = (undefined4 *)param_3[2];" (assignment_expression "param_3 = (undefined4 *)param_3[2]" identifier = (cast_expression "(undefined4 *)param_3[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) ;) (goto_statement "goto code_r0x001d45fb;" goto statement_identifier ;)) })) (expression_statement "FUN_001d45c0();" (call_expression "FUN_001d45c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "param_3 = (undefined4 *)param_3[3];" (assignment_expression "param_3 = (undefined4 *)param_3[3]" identifier = (cast_expression "(undefined4 *)param_3[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) ;) (labeled_statement "code_r0x001d45fb:" statement_identifier : (expression_statement "" ;)) }) while (parenthesized_expression "(param_3 != (undefined4 *)0x0)" ( (binary_expression "param_3 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (labeled_statement "LAB_001d45ff:\n  return;" statement_identifier : (return_statement "return;" return ;)) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (switch_statement switch (parenthesized_expression ( (pointer_expression * IDENT) )) (compound_statement { (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (labeled_statement statement_identifier : (break_statement break ;))) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (goto_statement goto statement_identifier ;) })) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;)) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (labeled_statement statement_identifier : (expression_statement ;)) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (labeled_statement statement_identifier : (return_statement return ;)) })))
(function_definition "void __regparm3 FUN_001d45c0(int *param_1,int *param_2,undefined4 *param_3)\n\n{\n  if (param_3 != (undefined4 *)0x0) {\n    do {\n      switch(*param_3) {\n      default:\n        goto LAB_001d45ff;\n      case 1:\n      case 2:\n      case 3:\n      case 9:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n      case 0xe:\n      case 0xf:\n      case 0x10:\n      case 0x11:\n      case 0x12:\n      case 0x13:\n      case 0x14:\n      case 0x15:\n      case 0x16:\n      case 0x17:\n      case 0x19:\n      case 0x1a:\n      case 0x1b:\n      case 0x1c:\n      case 0x1d:\n      case 0x1e:\n      case 0x1f:\n      case 0x20:\n      case 0x21:\n      case 0x22:\n      case 0x25:\n      case 0x26:\n      case 0x28:\n      case 0x29:\n      case 0x2a:\n      case 0x2b:\n      case 0x2d:\n      case 0x2e:\n      case 0x2f:\n      case 0x30:\n      case 0x33:\n      case 0x34:\n      case 0x35:\n      case 0x36:\n      case 0x37:\n      case 0x38:\n      case 0x39:\n      case 0x3a:\n      case 0x3b:\n      case 0x3c:\n      case 0x3d:\n      case 0x3e:\n      case 0x3f:\n      case 0x42:\n      case 0x48:\n      case 0x49:\n      case 0x4a:\n      case 0x4b:\n      case 0x4c:\n      case 0x4d:\n      case 0x4e:\n      case 0x4f:\ncode_r0x001d4624:\n        break;\n      case 4:\n        *param_1 = *param_1 + 1;\n        break;\n      case 7:\n      case 8:\n      case 0x32:\n        param_3 = (undefined4 *)param_3[3];\n        goto code_r0x001d45fb;\n      case 0x23:\n      case 0x24:\n        if (*(int *)param_3[2] == 5) {\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }\n        break;\n      case 0x2c:\n      case 0x43:\n      case 0x44:\n      case 0x45:\n      case 0x46:\n        param_3 = (undefined4 *)param_3[2];\n        goto code_r0x001d45fb;\n      }\n      FUN_001d45c0();\n      param_3 = (undefined4 *)param_3[3];\ncode_r0x001d45fb:\n    } while (param_3 != (undefined4 *)0x0);\n  }\nLAB_001d45ff:\n  return;\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_001d45c0(int *param_1,int *param_2,undefined4 *param_3)" (identifier "FUN_001d45c0") (parameter_list "(int *param_1,int *param_2,undefined4 *param_3)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 *param_3" (type_identifier "undefined4") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  if (param_3 != (undefined4 *)0x0) {\n    do {\n      switch(*param_3) {\n      default:\n        goto LAB_001d45ff;\n      case 1:\n      case 2:\n      case 3:\n      case 9:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n      case 0xe:\n      case 0xf:\n      case 0x10:\n      case 0x11:\n      case 0x12:\n      case 0x13:\n      case 0x14:\n      case 0x15:\n      case 0x16:\n      case 0x17:\n      case 0x19:\n      case 0x1a:\n      case 0x1b:\n      case 0x1c:\n      case 0x1d:\n      case 0x1e:\n      case 0x1f:\n      case 0x20:\n      case 0x21:\n      case 0x22:\n      case 0x25:\n      case 0x26:\n      case 0x28:\n      case 0x29:\n      case 0x2a:\n      case 0x2b:\n      case 0x2d:\n      case 0x2e:\n      case 0x2f:\n      case 0x30:\n      case 0x33:\n      case 0x34:\n      case 0x35:\n      case 0x36:\n      case 0x37:\n      case 0x38:\n      case 0x39:\n      case 0x3a:\n      case 0x3b:\n      case 0x3c:\n      case 0x3d:\n      case 0x3e:\n      case 0x3f:\n      case 0x42:\n      case 0x48:\n      case 0x49:\n      case 0x4a:\n      case 0x4b:\n      case 0x4c:\n      case 0x4d:\n      case 0x4e:\n      case 0x4f:\ncode_r0x001d4624:\n        break;\n      case 4:\n        *param_1 = *param_1 + 1;\n        break;\n      case 7:\n      case 8:\n      case 0x32:\n        param_3 = (undefined4 *)param_3[3];\n        goto code_r0x001d45fb;\n      case 0x23:\n      case 0x24:\n        if (*(int *)param_3[2] == 5) {\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }\n        break;\n      case 0x2c:\n      case 0x43:\n      case 0x44:\n      case 0x45:\n      case 0x46:\n        param_3 = (undefined4 *)param_3[2];\n        goto code_r0x001d45fb;\n      }\n      FUN_001d45c0();\n      param_3 = (undefined4 *)param_3[3];\ncode_r0x001d45fb:\n    } while (param_3 != (undefined4 *)0x0);\n  }\nLAB_001d45ff:\n  return;\n}" ({ "{") (if_statement "if (param_3 != (undefined4 *)0x0) {\n    do {\n      switch(*param_3) {\n      default:\n        goto LAB_001d45ff;\n      case 1:\n      case 2:\n      case 3:\n      case 9:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n      case 0xe:\n      case 0xf:\n      case 0x10:\n      case 0x11:\n      case 0x12:\n      case 0x13:\n      case 0x14:\n      case 0x15:\n      case 0x16:\n      case 0x17:\n      case 0x19:\n      case 0x1a:\n      case 0x1b:\n      case 0x1c:\n      case 0x1d:\n      case 0x1e:\n      case 0x1f:\n      case 0x20:\n      case 0x21:\n      case 0x22:\n      case 0x25:\n      case 0x26:\n      case 0x28:\n      case 0x29:\n      case 0x2a:\n      case 0x2b:\n      case 0x2d:\n      case 0x2e:\n      case 0x2f:\n      case 0x30:\n      case 0x33:\n      case 0x34:\n      case 0x35:\n      case 0x36:\n      case 0x37:\n      case 0x38:\n      case 0x39:\n      case 0x3a:\n      case 0x3b:\n      case 0x3c:\n      case 0x3d:\n      case 0x3e:\n      case 0x3f:\n      case 0x42:\n      case 0x48:\n      case 0x49:\n      case 0x4a:\n      case 0x4b:\n      case 0x4c:\n      case 0x4d:\n      case 0x4e:\n      case 0x4f:\ncode_r0x001d4624:\n        break;\n      case 4:\n        *param_1 = *param_1 + 1;\n        break;\n      case 7:\n      case 8:\n      case 0x32:\n        param_3 = (undefined4 *)param_3[3];\n        goto code_r0x001d45fb;\n      case 0x23:\n      case 0x24:\n        if (*(int *)param_3[2] == 5) {\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }\n        break;\n      case 0x2c:\n      case 0x43:\n      case 0x44:\n      case 0x45:\n      case 0x46:\n        param_3 = (undefined4 *)param_3[2];\n        goto code_r0x001d45fb;\n      }\n      FUN_001d45c0();\n      param_3 = (undefined4 *)param_3[3];\ncode_r0x001d45fb:\n    } while (param_3 != (undefined4 *)0x0);\n  }" (if "if") (parenthesized_expression "(param_3 != (undefined4 *)0x0)" (( "(") (binary_expression "param_3 != (undefined4 *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    do {\n      switch(*param_3) {\n      default:\n        goto LAB_001d45ff;\n      case 1:\n      case 2:\n      case 3:\n      case 9:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n      case 0xe:\n      case 0xf:\n      case 0x10:\n      case 0x11:\n      case 0x12:\n      case 0x13:\n      case 0x14:\n      case 0x15:\n      case 0x16:\n      case 0x17:\n      case 0x19:\n      case 0x1a:\n      case 0x1b:\n      case 0x1c:\n      case 0x1d:\n      case 0x1e:\n      case 0x1f:\n      case 0x20:\n      case 0x21:\n      case 0x22:\n      case 0x25:\n      case 0x26:\n      case 0x28:\n      case 0x29:\n      case 0x2a:\n      case 0x2b:\n      case 0x2d:\n      case 0x2e:\n      case 0x2f:\n      case 0x30:\n      case 0x33:\n      case 0x34:\n      case 0x35:\n      case 0x36:\n      case 0x37:\n      case 0x38:\n      case 0x39:\n      case 0x3a:\n      case 0x3b:\n      case 0x3c:\n      case 0x3d:\n      case 0x3e:\n      case 0x3f:\n      case 0x42:\n      case 0x48:\n      case 0x49:\n      case 0x4a:\n      case 0x4b:\n      case 0x4c:\n      case 0x4d:\n      case 0x4e:\n      case 0x4f:\ncode_r0x001d4624:\n        break;\n      case 4:\n        *param_1 = *param_1 + 1;\n        break;\n      case 7:\n      case 8:\n      case 0x32:\n        param_3 = (undefined4 *)param_3[3];\n        goto code_r0x001d45fb;\n      case 0x23:\n      case 0x24:\n        if (*(int *)param_3[2] == 5) {\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }\n        break;\n      case 0x2c:\n      case 0x43:\n      case 0x44:\n      case 0x45:\n      case 0x46:\n        param_3 = (undefined4 *)param_3[2];\n        goto code_r0x001d45fb;\n      }\n      FUN_001d45c0();\n      param_3 = (undefined4 *)param_3[3];\ncode_r0x001d45fb:\n    } while (param_3 != (undefined4 *)0x0);\n  }" ({ "{") (do_statement "do {\n      switch(*param_3) {\n      default:\n        goto LAB_001d45ff;\n      case 1:\n      case 2:\n      case 3:\n      case 9:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n      case 0xe:\n      case 0xf:\n      case 0x10:\n      case 0x11:\n      case 0x12:\n      case 0x13:\n      case 0x14:\n      case 0x15:\n      case 0x16:\n      case 0x17:\n      case 0x19:\n      case 0x1a:\n      case 0x1b:\n      case 0x1c:\n      case 0x1d:\n      case 0x1e:\n      case 0x1f:\n      case 0x20:\n      case 0x21:\n      case 0x22:\n      case 0x25:\n      case 0x26:\n      case 0x28:\n      case 0x29:\n      case 0x2a:\n      case 0x2b:\n      case 0x2d:\n      case 0x2e:\n      case 0x2f:\n      case 0x30:\n      case 0x33:\n      case 0x34:\n      case 0x35:\n      case 0x36:\n      case 0x37:\n      case 0x38:\n      case 0x39:\n      case 0x3a:\n      case 0x3b:\n      case 0x3c:\n      case 0x3d:\n      case 0x3e:\n      case 0x3f:\n      case 0x42:\n      case 0x48:\n      case 0x49:\n      case 0x4a:\n      case 0x4b:\n      case 0x4c:\n      case 0x4d:\n      case 0x4e:\n      case 0x4f:\ncode_r0x001d4624:\n        break;\n      case 4:\n        *param_1 = *param_1 + 1;\n        break;\n      case 7:\n      case 8:\n      case 0x32:\n        param_3 = (undefined4 *)param_3[3];\n        goto code_r0x001d45fb;\n      case 0x23:\n      case 0x24:\n        if (*(int *)param_3[2] == 5) {\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }\n        break;\n      case 0x2c:\n      case 0x43:\n      case 0x44:\n      case 0x45:\n      case 0x46:\n        param_3 = (undefined4 *)param_3[2];\n        goto code_r0x001d45fb;\n      }\n      FUN_001d45c0();\n      param_3 = (undefined4 *)param_3[3];\ncode_r0x001d45fb:\n    } while (param_3 != (undefined4 *)0x0);" (do "do") (compound_statement "{\n      switch(*param_3) {\n      default:\n        goto LAB_001d45ff;\n      case 1:\n      case 2:\n      case 3:\n      case 9:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n      case 0xe:\n      case 0xf:\n      case 0x10:\n      case 0x11:\n      case 0x12:\n      case 0x13:\n      case 0x14:\n      case 0x15:\n      case 0x16:\n      case 0x17:\n      case 0x19:\n      case 0x1a:\n      case 0x1b:\n      case 0x1c:\n      case 0x1d:\n      case 0x1e:\n      case 0x1f:\n      case 0x20:\n      case 0x21:\n      case 0x22:\n      case 0x25:\n      case 0x26:\n      case 0x28:\n      case 0x29:\n      case 0x2a:\n      case 0x2b:\n      case 0x2d:\n      case 0x2e:\n      case 0x2f:\n      case 0x30:\n      case 0x33:\n      case 0x34:\n      case 0x35:\n      case 0x36:\n      case 0x37:\n      case 0x38:\n      case 0x39:\n      case 0x3a:\n      case 0x3b:\n      case 0x3c:\n      case 0x3d:\n      case 0x3e:\n      case 0x3f:\n      case 0x42:\n      case 0x48:\n      case 0x49:\n      case 0x4a:\n      case 0x4b:\n      case 0x4c:\n      case 0x4d:\n      case 0x4e:\n      case 0x4f:\ncode_r0x001d4624:\n        break;\n      case 4:\n        *param_1 = *param_1 + 1;\n        break;\n      case 7:\n      case 8:\n      case 0x32:\n        param_3 = (undefined4 *)param_3[3];\n        goto code_r0x001d45fb;\n      case 0x23:\n      case 0x24:\n        if (*(int *)param_3[2] == 5) {\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }\n        break;\n      case 0x2c:\n      case 0x43:\n      case 0x44:\n      case 0x45:\n      case 0x46:\n        param_3 = (undefined4 *)param_3[2];\n        goto code_r0x001d45fb;\n      }\n      FUN_001d45c0();\n      param_3 = (undefined4 *)param_3[3];\ncode_r0x001d45fb:\n    }" ({ "{") (switch_statement "switch(*param_3) {\n      default:\n        goto LAB_001d45ff;\n      case 1:\n      case 2:\n      case 3:\n      case 9:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n      case 0xe:\n      case 0xf:\n      case 0x10:\n      case 0x11:\n      case 0x12:\n      case 0x13:\n      case 0x14:\n      case 0x15:\n      case 0x16:\n      case 0x17:\n      case 0x19:\n      case 0x1a:\n      case 0x1b:\n      case 0x1c:\n      case 0x1d:\n      case 0x1e:\n      case 0x1f:\n      case 0x20:\n      case 0x21:\n      case 0x22:\n      case 0x25:\n      case 0x26:\n      case 0x28:\n      case 0x29:\n      case 0x2a:\n      case 0x2b:\n      case 0x2d:\n      case 0x2e:\n      case 0x2f:\n      case 0x30:\n      case 0x33:\n      case 0x34:\n      case 0x35:\n      case 0x36:\n      case 0x37:\n      case 0x38:\n      case 0x39:\n      case 0x3a:\n      case 0x3b:\n      case 0x3c:\n      case 0x3d:\n      case 0x3e:\n      case 0x3f:\n      case 0x42:\n      case 0x48:\n      case 0x49:\n      case 0x4a:\n      case 0x4b:\n      case 0x4c:\n      case 0x4d:\n      case 0x4e:\n      case 0x4f:\ncode_r0x001d4624:\n        break;\n      case 4:\n        *param_1 = *param_1 + 1;\n        break;\n      case 7:\n      case 8:\n      case 0x32:\n        param_3 = (undefined4 *)param_3[3];\n        goto code_r0x001d45fb;\n      case 0x23:\n      case 0x24:\n        if (*(int *)param_3[2] == 5) {\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }\n        break;\n      case 0x2c:\n      case 0x43:\n      case 0x44:\n      case 0x45:\n      case 0x46:\n        param_3 = (undefined4 *)param_3[2];\n        goto code_r0x001d45fb;\n      }" (switch "switch") (parenthesized_expression "(*param_3)" (( "(") (pointer_expression "*param_3" (* "*") (identifier "param_3")) () ")")) (compound_statement "{\n      default:\n        goto LAB_001d45ff;\n      case 1:\n      case 2:\n      case 3:\n      case 9:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n      case 0xe:\n      case 0xf:\n      case 0x10:\n      case 0x11:\n      case 0x12:\n      case 0x13:\n      case 0x14:\n      case 0x15:\n      case 0x16:\n      case 0x17:\n      case 0x19:\n      case 0x1a:\n      case 0x1b:\n      case 0x1c:\n      case 0x1d:\n      case 0x1e:\n      case 0x1f:\n      case 0x20:\n      case 0x21:\n      case 0x22:\n      case 0x25:\n      case 0x26:\n      case 0x28:\n      case 0x29:\n      case 0x2a:\n      case 0x2b:\n      case 0x2d:\n      case 0x2e:\n      case 0x2f:\n      case 0x30:\n      case 0x33:\n      case 0x34:\n      case 0x35:\n      case 0x36:\n      case 0x37:\n      case 0x38:\n      case 0x39:\n      case 0x3a:\n      case 0x3b:\n      case 0x3c:\n      case 0x3d:\n      case 0x3e:\n      case 0x3f:\n      case 0x42:\n      case 0x48:\n      case 0x49:\n      case 0x4a:\n      case 0x4b:\n      case 0x4c:\n      case 0x4d:\n      case 0x4e:\n      case 0x4f:\ncode_r0x001d4624:\n        break;\n      case 4:\n        *param_1 = *param_1 + 1;\n        break;\n      case 7:\n      case 8:\n      case 0x32:\n        param_3 = (undefined4 *)param_3[3];\n        goto code_r0x001d45fb;\n      case 0x23:\n      case 0x24:\n        if (*(int *)param_3[2] == 5) {\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }\n        break;\n      case 0x2c:\n      case 0x43:\n      case 0x44:\n      case 0x45:\n      case 0x46:\n        param_3 = (undefined4 *)param_3[2];\n        goto code_r0x001d45fb;\n      }" ({ "{") (case_statement "default:\n        goto LAB_001d45ff;" (default "default") (: ":") (goto_statement "goto LAB_001d45ff;" (goto "goto") (statement_identifier "LAB_001d45ff") (; ";"))) (case_statement "case 1:" (case "case") (number_literal "1") (: ":")) (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 3:" (case "case") (number_literal "3") (: ":")) (case_statement "case 9:" (case "case") (number_literal "9") (: ":")) (case_statement "case 10:" (case "case") (number_literal "10") (: ":")) (case_statement "case 0xb:" (case "case") (number_literal "0xb") (: ":")) (case_statement "case 0xc:" (case "case") (number_literal "0xc") (: ":")) (case_statement "case 0xd:" (case "case") (number_literal "0xd") (: ":")) (case_statement "case 0xe:" (case "case") (number_literal "0xe") (: ":")) (case_statement "case 0xf:" (case "case") (number_literal "0xf") (: ":")) (case_statement "case 0x10:" (case "case") (number_literal "0x10") (: ":")) (case_statement "case 0x11:" (case "case") (number_literal "0x11") (: ":")) (case_statement "case 0x12:" (case "case") (number_literal "0x12") (: ":")) (case_statement "case 0x13:" (case "case") (number_literal "0x13") (: ":")) (case_statement "case 0x14:" (case "case") (number_literal "0x14") (: ":")) (case_statement "case 0x15:" (case "case") (number_literal "0x15") (: ":")) (case_statement "case 0x16:" (case "case") (number_literal "0x16") (: ":")) (case_statement "case 0x17:" (case "case") (number_literal "0x17") (: ":")) (case_statement "case 0x19:" (case "case") (number_literal "0x19") (: ":")) (case_statement "case 0x1a:" (case "case") (number_literal "0x1a") (: ":")) (case_statement "case 0x1b:" (case "case") (number_literal "0x1b") (: ":")) (case_statement "case 0x1c:" (case "case") (number_literal "0x1c") (: ":")) (case_statement "case 0x1d:" (case "case") (number_literal "0x1d") (: ":")) (case_statement "case 0x1e:" (case "case") (number_literal "0x1e") (: ":")) (case_statement "case 0x1f:" (case "case") (number_literal "0x1f") (: ":")) (case_statement "case 0x20:" (case "case") (number_literal "0x20") (: ":")) (case_statement "case 0x21:" (case "case") (number_literal "0x21") (: ":")) (case_statement "case 0x22:" (case "case") (number_literal "0x22") (: ":")) (case_statement "case 0x25:" (case "case") (number_literal "0x25") (: ":")) (case_statement "case 0x26:" (case "case") (number_literal "0x26") (: ":")) (case_statement "case 0x28:" (case "case") (number_literal "0x28") (: ":")) (case_statement "case 0x29:" (case "case") (number_literal "0x29") (: ":")) (case_statement "case 0x2a:" (case "case") (number_literal "0x2a") (: ":")) (case_statement "case 0x2b:" (case "case") (number_literal "0x2b") (: ":")) (case_statement "case 0x2d:" (case "case") (number_literal "0x2d") (: ":")) (case_statement "case 0x2e:" (case "case") (number_literal "0x2e") (: ":")) (case_statement "case 0x2f:" (case "case") (number_literal "0x2f") (: ":")) (case_statement "case 0x30:" (case "case") (number_literal "0x30") (: ":")) (case_statement "case 0x33:" (case "case") (number_literal "0x33") (: ":")) (case_statement "case 0x34:" (case "case") (number_literal "0x34") (: ":")) (case_statement "case 0x35:" (case "case") (number_literal "0x35") (: ":")) (case_statement "case 0x36:" (case "case") (number_literal "0x36") (: ":")) (case_statement "case 0x37:" (case "case") (number_literal "0x37") (: ":")) (case_statement "case 0x38:" (case "case") (number_literal "0x38") (: ":")) (case_statement "case 0x39:" (case "case") (number_literal "0x39") (: ":")) (case_statement "case 0x3a:" (case "case") (number_literal "0x3a") (: ":")) (case_statement "case 0x3b:" (case "case") (number_literal "0x3b") (: ":")) (case_statement "case 0x3c:" (case "case") (number_literal "0x3c") (: ":")) (case_statement "case 0x3d:" (case "case") (number_literal "0x3d") (: ":")) (case_statement "case 0x3e:" (case "case") (number_literal "0x3e") (: ":")) (case_statement "case 0x3f:" (case "case") (number_literal "0x3f") (: ":")) (case_statement "case 0x42:" (case "case") (number_literal "0x42") (: ":")) (case_statement "case 0x48:" (case "case") (number_literal "0x48") (: ":")) (case_statement "case 0x49:" (case "case") (number_literal "0x49") (: ":")) (case_statement "case 0x4a:" (case "case") (number_literal "0x4a") (: ":")) (case_statement "case 0x4b:" (case "case") (number_literal "0x4b") (: ":")) (case_statement "case 0x4c:" (case "case") (number_literal "0x4c") (: ":")) (case_statement "case 0x4d:" (case "case") (number_literal "0x4d") (: ":")) (case_statement "case 0x4e:" (case "case") (number_literal "0x4e") (: ":")) (case_statement "case 0x4f:\ncode_r0x001d4624:\n        break;" (case "case") (number_literal "0x4f") (: ":") (labeled_statement "code_r0x001d4624:\n        break;" (statement_identifier "code_r0x001d4624") (: ":") (break_statement "break;" (break "break") (; ";")))) (case_statement "case 4:\n        *param_1 = *param_1 + 1;\n        break;" (case "case") (number_literal "4") (: ":") (expression_statement "*param_1 = *param_1 + 1;" (assignment_expression "*param_1 = *param_1 + 1" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (binary_expression "*param_1 + 1" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "1"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 7:" (case "case") (number_literal "7") (: ":")) (case_statement "case 8:" (case "case") (number_literal "8") (: ":")) (case_statement "case 0x32:\n        param_3 = (undefined4 *)param_3[3];\n        goto code_r0x001d45fb;" (case "case") (number_literal "0x32") (: ":") (expression_statement "param_3 = (undefined4 *)param_3[3];" (assignment_expression "param_3 = (undefined4 *)param_3[3]" (identifier "param_3") (= "=") (cast_expression "(undefined4 *)param_3[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")))) (; ";")) (goto_statement "goto code_r0x001d45fb;" (goto "goto") (statement_identifier "code_r0x001d45fb") (; ";"))) (case_statement "case 0x23:" (case "case") (number_literal "0x23") (: ":")) (case_statement "case 0x24:\n        if (*(int *)param_3[2] == 5) {\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }\n        break;" (case "case") (number_literal "0x24") (: ":") (if_statement "if (*(int *)param_3[2] == 5) {\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }" (if "if") (parenthesized_expression "(*(int *)param_3[2] == 5)" (( "(") (binary_expression "*(int *)param_3[2] == 5" (pointer_expression "*(int *)param_3[2]" (* "*") (cast_expression "(int *)param_3[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")))) (== "==") (number_literal "5")) () ")")) (compound_statement "{\n          *param_2 = *param_2 + 1;\n          goto code_r0x001d4624;\n        }" ({ "{") (expression_statement "*param_2 = *param_2 + 1;" (assignment_expression "*param_2 = *param_2 + 1" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (binary_expression "*param_2 + 1" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto code_r0x001d4624;" (goto "goto") (statement_identifier "code_r0x001d4624") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x2c:" (case "case") (number_literal "0x2c") (: ":")) (case_statement "case 0x43:" (case "case") (number_literal "0x43") (: ":")) (case_statement "case 0x44:" (case "case") (number_literal "0x44") (: ":")) (case_statement "case 0x45:" (case "case") (number_literal "0x45") (: ":")) (case_statement "case 0x46:\n        param_3 = (undefined4 *)param_3[2];\n        goto code_r0x001d45fb;" (case "case") (number_literal "0x46") (: ":") (expression_statement "param_3 = (undefined4 *)param_3[2];" (assignment_expression "param_3 = (undefined4 *)param_3[2]" (identifier "param_3") (= "=") (cast_expression "(undefined4 *)param_3[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")))) (; ";")) (goto_statement "goto code_r0x001d45fb;" (goto "goto") (statement_identifier "code_r0x001d45fb") (; ";"))) (} "}"))) (expression_statement "FUN_001d45c0();" (call_expression "FUN_001d45c0()" (identifier "FUN_001d45c0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "param_3 = (undefined4 *)param_3[3];" (assignment_expression "param_3 = (undefined4 *)param_3[3]" (identifier "param_3") (= "=") (cast_expression "(undefined4 *)param_3[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")))) (; ";")) (labeled_statement "code_r0x001d45fb:" (statement_identifier "code_r0x001d45fb") (: ":") (expression_statement "" (; ""))) (} "}")) (while "while") (parenthesized_expression "(param_3 != (undefined4 *)0x0)" (( "(") (binary_expression "param_3 != (undefined4 *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_001d45ff:\n  return;" (statement_identifier "LAB_001d45ff") (: ":") (return_statement "return;" (return "return") (; ";"))) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

void __regparm3 function_1(int *num_templates,int *num_scopes,type_1 *var_1)

{
  type_1 *dc_00;
  
  if (var_1 != (type_1 *)0x0) {
    do {
      switch(var_1->type) {
      default:
        goto _L25;
      case DEMANGLE_COMPONENT_QUAL_NAME:
      case DEMANGLE_COMPONENT_LOCAL_NAME:
      case DEMANGLE_COMPONENT_TYPED_NAME:
      case DEMANGLE_COMPONENT_VTABLE:
      case DEMANGLE_COMPONENT_VTT:
      case DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE:
      case DEMANGLE_COMPONENT_TYPEINFO:
      case DEMANGLE_COMPONENT_TYPEINFO_NAME:
      case DEMANGLE_COMPONENT_TYPEINFO_FN:
      case DEMANGLE_COMPONENT_THUNK:
      case DEMANGLE_COMPONENT_VIRTUAL_THUNK:
      case DEMANGLE_COMPONENT_COVARIANT_THUNK:
      case DEMANGLE_COMPONENT_JAVA_CLASS:
      case DEMANGLE_COMPONENT_GUARD:
      case DEMANGLE_COMPONENT_TLS_INIT:
      case DEMANGLE_COMPONENT_TLS_WRAPPER:
      case DEMANGLE_COMPONENT_REFTEMP:
      case DEMANGLE_COMPONENT_HIDDEN_ALIAS:
      case DEMANGLE_COMPONENT_RESTRICT:
      case DEMANGLE_COMPONENT_VOLATILE:
      case DEMANGLE_COMPONENT_CONST:
      case DEMANGLE_COMPONENT_RESTRICT_THIS:
      case DEMANGLE_COMPONENT_VOLATILE_THIS:
      case DEMANGLE_COMPONENT_CONST_THIS:
      case DEMANGLE_COMPONENT_REFERENCE_THIS:
      case DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS:
      case DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL:
      case DEMANGLE_COMPONENT_POINTER:
      case DEMANGLE_COMPONENT_COMPLEX:
      case DEMANGLE_COMPONENT_IMAGINARY:
      case DEMANGLE_COMPONENT_VENDOR_TYPE:
      case DEMANGLE_COMPONENT_FUNCTION_TYPE:
      case DEMANGLE_COMPONENT_ARRAY_TYPE:
      case DEMANGLE_COMPONENT_PTRMEM_TYPE:
      case DEMANGLE_COMPONENT_VECTOR_TYPE:
      case DEMANGLE_COMPONENT_ARGLIST:
      case DEMANGLE_COMPONENT_TEMPLATE_ARGLIST:
      case DEMANGLE_COMPONENT_INITIALIZER_LIST:
      case DEMANGLE_COMPONENT_CAST:
      case DEMANGLE_COMPONENT_CONVERSION:
      case DEMANGLE_COMPONENT_NULLARY:
      case DEMANGLE_COMPONENT_UNARY:
      case DEMANGLE_COMPONENT_BINARY:
      case DEMANGLE_COMPONENT_BINARY_ARGS:
      case DEMANGLE_COMPONENT_TRINARY:
      case DEMANGLE_COMPONENT_TRINARY_ARG1:
      case DEMANGLE_COMPONENT_TRINARY_ARG2:
      case DEMANGLE_COMPONENT_LITERAL:
      case DEMANGLE_COMPONENT_LITERAL_NEG:
      case DEMANGLE_COMPONENT_JAVA_RESOURCE:
      case DEMANGLE_COMPONENT_COMPOUND_NAME:
      case DEMANGLE_COMPONENT_DECLTYPE:
      case DEMANGLE_COMPONENT_TRANSACTION_CLONE:
      case DEMANGLE_COMPONENT_NONTRANSACTION_CLONE:
      case DEMANGLE_COMPONENT_PACK_EXPANSION:
      case DEMANGLE_COMPONENT_TAGGED_NAME:
      case DEMANGLE_COMPONENT_TRANSACTION_SAFE:
      case DEMANGLE_COMPONENT_CLONE:
      case DEMANGLE_COMPONENT_NOEXCEPT:
      case DEMANGLE_COMPONENT_THROW_SPEC:
_L49:
        dc_00 = (var_1->u).s_fixed.length;
        break;
      case DEMANGLE_COMPONENT_TEMPLATE:
        *num_templates = *num_templates + 1;
        dc_00 = (var_1->u).s_fixed.length;
        break;
      case DEMANGLE_COMPONENT_CTOR:
      case DEMANGLE_COMPONENT_DTOR:
      case DEMANGLE_COMPONENT_EXTENDED_OPERATOR:
        var_1 = (var_1->u).s_extended_operator.name;
        goto LAB_001d45fb;
      case DEMANGLE_COMPONENT_REFERENCE:
      case DEMANGLE_COMPONENT_RVALUE_REFERENCE:
        dc_00 = (var_1->u).s_fixed.length;
        if (dc_00->type == var_2) {
          *num_scopes = *num_scopes + 1;
          goto _L49;
        }
        break;
      case DEMANGLE_COMPONENT_FIXED_TYPE:
      case DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS:
      case DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS:
      case DEMANGLE_COMPONENT_LAMBDA:
      case DEMANGLE_COMPONENT_DEFAULT_ARG:
        var_1 = (var_1->u).s_fixed.length;
        goto LAB_001d45fb;
      }
      function_1(num_templates,num_scopes,dc_00);
      var_1 = (var_1->u).s_extended_operator.name;
LAB_001d45fb:
    } while (var_1 != (type_1 *)0x0);
  }
_L25:
  return;
}


(translation_unit (function_definition type: (primitive_type) (ERROR (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (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 (do_statement body: (compound_statement (switch_statement condition: (parenthesized_expression (pointer_expression argument: (identifier))) body: (compound_statement (case_statement (goto_statement label: (statement_identifier))) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (labeled_statement label: (statement_identifier) (break_statement))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal)) (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) (goto_statement label: (statement_identifier)))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (goto_statement label: (statement_identifier))))) (expression_statement (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: (subscript_expression argument: (identifier) index: (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (MISSING ";")))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) (labeled_statement label: (statement_identifier) (return_statement)))))

/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

void __regparm3 MASKED(int *param_1,int *param_2,undefined4 *param_3)

{
  if (param_3 != (undefined4 *)0x0) {
    do {
      switch(*param_3) {
      default:
        goto LAB_001d45ff;
      case 1:
      case 2:
      case 3:
      case 9:
      case 10:
      case 0xb:
      case 0xc:
      case 0xd:
      case 0xe:
      case 0xf:
      case 0x10:
      case 0x11:
      case 0x12:
      case 0x13:
      case 0x14:
      case 0x15:
      case 0x16:
      case 0x17:
      case 0x19:
      case 0x1a:
      case 0x1b:
      case 0x1c:
      case 0x1d:
      case 0x1e:
      case 0x1f:
      case 0x20:
      case 0x21:
      case 0x22:
      case 0x25:
      case 0x26:
      case 0x28:
      case 0x29:
      case 0x2a:
      case 0x2b:
      case 0x2d:
      case 0x2e:
      case 0x2f:
      case 0x30:
      case 0x33:
      case 0x34:
      case 0x35:
      case 0x36:
      case 0x37:
      case 0x38:
      case 0x39:
      case 0x3a:
      case 0x3b:
      case 0x3c:
      case 0x3d:
      case 0x3e:
      case 0x3f:
      case 0x42:
      case 0x48:
      case 0x49:
      case 0x4a:
      case 0x4b:
      case 0x4c:
      case 0x4d:
      case 0x4e:
      case 0x4f:
code_r0x001d4624:
        break;
      case 4:
        *param_1 = *param_1 + 1;
        break;
      case 7:
      case 8:
      case 0x32:
        param_3 = (undefined4 *)param_3[3];
        goto code_r0x001d45fb;
      case 0x23:
      case 0x24:
        if (*(int *)param_3[2] == 5) {
          *param_2 = *param_2 + 1;
          goto code_r0x001d4624;
        }
        break;
      case 0x2c:
      case 0x43:
      case 0x44:
      case 0x45:
      case 0x46:
        param_3 = (undefined4 *)param_3[2];
        goto code_r0x001d45fb;
      }
      MASKED();
      param_3 = (undefined4 *)param_3[3];
code_r0x001d45fb:
    } while (param_3 != (undefined4 *)0x0);
  }
LAB_001d45ff:
  return;
}

