
char * dlang_attributes(string *decl,char *mangled)

{
  for (; *mangled == 'N'; mangled = mangled + 2) {
    switch(mangled[1]) {
    case 'a':
      string_append(decl,"pure ");
      break;
    case 'b':
      string_append(decl,"nothrow ");
      break;
    case 'c':
      string_append(decl,"ref ");
      break;
    case 'd':
      string_append(decl,"@property ");
      break;
    case 'e':
      string_append(decl,"@trusted ");
      break;
    case 'f':
      string_append(decl,"@safe ");
      break;
    case 'g':
    case 'h':
    case 'k':
      goto switchD_0033400f_caseD_67;
    case 'i':
      string_append(decl,"@nogc ");
      break;
    case 'j':
      string_append(decl,"return ");
      break;
    case 'l':
      string_append(decl,"scope ");
      break;
    default:
      mangled = (char *)0x0;
      goto switchD_0033400f_caseD_67;
    }
  }
switchD_0033400f_caseD_67:
  return mangled;
}



char * FUN_00333fe0(undefined8 param_1,char *param_2)

{
  for (; *param_2 == 'N'; param_2 = param_2 + 2) {
    switch(param_2[1]) {
    case 'a':
      FUN_00333e10(param_1,"pure ");
      break;
    case 'b':
      FUN_00333e10(param_1,"nothrow ");
      break;
    case 'c':
      FUN_00333e10(param_1,&DAT_003fe417);
      break;
    case 'd':
      FUN_00333e10(param_1,"@property ");
      break;
    case 'e':
      FUN_00333e10(param_1,"@trusted ");
      break;
    case 'f':
      FUN_00333e10(param_1,"@safe ");
      break;
    case 'g':
    case 'h':
    case 'k':
      goto switchD_0033400f_caseD_67;
    case 'i':
      FUN_00333e10(param_1,"@nogc ");
      break;
    case 'j':
      FUN_00333e10(param_1,"return ");
      break;
    case 'l':
      FUN_00333e10(param_1,"scope ");
      break;
    default:
      param_2 = (char *)0x0;
      goto switchD_0033400f_caseD_67;
    }
  }
switchD_0033400f_caseD_67:
  return param_2;
}


PUSH R12
LEA R12,[0x3fe614]
PUSH RBP
MOV RBP,RDI
PUSH RBX
MOV RBX,RSI
CMP byte ptr [RBX],0x4e
MOV RAX,RBX
JNZ 0x0033401a
MOVZX ECX,byte ptr [RBX + 0x1]
LEA EDX,[RCX + -0x61]
CMP DL,0xb
JA 0x00334018
MOVZX EDX,DL
MOVSXD RDX,dword ptr [R12 + RDX*0x4]
ADD RDX,R12
JMP RDX
XOR EAX,EAX
POP RBX
POP RBP
POP R12
RET
LEA RSI,[0x3fe43f]
MOV RDI,RBP
CALL 0x00333e10
NOP
ADD RBX,0x2
JMP 0x00333ff1
LEA RSI,[0x3fe438]
MOV RDI,RBP
CALL 0x00333e10
JMP 0x00334030
LEA RSI,[0x3fe431]
MOV RDI,RBP
CALL 0x00333e10
JMP 0x00334030
LEA RSI,[0x3fe427]
MOV RDI,RBP
CALL 0x00333e10
JMP 0x00334030
LEA RSI,[0x3fe41c]
MOV RDI,RBP
CALL 0x00333e10
JMP 0x00334030
LEA RSI,[0x3fe417]
MOV RDI,RBP
CALL 0x00333e10
JMP 0x00334030
LEA RSI,[0x3fe40e]
MOV RDI,RBP
CALL 0x00333e10
JMP 0x00334030
LEA RSI,[0x3fe408]
MOV RDI,RBP
CALL 0x00333e10
JMP 0x00334030
LEA RSI,[0x3fe447]
MOV RDI,RBP
CALL 0x00333e10
JMP 0x00334030
(translation_unit "char * FUN_00333fe0(undefined8 param_1,char *param_2)\n\n{\n  for (; *param_2 == 'N'; param_2 = param_2 + 2) {\n    switch(param_2[1]) {\n    case 'a':\n      FUN_00333e10(param_1,"pure ");\n      break;\n    case 'b':\n      FUN_00333e10(param_1,"nothrow ");\n      break;\n    case 'c':\n      FUN_00333e10(param_1,&DAT_003fe417);\n      break;\n    case 'd':\n      FUN_00333e10(param_1,"@property ");\n      break;\n    case 'e':\n      FUN_00333e10(param_1,"@trusted ");\n      break;\n    case 'f':\n      FUN_00333e10(param_1,"@safe ");\n      break;\n    case 'g':\n    case 'h':\n    case 'k':\n      goto switchD_0033400f_caseD_67;\n    case 'i':\n      FUN_00333e10(param_1,"@nogc ");\n      break;\n    case 'j':\n      FUN_00333e10(param_1,"return ");\n      break;\n    case 'l':\n      FUN_00333e10(param_1,"scope ");\n      break;\n    default:\n      param_2 = (char *)0x0;\n      goto switchD_0033400f_caseD_67;\n    }\n  }\nswitchD_0033400f_caseD_67:\n  return param_2;\n}\n\n" (function_definition "char * FUN_00333fe0(undefined8 param_1,char *param_2)\n\n{\n  for (; *param_2 == 'N'; param_2 = param_2 + 2) {\n    switch(param_2[1]) {\n    case 'a':\n      FUN_00333e10(param_1,"pure ");\n      break;\n    case 'b':\n      FUN_00333e10(param_1,"nothrow ");\n      break;\n    case 'c':\n      FUN_00333e10(param_1,&DAT_003fe417);\n      break;\n    case 'd':\n      FUN_00333e10(param_1,"@property ");\n      break;\n    case 'e':\n      FUN_00333e10(param_1,"@trusted ");\n      break;\n    case 'f':\n      FUN_00333e10(param_1,"@safe ");\n      break;\n    case 'g':\n    case 'h':\n    case 'k':\n      goto switchD_0033400f_caseD_67;\n    case 'i':\n      FUN_00333e10(param_1,"@nogc ");\n      break;\n    case 'j':\n      FUN_00333e10(param_1,"return ");\n      break;\n    case 'l':\n      FUN_00333e10(param_1,"scope ");\n      break;\n    default:\n      param_2 = (char *)0x0;\n      goto switchD_0033400f_caseD_67;\n    }\n  }\nswitchD_0033400f_caseD_67:\n  return param_2;\n}" primitive_type (pointer_declarator "* FUN_00333fe0(undefined8 param_1,char *param_2)" * (function_declarator "FUN_00333fe0(undefined8 param_1,char *param_2)" identifier (parameter_list "(undefined8 param_1,char *param_2)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) )))) (compound_statement "{\n  for (; *param_2 == 'N'; param_2 = param_2 + 2) {\n    switch(param_2[1]) {\n    case 'a':\n      FUN_00333e10(param_1,"pure ");\n      break;\n    case 'b':\n      FUN_00333e10(param_1,"nothrow ");\n      break;\n    case 'c':\n      FUN_00333e10(param_1,&DAT_003fe417);\n      break;\n    case 'd':\n      FUN_00333e10(param_1,"@property ");\n      break;\n    case 'e':\n      FUN_00333e10(param_1,"@trusted ");\n      break;\n    case 'f':\n      FUN_00333e10(param_1,"@safe ");\n      break;\n    case 'g':\n    case 'h':\n    case 'k':\n      goto switchD_0033400f_caseD_67;\n    case 'i':\n      FUN_00333e10(param_1,"@nogc ");\n      break;\n    case 'j':\n      FUN_00333e10(param_1,"return ");\n      break;\n    case 'l':\n      FUN_00333e10(param_1,"scope ");\n      break;\n    default:\n      param_2 = (char *)0x0;\n      goto switchD_0033400f_caseD_67;\n    }\n  }\nswitchD_0033400f_caseD_67:\n  return param_2;\n}" { (for_statement "for (; *param_2 == 'N'; param_2 = param_2 + 2) {\n    switch(param_2[1]) {\n    case 'a':\n      FUN_00333e10(param_1,"pure ");\n      break;\n    case 'b':\n      FUN_00333e10(param_1,"nothrow ");\n      break;\n    case 'c':\n      FUN_00333e10(param_1,&DAT_003fe417);\n      break;\n    case 'd':\n      FUN_00333e10(param_1,"@property ");\n      break;\n    case 'e':\n      FUN_00333e10(param_1,"@trusted ");\n      break;\n    case 'f':\n      FUN_00333e10(param_1,"@safe ");\n      break;\n    case 'g':\n    case 'h':\n    case 'k':\n      goto switchD_0033400f_caseD_67;\n    case 'i':\n      FUN_00333e10(param_1,"@nogc ");\n      break;\n    case 'j':\n      FUN_00333e10(param_1,"return ");\n      break;\n    case 'l':\n      FUN_00333e10(param_1,"scope ");\n      break;\n    default:\n      param_2 = (char *)0x0;\n      goto switchD_0033400f_caseD_67;\n    }\n  }" for ( ; (binary_expression "*param_2 == 'N'" (pointer_expression "*param_2" * identifier) == (char_literal "'N'" ' character ')) ; (assignment_expression "param_2 = param_2 + 2" identifier = (binary_expression "param_2 + 2" identifier + number_literal)) ) (compound_statement "{\n    switch(param_2[1]) {\n    case 'a':\n      FUN_00333e10(param_1,"pure ");\n      break;\n    case 'b':\n      FUN_00333e10(param_1,"nothrow ");\n      break;\n    case 'c':\n      FUN_00333e10(param_1,&DAT_003fe417);\n      break;\n    case 'd':\n      FUN_00333e10(param_1,"@property ");\n      break;\n    case 'e':\n      FUN_00333e10(param_1,"@trusted ");\n      break;\n    case 'f':\n      FUN_00333e10(param_1,"@safe ");\n      break;\n    case 'g':\n    case 'h':\n    case 'k':\n      goto switchD_0033400f_caseD_67;\n    case 'i':\n      FUN_00333e10(param_1,"@nogc ");\n      break;\n    case 'j':\n      FUN_00333e10(param_1,"return ");\n      break;\n    case 'l':\n      FUN_00333e10(param_1,"scope ");\n      break;\n    default:\n      param_2 = (char *)0x0;\n      goto switchD_0033400f_caseD_67;\n    }\n  }" { (switch_statement "switch(param_2[1]) {\n    case 'a':\n      FUN_00333e10(param_1,"pure ");\n      break;\n    case 'b':\n      FUN_00333e10(param_1,"nothrow ");\n      break;\n    case 'c':\n      FUN_00333e10(param_1,&DAT_003fe417);\n      break;\n    case 'd':\n      FUN_00333e10(param_1,"@property ");\n      break;\n    case 'e':\n      FUN_00333e10(param_1,"@trusted ");\n      break;\n    case 'f':\n      FUN_00333e10(param_1,"@safe ");\n      break;\n    case 'g':\n    case 'h':\n    case 'k':\n      goto switchD_0033400f_caseD_67;\n    case 'i':\n      FUN_00333e10(param_1,"@nogc ");\n      break;\n    case 'j':\n      FUN_00333e10(param_1,"return ");\n      break;\n    case 'l':\n      FUN_00333e10(param_1,"scope ");\n      break;\n    default:\n      param_2 = (char *)0x0;\n      goto switchD_0033400f_caseD_67;\n    }" switch (parenthesized_expression "(param_2[1])" ( (subscript_expression "param_2[1]" identifier [ number_literal ]) )) (compound_statement "{\n    case 'a':\n      FUN_00333e10(param_1,"pure ");\n      break;\n    case 'b':\n      FUN_00333e10(param_1,"nothrow ");\n      break;\n    case 'c':\n      FUN_00333e10(param_1,&DAT_003fe417);\n      break;\n    case 'd':\n      FUN_00333e10(param_1,"@property ");\n      break;\n    case 'e':\n      FUN_00333e10(param_1,"@trusted ");\n      break;\n    case 'f':\n      FUN_00333e10(param_1,"@safe ");\n      break;\n    case 'g':\n    case 'h':\n    case 'k':\n      goto switchD_0033400f_caseD_67;\n    case 'i':\n      FUN_00333e10(param_1,"@nogc ");\n      break;\n    case 'j':\n      FUN_00333e10(param_1,"return ");\n      break;\n    case 'l':\n      FUN_00333e10(param_1,"scope ");\n      break;\n    default:\n      param_2 = (char *)0x0;\n      goto switchD_0033400f_caseD_67;\n    }" { (case_statement "case 'a':\n      FUN_00333e10(param_1,"pure ");\n      break;" case (char_literal "'a'" ' character ') : (expression_statement "FUN_00333e10(param_1,"pure ");" (call_expression "FUN_00333e10(param_1,"pure ")" identifier (argument_list "(param_1,"pure ")" ( identifier , (string_literal ""pure "" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 'b':\n      FUN_00333e10(param_1,"nothrow ");\n      break;" case (char_literal "'b'" ' character ') : (expression_statement "FUN_00333e10(param_1,"nothrow ");" (call_expression "FUN_00333e10(param_1,"nothrow ")" identifier (argument_list "(param_1,"nothrow ")" ( identifier , (string_literal ""nothrow "" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 'c':\n      FUN_00333e10(param_1,&DAT_003fe417);\n      break;" case (char_literal "'c'" ' character ') : (expression_statement "FUN_00333e10(param_1,&DAT_003fe417);" (call_expression "FUN_00333e10(param_1,&DAT_003fe417)" identifier (argument_list "(param_1,&DAT_003fe417)" ( identifier , (pointer_expression "&DAT_003fe417" & identifier) ))) ;) (break_statement "break;" break ;)) (case_statement "case 'd':\n      FUN_00333e10(param_1,"@property ");\n      break;" case (char_literal "'d'" ' character ') : (expression_statement "FUN_00333e10(param_1,"@property ");" (call_expression "FUN_00333e10(param_1,"@property ")" identifier (argument_list "(param_1,"@property ")" ( identifier , (string_literal ""@property "" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 'e':\n      FUN_00333e10(param_1,"@trusted ");\n      break;" case (char_literal "'e'" ' character ') : (expression_statement "FUN_00333e10(param_1,"@trusted ");" (call_expression "FUN_00333e10(param_1,"@trusted ")" identifier (argument_list "(param_1,"@trusted ")" ( identifier , (string_literal ""@trusted "" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 'f':\n      FUN_00333e10(param_1,"@safe ");\n      break;" case (char_literal "'f'" ' character ') : (expression_statement "FUN_00333e10(param_1,"@safe ");" (call_expression "FUN_00333e10(param_1,"@safe ")" identifier (argument_list "(param_1,"@safe ")" ( identifier , (string_literal ""@safe "" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 'g':" case (char_literal "'g'" ' character ') :) (case_statement "case 'h':" case (char_literal "'h'" ' character ') :) (case_statement "case 'k':\n      goto switchD_0033400f_caseD_67;" case (char_literal "'k'" ' character ') : (goto_statement "goto switchD_0033400f_caseD_67;" goto statement_identifier ;)) (case_statement "case 'i':\n      FUN_00333e10(param_1,"@nogc ");\n      break;" case (char_literal "'i'" ' character ') : (expression_statement "FUN_00333e10(param_1,"@nogc ");" (call_expression "FUN_00333e10(param_1,"@nogc ")" identifier (argument_list "(param_1,"@nogc ")" ( identifier , (string_literal ""@nogc "" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 'j':\n      FUN_00333e10(param_1,"return ");\n      break;" case (char_literal "'j'" ' character ') : (expression_statement "FUN_00333e10(param_1,"return ");" (call_expression "FUN_00333e10(param_1,"return ")" identifier (argument_list "(param_1,"return ")" ( identifier , (string_literal ""return "" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 'l':\n      FUN_00333e10(param_1,"scope ");\n      break;" case (char_literal "'l'" ' character ') : (expression_statement "FUN_00333e10(param_1,"scope ");" (call_expression "FUN_00333e10(param_1,"scope ")" identifier (argument_list "(param_1,"scope ")" ( identifier , (string_literal ""scope "" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "default:\n      param_2 = (char *)0x0;\n      goto switchD_0033400f_caseD_67;" default : (expression_statement "param_2 = (char *)0x0;" (assignment_expression "param_2 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto switchD_0033400f_caseD_67;" goto statement_identifier ;)) })) })) (labeled_statement "switchD_0033400f_caseD_67:\n  return param_2;" statement_identifier : (return_statement "return param_2;" return identifier ;)) })))
(translation_unit "char * dlang_attributes(string *decl,char *mangled)\n\n{\n  for (; *mangled == 'N'; mangled = mangled + 2) {\n    switch(mangled[1]) {\n    case 'a':\n      string_append(decl,"pure ");\n      break;\n    case 'b':\n      string_append(decl,"nothrow ");\n      break;\n    case 'c':\n      string_append(decl,"ref ");\n      break;\n    case 'd':\n      string_append(decl,"@property ");\n      break;\n    case 'e':\n      string_append(decl,"@trusted ");\n      break;\n    case 'f':\n      string_append(decl,"@safe ");\n      break;\n    case 'g':\n    case 'h':\n    case 'k':\n      goto switchD_0033400f_caseD_67;\n    case 'i':\n      string_append(decl,"@nogc ");\n      break;\n    case 'j':\n      string_append(decl,"return ");\n      break;\n    case 'l':\n      string_append(decl,"scope ");\n      break;\n    default:\n      mangled = (char *)0x0;\n      goto switchD_0033400f_caseD_67;\n    }\n  }\nswitchD_0033400f_caseD_67:\n  return mangled;\n}\n\n" (function_definition "char * dlang_attributes(string *decl,char *mangled)\n\n{\n  for (; *mangled == 'N'; mangled = mangled + 2) {\n    switch(mangled[1]) {\n    case 'a':\n      string_append(decl,"pure ");\n      break;\n    case 'b':\n      string_append(decl,"nothrow ");\n      break;\n    case 'c':\n      string_append(decl,"ref ");\n      break;\n    case 'd':\n      string_append(decl,"@property ");\n      break;\n    case 'e':\n      string_append(decl,"@trusted ");\n      break;\n    case 'f':\n      string_append(decl,"@safe ");\n      break;\n    case 'g':\n    case 'h':\n    case 'k':\n      goto switchD_0033400f_caseD_67;\n    case 'i':\n      string_append(decl,"@nogc ");\n      break;\n    case 'j':\n      string_append(decl,"return ");\n      break;\n    case 'l':\n      string_append(decl,"scope ");\n      break;\n    default:\n      mangled = (char *)0x0;\n      goto switchD_0033400f_caseD_67;\n    }\n  }\nswitchD_0033400f_caseD_67:\n  return mangled;\n}" primitive_type (pointer_declarator "* dlang_attributes(string *decl,char *mangled)" * (function_declarator "dlang_attributes(string *decl,char *mangled)" identifier (parameter_list "(string *decl,char *mangled)" ( (parameter_declaration "string *decl" type_identifier (pointer_declarator "*decl" * identifier)) , (parameter_declaration "char *mangled" primitive_type (pointer_declarator "*mangled" * identifier)) )))) (compound_statement "{\n  for (; *mangled == 'N'; mangled = mangled + 2) {\n    switch(mangled[1]) {\n    case 'a':\n      string_append(decl,"pure ");\n      break;\n    case 'b':\n      string_append(decl,"nothrow ");\n      break;\n    case 'c':\n      string_append(decl,"ref ");\n      break;\n    case 'd':\n      string_append(decl,"@property ");\n      break;\n    case 'e':\n      string_append(decl,"@trusted ");\n      break;\n    case 'f':\n      string_append(decl,"@safe ");\n      break;\n    case 'g':\n    case 'h':\n    case 'k':\n      goto switchD_0033400f_caseD_67;\n    case 'i':\n      string_append(decl,"@nogc ");\n      break;\n    case 'j':\n      string_append(decl,"return ");\n      break;\n    case 'l':\n      string_append(decl,"scope ");\n      break;\n    default:\n      mangled = (char *)0x0;\n      goto switchD_0033400f_caseD_67;\n    }\n  }\nswitchD_0033400f_caseD_67:\n  return mangled;\n}" { (for_statement "for (; *mangled == 'N'; mangled = mangled + 2) {\n    switch(mangled[1]) {\n    case 'a':\n      string_append(decl,"pure ");\n      break;\n    case 'b':\n      string_append(decl,"nothrow ");\n      break;\n    case 'c':\n      string_append(decl,"ref ");\n      break;\n    case 'd':\n      string_append(decl,"@property ");\n      break;\n    case 'e':\n      string_append(decl,"@trusted ");\n      break;\n    case 'f':\n      string_append(decl,"@safe ");\n      break;\n    case 'g':\n    case 'h':\n    case 'k':\n      goto switchD_0033400f_caseD_67;\n    case 'i':\n      string_append(decl,"@nogc ");\n      break;\n    case 'j':\n      string_append(decl,"return ");\n      break;\n    case 'l':\n      string_append(decl,"scope ");\n      break;\n    default:\n      mangled = (char *)0x0;\n      goto switchD_0033400f_caseD_67;\n    }\n  }" for ( ; (binary_expression "*mangled == 'N'" (pointer_expression "*mangled" * identifier) == (char_literal "'N'" ' character ')) ; (assignment_expression "mangled = mangled + 2" identifier = (binary_expression "mangled + 2" identifier + number_literal)) ) (compound_statement "{\n    switch(mangled[1]) {\n    case 'a':\n      string_append(decl,"pure ");\n      break;\n    case 'b':\n      string_append(decl,"nothrow ");\n      break;\n    case 'c':\n      string_append(decl,"ref ");\n      break;\n    case 'd':\n      string_append(decl,"@property ");\n      break;\n    case 'e':\n      string_append(decl,"@trusted ");\n      break;\n    case 'f':\n      string_append(decl,"@safe ");\n      break;\n    case 'g':\n    case 'h':\n    case 'k':\n      goto switchD_0033400f_caseD_67;\n    case 'i':\n      string_append(decl,"@nogc ");\n      break;\n    case 'j':\n      string_append(decl,"return ");\n      break;\n    case 'l':\n      string_append(decl,"scope ");\n      break;\n    default:\n      mangled = (char *)0x0;\n      goto switchD_0033400f_caseD_67;\n    }\n  }" { (switch_statement "switch(mangled[1]) {\n    case 'a':\n      string_append(decl,"pure ");\n      break;\n    case 'b':\n      string_append(decl,"nothrow ");\n      break;\n    case 'c':\n      string_append(decl,"ref ");\n      break;\n    case 'd':\n      string_append(decl,"@property ");\n      break;\n    case 'e':\n      string_append(decl,"@trusted ");\n      break;\n    case 'f':\n      string_append(decl,"@safe ");\n      break;\n    case 'g':\n    case 'h':\n    case 'k':\n      goto switchD_0033400f_caseD_67;\n    case 'i':\n      string_append(decl,"@nogc ");\n      break;\n    case 'j':\n      string_append(decl,"return ");\n      break;\n    case 'l':\n      string_append(decl,"scope ");\n      break;\n    default:\n      mangled = (char *)0x0;\n      goto switchD_0033400f_caseD_67;\n    }" switch (parenthesized_expression "(mangled[1])" ( (subscript_expression "mangled[1]" identifier [ number_literal ]) )) (compound_statement "{\n    case 'a':\n      string_append(decl,"pure ");\n      break;\n    case 'b':\n      string_append(decl,"nothrow ");\n      break;\n    case 'c':\n      string_append(decl,"ref ");\n      break;\n    case 'd':\n      string_append(decl,"@property ");\n      break;\n    case 'e':\n      string_append(decl,"@trusted ");\n      break;\n    case 'f':\n      string_append(decl,"@safe ");\n      break;\n    case 'g':\n    case 'h':\n    case 'k':\n      goto switchD_0033400f_caseD_67;\n    case 'i':\n      string_append(decl,"@nogc ");\n      break;\n    case 'j':\n      string_append(decl,"return ");\n      break;\n    case 'l':\n      string_append(decl,"scope ");\n      break;\n    default:\n      mangled = (char *)0x0;\n      goto switchD_0033400f_caseD_67;\n    }" { (case_statement "case 'a':\n      string_append(decl,"pure ");\n      break;" case (char_literal "'a'" ' character ') : (expression_statement "string_append(decl,"pure ");" (call_expression "string_append(decl,"pure ")" identifier (argument_list "(decl,"pure ")" ( identifier , (string_literal ""pure "" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 'b':\n      string_append(decl,"nothrow ");\n      break;" case (char_literal "'b'" ' character ') : (expression_statement "string_append(decl,"nothrow ");" (call_expression "string_append(decl,"nothrow ")" identifier (argument_list "(decl,"nothrow ")" ( identifier , (string_literal ""nothrow "" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 'c':\n      string_append(decl,"ref ");\n      break;" case (char_literal "'c'" ' character ') : (expression_statement "string_append(decl,"ref ");" (call_expression "string_append(decl,"ref ")" identifier (argument_list "(decl,"ref ")" ( identifier , (string_literal ""ref "" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 'd':\n      string_append(decl,"@property ");\n      break;" case (char_literal "'d'" ' character ') : (expression_statement "string_append(decl,"@property ");" (call_expression "string_append(decl,"@property ")" identifier (argument_list "(decl,"@property ")" ( identifier , (string_literal ""@property "" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 'e':\n      string_append(decl,"@trusted ");\n      break;" case (char_literal "'e'" ' character ') : (expression_statement "string_append(decl,"@trusted ");" (call_expression "string_append(decl,"@trusted ")" identifier (argument_list "(decl,"@trusted ")" ( identifier , (string_literal ""@trusted "" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 'f':\n      string_append(decl,"@safe ");\n      break;" case (char_literal "'f'" ' character ') : (expression_statement "string_append(decl,"@safe ");" (call_expression "string_append(decl,"@safe ")" identifier (argument_list "(decl,"@safe ")" ( identifier , (string_literal ""@safe "" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 'g':" case (char_literal "'g'" ' character ') :) (case_statement "case 'h':" case (char_literal "'h'" ' character ') :) (case_statement "case 'k':\n      goto switchD_0033400f_caseD_67;" case (char_literal "'k'" ' character ') : (goto_statement "goto switchD_0033400f_caseD_67;" goto statement_identifier ;)) (case_statement "case 'i':\n      string_append(decl,"@nogc ");\n      break;" case (char_literal "'i'" ' character ') : (expression_statement "string_append(decl,"@nogc ");" (call_expression "string_append(decl,"@nogc ")" identifier (argument_list "(decl,"@nogc ")" ( identifier , (string_literal ""@nogc "" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 'j':\n      string_append(decl,"return ");\n      break;" case (char_literal "'j'" ' character ') : (expression_statement "string_append(decl,"return ");" (call_expression "string_append(decl,"return ")" identifier (argument_list "(decl,"return ")" ( identifier , (string_literal ""return "" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 'l':\n      string_append(decl,"scope ");\n      break;" case (char_literal "'l'" ' character ') : (expression_statement "string_append(decl,"scope ");" (call_expression "string_append(decl,"scope ")" identifier (argument_list "(decl,"scope ")" ( identifier , (string_literal ""scope "" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "default:\n      mangled = (char *)0x0;\n      goto switchD_0033400f_caseD_67;" default : (expression_statement "mangled = (char *)0x0;" (assignment_expression "mangled = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto switchD_0033400f_caseD_67;" goto statement_identifier ;)) })) })) (labeled_statement "switchD_0033400f_caseD_67:\n  return mangled;" statement_identifier : (return_statement "return mangled;" return identifier ;)) })))
(translation_unit "char * FUN_00333fe0(undefined8 param_1,char *param_2)\n\n{\n  for (; *param_2 == 'N'; param_2 = param_2 + 2) {\n    switch(param_2[1]) {\n    case 'a':\n      FUN_00333e10(param_1,"pure ");\n      break;\n    case 'b':\n      FUN_00333e10(param_1,"nothrow ");\n      break;\n    case 'c':\n      FUN_00333e10(param_1,&DAT_003fe417);\n      break;\n    case 'd':\n      FUN_00333e10(param_1,"@property ");\n      break;\n    case 'e':\n      FUN_00333e10(param_1,"@trusted ");\n      break;\n    case 'f':\n      FUN_00333e10(param_1,"@safe ");\n      break;\n    case 'g':\n    case 'h':\n    case 'k':\n      goto switchD_0033400f_caseD_67;\n    case 'i':\n      FUN_00333e10(param_1,"@nogc ");\n      break;\n    case 'j':\n      FUN_00333e10(param_1,"return ");\n      break;\n    case 'l':\n      FUN_00333e10(param_1,"scope ");\n      break;\n    default:\n      param_2 = (char *)0x0;\n      goto switchD_0033400f_caseD_67;\n    }\n  }\nswitchD_0033400f_caseD_67:\n  return param_2;\n}\n\n" (function_definition "char * FUN_00333fe0(undefined8 param_1,char *param_2)\n\n{\n  for (; *param_2 == 'N'; param_2 = param_2 + 2) {\n    switch(param_2[1]) {\n    case 'a':\n      FUN_00333e10(param_1,"pure ");\n      break;\n    case 'b':\n      FUN_00333e10(param_1,"nothrow ");\n      break;\n    case 'c':\n      FUN_00333e10(param_1,&DAT_003fe417);\n      break;\n    case 'd':\n      FUN_00333e10(param_1,"@property ");\n      break;\n    case 'e':\n      FUN_00333e10(param_1,"@trusted ");\n      break;\n    case 'f':\n      FUN_00333e10(param_1,"@safe ");\n      break;\n    case 'g':\n    case 'h':\n    case 'k':\n      goto switchD_0033400f_caseD_67;\n    case 'i':\n      FUN_00333e10(param_1,"@nogc ");\n      break;\n    case 'j':\n      FUN_00333e10(param_1,"return ");\n      break;\n    case 'l':\n      FUN_00333e10(param_1,"scope ");\n      break;\n    default:\n      param_2 = (char *)0x0;\n      goto switchD_0033400f_caseD_67;\n    }\n  }\nswitchD_0033400f_caseD_67:\n  return param_2;\n}" primitive_type (pointer_declarator "* FUN_00333fe0(undefined8 param_1,char *param_2)" * (function_declarator "FUN_00333fe0(undefined8 param_1,char *param_2)" identifier (parameter_list "(undefined8 param_1,char *param_2)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) )))) (compound_statement "{\n  for (; *param_2 == 'N'; param_2 = param_2 + 2) {\n    switch(param_2[1]) {\n    case 'a':\n      FUN_00333e10(param_1,"pure ");\n      break;\n    case 'b':\n      FUN_00333e10(param_1,"nothrow ");\n      break;\n    case 'c':\n      FUN_00333e10(param_1,&DAT_003fe417);\n      break;\n    case 'd':\n      FUN_00333e10(param_1,"@property ");\n      break;\n    case 'e':\n      FUN_00333e10(param_1,"@trusted ");\n      break;\n    case 'f':\n      FUN_00333e10(param_1,"@safe ");\n      break;\n    case 'g':\n    case 'h':\n    case 'k':\n      goto switchD_0033400f_caseD_67;\n    case 'i':\n      FUN_00333e10(param_1,"@nogc ");\n      break;\n    case 'j':\n      FUN_00333e10(param_1,"return ");\n      break;\n    case 'l':\n      FUN_00333e10(param_1,"scope ");\n      break;\n    default:\n      param_2 = (char *)0x0;\n      goto switchD_0033400f_caseD_67;\n    }\n  }\nswitchD_0033400f_caseD_67:\n  return param_2;\n}" { (for_statement "for (; *param_2 == 'N'; param_2 = param_2 + 2) {\n    switch(param_2[1]) {\n    case 'a':\n      FUN_00333e10(param_1,"pure ");\n      break;\n    case 'b':\n      FUN_00333e10(param_1,"nothrow ");\n      break;\n    case 'c':\n      FUN_00333e10(param_1,&DAT_003fe417);\n      break;\n    case 'd':\n      FUN_00333e10(param_1,"@property ");\n      break;\n    case 'e':\n      FUN_00333e10(param_1,"@trusted ");\n      break;\n    case 'f':\n      FUN_00333e10(param_1,"@safe ");\n      break;\n    case 'g':\n    case 'h':\n    case 'k':\n      goto switchD_0033400f_caseD_67;\n    case 'i':\n      FUN_00333e10(param_1,"@nogc ");\n      break;\n    case 'j':\n      FUN_00333e10(param_1,"return ");\n      break;\n    case 'l':\n      FUN_00333e10(param_1,"scope ");\n      break;\n    default:\n      param_2 = (char *)0x0;\n      goto switchD_0033400f_caseD_67;\n    }\n  }" for ( ; (binary_expression "*param_2 == 'N'" (pointer_expression "*param_2" * identifier) == (char_literal "'N'" ' character ')) ; (assignment_expression "param_2 = param_2 + 2" identifier = (binary_expression "param_2 + 2" identifier + number_literal)) ) (compound_statement "{\n    switch(param_2[1]) {\n    case 'a':\n      FUN_00333e10(param_1,"pure ");\n      break;\n    case 'b':\n      FUN_00333e10(param_1,"nothrow ");\n      break;\n    case 'c':\n      FUN_00333e10(param_1,&DAT_003fe417);\n      break;\n    case 'd':\n      FUN_00333e10(param_1,"@property ");\n      break;\n    case 'e':\n      FUN_00333e10(param_1,"@trusted ");\n      break;\n    case 'f':\n      FUN_00333e10(param_1,"@safe ");\n      break;\n    case 'g':\n    case 'h':\n    case 'k':\n      goto switchD_0033400f_caseD_67;\n    case 'i':\n      FUN_00333e10(param_1,"@nogc ");\n      break;\n    case 'j':\n      FUN_00333e10(param_1,"return ");\n      break;\n    case 'l':\n      FUN_00333e10(param_1,"scope ");\n      break;\n    default:\n      param_2 = (char *)0x0;\n      goto switchD_0033400f_caseD_67;\n    }\n  }" { (switch_statement "switch(param_2[1]) {\n    case 'a':\n      FUN_00333e10(param_1,"pure ");\n      break;\n    case 'b':\n      FUN_00333e10(param_1,"nothrow ");\n      break;\n    case 'c':\n      FUN_00333e10(param_1,&DAT_003fe417);\n      break;\n    case 'd':\n      FUN_00333e10(param_1,"@property ");\n      break;\n    case 'e':\n      FUN_00333e10(param_1,"@trusted ");\n      break;\n    case 'f':\n      FUN_00333e10(param_1,"@safe ");\n      break;\n    case 'g':\n    case 'h':\n    case 'k':\n      goto switchD_0033400f_caseD_67;\n    case 'i':\n      FUN_00333e10(param_1,"@nogc ");\n      break;\n    case 'j':\n      FUN_00333e10(param_1,"return ");\n      break;\n    case 'l':\n      FUN_00333e10(param_1,"scope ");\n      break;\n    default:\n      param_2 = (char *)0x0;\n      goto switchD_0033400f_caseD_67;\n    }" switch (parenthesized_expression "(param_2[1])" ( (subscript_expression "param_2[1]" identifier [ number_literal ]) )) (compound_statement "{\n    case 'a':\n      FUN_00333e10(param_1,"pure ");\n      break;\n    case 'b':\n      FUN_00333e10(param_1,"nothrow ");\n      break;\n    case 'c':\n      FUN_00333e10(param_1,&DAT_003fe417);\n      break;\n    case 'd':\n      FUN_00333e10(param_1,"@property ");\n      break;\n    case 'e':\n      FUN_00333e10(param_1,"@trusted ");\n      break;\n    case 'f':\n      FUN_00333e10(param_1,"@safe ");\n      break;\n    case 'g':\n    case 'h':\n    case 'k':\n      goto switchD_0033400f_caseD_67;\n    case 'i':\n      FUN_00333e10(param_1,"@nogc ");\n      break;\n    case 'j':\n      FUN_00333e10(param_1,"return ");\n      break;\n    case 'l':\n      FUN_00333e10(param_1,"scope ");\n      break;\n    default:\n      param_2 = (char *)0x0;\n      goto switchD_0033400f_caseD_67;\n    }" { (case_statement "case 'a':\n      FUN_00333e10(param_1,"pure ");\n      break;" case (char_literal "'a'" ' character ') : (expression_statement "FUN_00333e10(param_1,"pure ");" (call_expression "FUN_00333e10(param_1,"pure ")" identifier (argument_list "(param_1,"pure ")" ( identifier , (string_literal ""pure "" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 'b':\n      FUN_00333e10(param_1,"nothrow ");\n      break;" case (char_literal "'b'" ' character ') : (expression_statement "FUN_00333e10(param_1,"nothrow ");" (call_expression "FUN_00333e10(param_1,"nothrow ")" identifier (argument_list "(param_1,"nothrow ")" ( identifier , (string_literal ""nothrow "" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 'c':\n      FUN_00333e10(param_1,&DAT_003fe417);\n      break;" case (char_literal "'c'" ' character ') : (expression_statement "FUN_00333e10(param_1,&DAT_003fe417);" (call_expression "FUN_00333e10(param_1,&DAT_003fe417)" identifier (argument_list "(param_1,&DAT_003fe417)" ( identifier , (pointer_expression "&DAT_003fe417" & identifier) ))) ;) (break_statement "break;" break ;)) (case_statement "case 'd':\n      FUN_00333e10(param_1,"@property ");\n      break;" case (char_literal "'d'" ' character ') : (expression_statement "FUN_00333e10(param_1,"@property ");" (call_expression "FUN_00333e10(param_1,"@property ")" identifier (argument_list "(param_1,"@property ")" ( identifier , (string_literal ""@property "" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 'e':\n      FUN_00333e10(param_1,"@trusted ");\n      break;" case (char_literal "'e'" ' character ') : (expression_statement "FUN_00333e10(param_1,"@trusted ");" (call_expression "FUN_00333e10(param_1,"@trusted ")" identifier (argument_list "(param_1,"@trusted ")" ( identifier , (string_literal ""@trusted "" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 'f':\n      FUN_00333e10(param_1,"@safe ");\n      break;" case (char_literal "'f'" ' character ') : (expression_statement "FUN_00333e10(param_1,"@safe ");" (call_expression "FUN_00333e10(param_1,"@safe ")" identifier (argument_list "(param_1,"@safe ")" ( identifier , (string_literal ""@safe "" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 'g':" case (char_literal "'g'" ' character ') :) (case_statement "case 'h':" case (char_literal "'h'" ' character ') :) (case_statement "case 'k':\n      goto switchD_0033400f_caseD_67;" case (char_literal "'k'" ' character ') : (goto_statement "goto switchD_0033400f_caseD_67;" goto statement_identifier ;)) (case_statement "case 'i':\n      FUN_00333e10(param_1,"@nogc ");\n      break;" case (char_literal "'i'" ' character ') : (expression_statement "FUN_00333e10(param_1,"@nogc ");" (call_expression "FUN_00333e10(param_1,"@nogc ")" identifier (argument_list "(param_1,"@nogc ")" ( identifier , (string_literal ""@nogc "" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 'j':\n      FUN_00333e10(param_1,"return ");\n      break;" case (char_literal "'j'" ' character ') : (expression_statement "FUN_00333e10(param_1,"return ");" (call_expression "FUN_00333e10(param_1,"return ")" identifier (argument_list "(param_1,"return ")" ( identifier , (string_literal ""return "" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 'l':\n      FUN_00333e10(param_1,"scope ");\n      break;" case (char_literal "'l'" ' character ') : (expression_statement "FUN_00333e10(param_1,"scope ");" (call_expression "FUN_00333e10(param_1,"scope ")" identifier (argument_list "(param_1,"scope ")" ( identifier , (string_literal ""scope "" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "default:\n      param_2 = (char *)0x0;\n      goto switchD_0033400f_caseD_67;" default : (expression_statement "param_2 = (char *)0x0;" (assignment_expression "param_2 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto switchD_0033400f_caseD_67;" goto statement_identifier ;)) })) })) (labeled_statement "switchD_0033400f_caseD_67:\n  return param_2;" statement_identifier : (return_statement "return param_2;" return identifier ;)) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (for_statement for ( ; (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (switch_statement switch (parenthesized_expression ( (subscript_expression IDENT [ LIT ]) )) (compound_statement { (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') : (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") ))) ;) (break_statement break ;)) (case_statement default : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;)) })) })) (labeled_statement statement_identifier : (return_statement return IDENT ;)) })))
(function_definition "char * FUN_00333fe0(undefined8 param_1,char *param_2)\n\n{\n  for (; *param_2 == 'N'; param_2 = param_2 + 2) {\n    switch(param_2[1]) {\n    case 'a':\n      FUN_00333e10(param_1,"pure ");\n      break;\n    case 'b':\n      FUN_00333e10(param_1,"nothrow ");\n      break;\n    case 'c':\n      FUN_00333e10(param_1,&DAT_003fe417);\n      break;\n    case 'd':\n      FUN_00333e10(param_1,"@property ");\n      break;\n    case 'e':\n      FUN_00333e10(param_1,"@trusted ");\n      break;\n    case 'f':\n      FUN_00333e10(param_1,"@safe ");\n      break;\n    case 'g':\n    case 'h':\n    case 'k':\n      goto switchD_0033400f_caseD_67;\n    case 'i':\n      FUN_00333e10(param_1,"@nogc ");\n      break;\n    case 'j':\n      FUN_00333e10(param_1,"return ");\n      break;\n    case 'l':\n      FUN_00333e10(param_1,"scope ");\n      break;\n    default:\n      param_2 = (char *)0x0;\n      goto switchD_0033400f_caseD_67;\n    }\n  }\nswitchD_0033400f_caseD_67:\n  return param_2;\n}" (primitive_type "char") (pointer_declarator "* FUN_00333fe0(undefined8 param_1,char *param_2)" (* "*") (function_declarator "FUN_00333fe0(undefined8 param_1,char *param_2)" (identifier "FUN_00333fe0") (parameter_list "(undefined8 param_1,char *param_2)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")")))) (compound_statement "{\n  for (; *param_2 == 'N'; param_2 = param_2 + 2) {\n    switch(param_2[1]) {\n    case 'a':\n      FUN_00333e10(param_1,"pure ");\n      break;\n    case 'b':\n      FUN_00333e10(param_1,"nothrow ");\n      break;\n    case 'c':\n      FUN_00333e10(param_1,&DAT_003fe417);\n      break;\n    case 'd':\n      FUN_00333e10(param_1,"@property ");\n      break;\n    case 'e':\n      FUN_00333e10(param_1,"@trusted ");\n      break;\n    case 'f':\n      FUN_00333e10(param_1,"@safe ");\n      break;\n    case 'g':\n    case 'h':\n    case 'k':\n      goto switchD_0033400f_caseD_67;\n    case 'i':\n      FUN_00333e10(param_1,"@nogc ");\n      break;\n    case 'j':\n      FUN_00333e10(param_1,"return ");\n      break;\n    case 'l':\n      FUN_00333e10(param_1,"scope ");\n      break;\n    default:\n      param_2 = (char *)0x0;\n      goto switchD_0033400f_caseD_67;\n    }\n  }\nswitchD_0033400f_caseD_67:\n  return param_2;\n}" ({ "{") (for_statement "for (; *param_2 == 'N'; param_2 = param_2 + 2) {\n    switch(param_2[1]) {\n    case 'a':\n      FUN_00333e10(param_1,"pure ");\n      break;\n    case 'b':\n      FUN_00333e10(param_1,"nothrow ");\n      break;\n    case 'c':\n      FUN_00333e10(param_1,&DAT_003fe417);\n      break;\n    case 'd':\n      FUN_00333e10(param_1,"@property ");\n      break;\n    case 'e':\n      FUN_00333e10(param_1,"@trusted ");\n      break;\n    case 'f':\n      FUN_00333e10(param_1,"@safe ");\n      break;\n    case 'g':\n    case 'h':\n    case 'k':\n      goto switchD_0033400f_caseD_67;\n    case 'i':\n      FUN_00333e10(param_1,"@nogc ");\n      break;\n    case 'j':\n      FUN_00333e10(param_1,"return ");\n      break;\n    case 'l':\n      FUN_00333e10(param_1,"scope ");\n      break;\n    default:\n      param_2 = (char *)0x0;\n      goto switchD_0033400f_caseD_67;\n    }\n  }" (for "for") (( "(") (; ";") (binary_expression "*param_2 == 'N'" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (== "==") (char_literal "'N'" (' "'") (character "N") (' "'"))) (; ";") (assignment_expression "param_2 = param_2 + 2" (identifier "param_2") (= "=") (binary_expression "param_2 + 2" (identifier "param_2") (+ "+") (number_literal "2"))) () ")") (compound_statement "{\n    switch(param_2[1]) {\n    case 'a':\n      FUN_00333e10(param_1,"pure ");\n      break;\n    case 'b':\n      FUN_00333e10(param_1,"nothrow ");\n      break;\n    case 'c':\n      FUN_00333e10(param_1,&DAT_003fe417);\n      break;\n    case 'd':\n      FUN_00333e10(param_1,"@property ");\n      break;\n    case 'e':\n      FUN_00333e10(param_1,"@trusted ");\n      break;\n    case 'f':\n      FUN_00333e10(param_1,"@safe ");\n      break;\n    case 'g':\n    case 'h':\n    case 'k':\n      goto switchD_0033400f_caseD_67;\n    case 'i':\n      FUN_00333e10(param_1,"@nogc ");\n      break;\n    case 'j':\n      FUN_00333e10(param_1,"return ");\n      break;\n    case 'l':\n      FUN_00333e10(param_1,"scope ");\n      break;\n    default:\n      param_2 = (char *)0x0;\n      goto switchD_0033400f_caseD_67;\n    }\n  }" ({ "{") (switch_statement "switch(param_2[1]) {\n    case 'a':\n      FUN_00333e10(param_1,"pure ");\n      break;\n    case 'b':\n      FUN_00333e10(param_1,"nothrow ");\n      break;\n    case 'c':\n      FUN_00333e10(param_1,&DAT_003fe417);\n      break;\n    case 'd':\n      FUN_00333e10(param_1,"@property ");\n      break;\n    case 'e':\n      FUN_00333e10(param_1,"@trusted ");\n      break;\n    case 'f':\n      FUN_00333e10(param_1,"@safe ");\n      break;\n    case 'g':\n    case 'h':\n    case 'k':\n      goto switchD_0033400f_caseD_67;\n    case 'i':\n      FUN_00333e10(param_1,"@nogc ");\n      break;\n    case 'j':\n      FUN_00333e10(param_1,"return ");\n      break;\n    case 'l':\n      FUN_00333e10(param_1,"scope ");\n      break;\n    default:\n      param_2 = (char *)0x0;\n      goto switchD_0033400f_caseD_67;\n    }" (switch "switch") (parenthesized_expression "(param_2[1])" (( "(") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) () ")")) (compound_statement "{\n    case 'a':\n      FUN_00333e10(param_1,"pure ");\n      break;\n    case 'b':\n      FUN_00333e10(param_1,"nothrow ");\n      break;\n    case 'c':\n      FUN_00333e10(param_1,&DAT_003fe417);\n      break;\n    case 'd':\n      FUN_00333e10(param_1,"@property ");\n      break;\n    case 'e':\n      FUN_00333e10(param_1,"@trusted ");\n      break;\n    case 'f':\n      FUN_00333e10(param_1,"@safe ");\n      break;\n    case 'g':\n    case 'h':\n    case 'k':\n      goto switchD_0033400f_caseD_67;\n    case 'i':\n      FUN_00333e10(param_1,"@nogc ");\n      break;\n    case 'j':\n      FUN_00333e10(param_1,"return ");\n      break;\n    case 'l':\n      FUN_00333e10(param_1,"scope ");\n      break;\n    default:\n      param_2 = (char *)0x0;\n      goto switchD_0033400f_caseD_67;\n    }" ({ "{") (case_statement "case 'a':\n      FUN_00333e10(param_1,"pure ");\n      break;" (case "case") (char_literal "'a'" (' "'") (character "a") (' "'")) (: ":") (expression_statement "FUN_00333e10(param_1,"pure ");" (call_expression "FUN_00333e10(param_1,"pure ")" (identifier "FUN_00333e10") (argument_list "(param_1,"pure ")" (( "(") (identifier "param_1") (, ",") (string_literal ""pure "" (" """) (string_content "pure ") (" """)) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'b':\n      FUN_00333e10(param_1,"nothrow ");\n      break;" (case "case") (char_literal "'b'" (' "'") (character "b") (' "'")) (: ":") (expression_statement "FUN_00333e10(param_1,"nothrow ");" (call_expression "FUN_00333e10(param_1,"nothrow ")" (identifier "FUN_00333e10") (argument_list "(param_1,"nothrow ")" (( "(") (identifier "param_1") (, ",") (string_literal ""nothrow "" (" """) (string_content "nothrow ") (" """)) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'c':\n      FUN_00333e10(param_1,&DAT_003fe417);\n      break;" (case "case") (char_literal "'c'" (' "'") (character "c") (' "'")) (: ":") (expression_statement "FUN_00333e10(param_1,&DAT_003fe417);" (call_expression "FUN_00333e10(param_1,&DAT_003fe417)" (identifier "FUN_00333e10") (argument_list "(param_1,&DAT_003fe417)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&DAT_003fe417" (& "&") (identifier "DAT_003fe417")) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'd':\n      FUN_00333e10(param_1,"@property ");\n      break;" (case "case") (char_literal "'d'" (' "'") (character "d") (' "'")) (: ":") (expression_statement "FUN_00333e10(param_1,"@property ");" (call_expression "FUN_00333e10(param_1,"@property ")" (identifier "FUN_00333e10") (argument_list "(param_1,"@property ")" (( "(") (identifier "param_1") (, ",") (string_literal ""@property "" (" """) (string_content "@property ") (" """)) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'e':\n      FUN_00333e10(param_1,"@trusted ");\n      break;" (case "case") (char_literal "'e'" (' "'") (character "e") (' "'")) (: ":") (expression_statement "FUN_00333e10(param_1,"@trusted ");" (call_expression "FUN_00333e10(param_1,"@trusted ")" (identifier "FUN_00333e10") (argument_list "(param_1,"@trusted ")" (( "(") (identifier "param_1") (, ",") (string_literal ""@trusted "" (" """) (string_content "@trusted ") (" """)) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'f':\n      FUN_00333e10(param_1,"@safe ");\n      break;" (case "case") (char_literal "'f'" (' "'") (character "f") (' "'")) (: ":") (expression_statement "FUN_00333e10(param_1,"@safe ");" (call_expression "FUN_00333e10(param_1,"@safe ")" (identifier "FUN_00333e10") (argument_list "(param_1,"@safe ")" (( "(") (identifier "param_1") (, ",") (string_literal ""@safe "" (" """) (string_content "@safe ") (" """)) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'g':" (case "case") (char_literal "'g'" (' "'") (character "g") (' "'")) (: ":")) (case_statement "case 'h':" (case "case") (char_literal "'h'" (' "'") (character "h") (' "'")) (: ":")) (case_statement "case 'k':\n      goto switchD_0033400f_caseD_67;" (case "case") (char_literal "'k'" (' "'") (character "k") (' "'")) (: ":") (goto_statement "goto switchD_0033400f_caseD_67;" (goto "goto") (statement_identifier "switchD_0033400f_caseD_67") (; ";"))) (case_statement "case 'i':\n      FUN_00333e10(param_1,"@nogc ");\n      break;" (case "case") (char_literal "'i'" (' "'") (character "i") (' "'")) (: ":") (expression_statement "FUN_00333e10(param_1,"@nogc ");" (call_expression "FUN_00333e10(param_1,"@nogc ")" (identifier "FUN_00333e10") (argument_list "(param_1,"@nogc ")" (( "(") (identifier "param_1") (, ",") (string_literal ""@nogc "" (" """) (string_content "@nogc ") (" """)) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'j':\n      FUN_00333e10(param_1,"return ");\n      break;" (case "case") (char_literal "'j'" (' "'") (character "j") (' "'")) (: ":") (expression_statement "FUN_00333e10(param_1,"return ");" (call_expression "FUN_00333e10(param_1,"return ")" (identifier "FUN_00333e10") (argument_list "(param_1,"return ")" (( "(") (identifier "param_1") (, ",") (string_literal ""return "" (" """) (string_content "return ") (" """)) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'l':\n      FUN_00333e10(param_1,"scope ");\n      break;" (case "case") (char_literal "'l'" (' "'") (character "l") (' "'")) (: ":") (expression_statement "FUN_00333e10(param_1,"scope ");" (call_expression "FUN_00333e10(param_1,"scope ")" (identifier "FUN_00333e10") (argument_list "(param_1,"scope ")" (( "(") (identifier "param_1") (, ",") (string_literal ""scope "" (" """) (string_content "scope ") (" """)) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n      param_2 = (char *)0x0;\n      goto switchD_0033400f_caseD_67;" (default "default") (: ":") (expression_statement "param_2 = (char *)0x0;" (assignment_expression "param_2 = (char *)0x0" (identifier "param_2") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto switchD_0033400f_caseD_67;" (goto "goto") (statement_identifier "switchD_0033400f_caseD_67") (; ";"))) (} "}"))) (} "}"))) (labeled_statement "switchD_0033400f_caseD_67:\n  return param_2;" (statement_identifier "switchD_0033400f_caseD_67") (: ":") (return_statement "return param_2;" (return "return") (identifier "param_2") (; ";"))) (} "}")))

char * function_1(type_1 *decl,char *var_1)

{
  for (; *var_1 == 'N'; var_1 = var_1 + 2) {
    switch(var_1[1]) {
    case 'a':
      var_2(decl,"pure ");
      break;
    case 'b':
      var_2(decl,"nothrow ");
      break;
    case 'c':
      var_2(decl,"ref ");
      break;
    case 'd':
      var_2(decl,"@property ");
      break;
    case 'e':
      var_2(decl,"@trusted ");
      break;
    case 'f':
      var_2(decl,"@safe ");
      break;
    case 'g':
    case 'h':
    case 'k':
      goto switchD_0033400f_caseD_67;
    case 'i':
      var_2(decl,"@nogc ");
      break;
    case 'j':
      var_2(decl,"return ");
      break;
    case 'l':
      var_2(decl,"scope ");
      break;
    default:
      var_1 = (char *)0x0;
      goto switchD_0033400f_caseD_67;
    }
  }
switchD_0033400f_caseD_67:
  return var_1;
}


(translation_unit (function_definition type: (primitive_type) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier)))))) body: (compound_statement (for_statement condition: (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character))) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (switch_statement condition: (parenthesized_expression (subscript_expression argument: (identifier) index: (number_literal))) body: (compound_statement (case_statement value: (char_literal (character)) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content))))) (break_statement)) (case_statement value: (char_literal (character)) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content))))) (break_statement)) (case_statement value: (char_literal (character)) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) (break_statement)) (case_statement value: (char_literal (character)) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content))))) (break_statement)) (case_statement value: (char_literal (character)) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content))))) (break_statement)) (case_statement value: (char_literal (character)) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content))))) (break_statement)) (case_statement value: (char_literal (character))) (case_statement value: (char_literal (character))) (case_statement value: (char_literal (character)) (goto_statement label: (statement_identifier))) (case_statement value: (char_literal (character)) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content))))) (break_statement)) (case_statement value: (char_literal (character)) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content))))) (break_statement)) (case_statement value: (char_literal (character)) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content))))) (break_statement)) (case_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier))))))) (labeled_statement label: (statement_identifier) (return_statement (identifier))))))

char * MASKED(undefined8 param_1,char *param_2)

{
  for (; *param_2 == 'N'; param_2 = param_2 + 2) {
    switch(param_2[1]) {
    case 'a':
      FUN_00333e10(param_1,"pure ");
      break;
    case 'b':
      FUN_00333e10(param_1,"nothrow ");
      break;
    case 'c':
      FUN_00333e10(param_1,&DAT_003fe417);
      break;
    case 'd':
      FUN_00333e10(param_1,"@property ");
      break;
    case 'e':
      FUN_00333e10(param_1,"@trusted ");
      break;
    case 'f':
      FUN_00333e10(param_1,"@safe ");
      break;
    case 'g':
    case 'h':
    case 'k':
      goto switchD_0033400f_caseD_67;
    case 'i':
      FUN_00333e10(param_1,"@nogc ");
      break;
    case 'j':
      FUN_00333e10(param_1,"return ");
      break;
    case 'l':
      FUN_00333e10(param_1,"scope ");
      break;
    default:
      param_2 = (char *)0x0;
      goto switchD_0033400f_caseD_67;
    }
  }
switchD_0033400f_caseD_67:
  return param_2;
}

