
int __regparm2
_Unwind_ForcedUnwind
          (undefined4 param_1,undefined4 param_2,int param_3,undefined4 param_4,undefined4 param_5)

{
  undefined4 uVar1;
  int iVar2;
  int extraout_EDX;
  undefined4 *puVar3;
  undefined4 *puVar4;
  byte bVar5;
  undefined4 local_11c [32];
  undefined4 local_9c [18];
  undefined4 local_54;
  undefined4 local_50;
  int local_18;
  undefined4 local_14;
  
  bVar5 = 0;
  local_14 = param_2;
  uw_init_context_1();
  puVar3 = local_11c;
  puVar4 = local_9c;
  for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {
    *puVar4 = *puVar3;
    puVar3 = puVar3 + (uint)bVar5 * -2 + 1;
    puVar4 = puVar4 + (uint)bVar5 * -2 + 1;
  }
  *(undefined4 *)(param_3 + 0xc) = param_4;
  *(undefined4 *)(param_3 + 0x10) = param_5;
  iVar2 = _Unwind_ForcedUnwind_Phase2();
  if (iVar2 != 7) {
    return iVar2;
  }
  uVar1 = uw_install_context_1();
  _Unwind_DebugHook(local_54,local_50,uVar1,uVar1);
  *(undefined4 *)(&stack0x00000000 + extraout_EDX) = local_50;
  return local_18;
}



int __regparm2
FUN_002176d0(undefined4 param_1,undefined4 param_2,int param_3,undefined4 param_4,undefined4 param_5
            )

{
  undefined4 uVar1;
  int iVar2;
  int extraout_EDX;
  undefined4 *puVar3;
  undefined4 *puVar4;
  byte bVar5;
  undefined4 local_11c [32];
  undefined4 local_9c [18];
  undefined4 local_54;
  undefined4 local_50;
  int local_18;
  undefined4 local_14;
  
  bVar5 = 0;
  local_14 = param_2;
  FUN_00216e00();
  puVar3 = local_11c;
  puVar4 = local_9c;
  for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {
    *puVar4 = *puVar3;
    puVar3 = puVar3 + (uint)bVar5 * -2 + 1;
    puVar4 = puVar4 + (uint)bVar5 * -2 + 1;
  }
  *(undefined4 *)(param_3 + 0xc) = param_4;
  *(undefined4 *)(param_3 + 0x10) = param_5;
  iVar2 = FUN_002170a0();
  if (iVar2 != 7) {
    return iVar2;
  }
  uVar1 = FUN_00217190();
  FUN_00217580(local_54,local_50,uVar1,uVar1);
  *(undefined4 *)(&stack0x00000000 + extraout_EDX) = local_50;
  return local_18;
}


PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
LEA EDI,[EBP + 0xffffff68]
PUSH EBX
LEA EBX,[EBP + 0xfffffee8]
PUSH EDX
LEA EDX,[EBP + 0x8]
MOV ESI,EBX
PUSH EAX
MOV EAX,EBX
SUB ESP,0x114
MOV ECX,dword ptr [EBP + 0x4]
CALL 0x00216e00
MOV EAX,dword ptr [EBP + 0xc]
MOV ECX,0x20
MOVSD.REP ES:EDI,ESI
MOV ESI,dword ptr [EBP + 0x8]
LEA EDI,[EBP + 0xffffff68]
LEA ECX,[EBP + 0xfffffee4]
MOV EDX,EDI
MOV dword ptr [ESI + 0xc],EAX
MOV EAX,dword ptr [EBP + 0x10]
MOV dword ptr [ESI + 0x10],EAX
MOV EAX,ESI
CALL 0x002170a0
CMP EAX,0x7
JZ 0x00217734
MOV EBX,dword ptr [EBP + -0xc]
MOV ESI,dword ptr [EBP + -0x8]
MOV EDI,dword ptr [EBP + -0x4]
LEAVE
RET
MOV EDX,EDI
MOV EAX,EBX
CALL 0x00217190
MOV EBX,dword ptr [EBP + -0x4c]
MOV EDX,EAX
PUSH EAX
PUSH EAX
PUSH EBX
PUSH dword ptr [EBP + -0x50]
CALL 0x00217580
ADD ESP,0x10
MOV ECX,EDX
MOV dword ptr [EBP + EDX*0x1 + 0x4],EBX
MOV EAX,dword ptr [EBP + -0x14]
LEA ECX,[EBP + ECX*0x1 + 0x4]
MOV EDX,dword ptr [EBP + -0x10]
MOV EBX,dword ptr [EBP + -0xc]
MOV ESI,dword ptr [EBP + -0x8]
MOV EDI,dword ptr [EBP + -0x4]
MOV EBP,dword ptr [EBP]
MOV ESP,ECX
RET
(translation_unit "int __regparm2\nFUN_002176d0(undefined4 param_1,undefined4 param_2,int param_3,undefined4 param_4,undefined4 param_5\n            )\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  int extraout_EDX;\n  undefined4 *puVar3;\n  undefined4 *puVar4;\n  byte bVar5;\n  undefined4 local_11c [32];\n  undefined4 local_9c [18];\n  undefined4 local_54;\n  undefined4 local_50;\n  int local_18;\n  undefined4 local_14;\n  \n  bVar5 = 0;\n  local_14 = param_2;\n  FUN_00216e00();\n  puVar3 = local_11c;\n  puVar4 = local_9c;\n  for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n    *puVar4 = *puVar3;\n    puVar3 = puVar3 + (uint)bVar5 * -2 + 1;\n    puVar4 = puVar4 + (uint)bVar5 * -2 + 1;\n  }\n  *(undefined4 *)(param_3 + 0xc) = param_4;\n  *(undefined4 *)(param_3 + 0x10) = param_5;\n  iVar2 = FUN_002170a0();\n  if (iVar2 != 7) {\n    return iVar2;\n  }\n  uVar1 = FUN_00217190();\n  FUN_00217580(local_54,local_50,uVar1,uVar1);\n  *(undefined4 *)(&stack0x00000000 + extraout_EDX) = local_50;\n  return local_18;\n}\n\n" (function_definition "int __regparm2\nFUN_002176d0(undefined4 param_1,undefined4 param_2,int param_3,undefined4 param_4,undefined4 param_5\n            )\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  int extraout_EDX;\n  undefined4 *puVar3;\n  undefined4 *puVar4;\n  byte bVar5;\n  undefined4 local_11c [32];\n  undefined4 local_9c [18];\n  undefined4 local_54;\n  undefined4 local_50;\n  int local_18;\n  undefined4 local_14;\n  \n  bVar5 = 0;\n  local_14 = param_2;\n  FUN_00216e00();\n  puVar3 = local_11c;\n  puVar4 = local_9c;\n  for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n    *puVar4 = *puVar3;\n    puVar3 = puVar3 + (uint)bVar5 * -2 + 1;\n    puVar4 = puVar4 + (uint)bVar5 * -2 + 1;\n  }\n  *(undefined4 *)(param_3 + 0xc) = param_4;\n  *(undefined4 *)(param_3 + 0x10) = param_5;\n  iVar2 = FUN_002170a0();\n  if (iVar2 != 7) {\n    return iVar2;\n  }\n  uVar1 = FUN_00217190();\n  FUN_00217580(local_54,local_50,uVar1,uVar1);\n  *(undefined4 *)(&stack0x00000000 + extraout_EDX) = local_50;\n  return local_18;\n}" primitive_type (ERROR "__regparm2" identifier) (function_declarator "FUN_002176d0(undefined4 param_1,undefined4 param_2,int param_3,undefined4 param_4,undefined4 param_5\n            )" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,int param_3,undefined4 param_4,undefined4 param_5\n            )" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  int extraout_EDX;\n  undefined4 *puVar3;\n  undefined4 *puVar4;\n  byte bVar5;\n  undefined4 local_11c [32];\n  undefined4 local_9c [18];\n  undefined4 local_54;\n  undefined4 local_50;\n  int local_18;\n  undefined4 local_14;\n  \n  bVar5 = 0;\n  local_14 = param_2;\n  FUN_00216e00();\n  puVar3 = local_11c;\n  puVar4 = local_9c;\n  for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n    *puVar4 = *puVar3;\n    puVar3 = puVar3 + (uint)bVar5 * -2 + 1;\n    puVar4 = puVar4 + (uint)bVar5 * -2 + 1;\n  }\n  *(undefined4 *)(param_3 + 0xc) = param_4;\n  *(undefined4 *)(param_3 + 0x10) = param_5;\n  iVar2 = FUN_002170a0();\n  if (iVar2 != 7) {\n    return iVar2;\n  }\n  uVar1 = FUN_00217190();\n  FUN_00217580(local_54,local_50,uVar1,uVar1);\n  *(undefined4 *)(&stack0x00000000 + extraout_EDX) = local_50;\n  return local_18;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int extraout_EDX;" primitive_type identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "undefined4 local_11c [32];" type_identifier (array_declarator "local_11c [32]" identifier [ number_literal ]) ;) (declaration "undefined4 local_9c [18];" type_identifier (array_declarator "local_9c [18]" identifier [ number_literal ]) ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "int local_18;" primitive_type identifier ;) (declaration "undefined4 local_14;" type_identifier identifier ;) (expression_statement "bVar5 = 0;" (assignment_expression "bVar5 = 0" identifier = number_literal) ;) (expression_statement "local_14 = param_2;" (assignment_expression "local_14 = param_2" identifier = identifier) ;) (expression_statement "FUN_00216e00();" (call_expression "FUN_00216e00()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar3 = local_11c;" (assignment_expression "puVar3 = local_11c" identifier = identifier) ;) (expression_statement "puVar4 = local_9c;" (assignment_expression "puVar4 = local_9c" identifier = identifier) ;) (for_statement "for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n    *puVar4 = *puVar3;\n    puVar3 = puVar3 + (uint)bVar5 * -2 + 1;\n    puVar4 = puVar4 + (uint)bVar5 * -2 + 1;\n  }" for ( (assignment_expression "iVar2 = 0x20" identifier = number_literal) ; (binary_expression "iVar2 != 0" identifier != number_literal) ; (assignment_expression "iVar2 = iVar2 + -1" identifier = (binary_expression "iVar2 + -1" identifier + number_literal)) ) (compound_statement "{\n    *puVar4 = *puVar3;\n    puVar3 = puVar3 + (uint)bVar5 * -2 + 1;\n    puVar4 = puVar4 + (uint)bVar5 * -2 + 1;\n  }" { (expression_statement "*puVar4 = *puVar3;" (assignment_expression "*puVar4 = *puVar3" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar3" * identifier)) ;) (expression_statement "puVar3 = puVar3 + (uint)bVar5 * -2 + 1;" (assignment_expression "puVar3 = puVar3 + (uint)bVar5 * -2 + 1" identifier = (binary_expression "puVar3 + (uint)bVar5 * -2 + 1" (binary_expression "puVar3 + (uint)bVar5 * -2" identifier + (binary_expression "(uint)bVar5 * -2" (cast_expression "(uint)bVar5" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar4 = puVar4 + (uint)bVar5 * -2 + 1;" (assignment_expression "puVar4 = puVar4 + (uint)bVar5 * -2 + 1" identifier = (binary_expression "puVar4 + (uint)bVar5 * -2 + 1" (binary_expression "puVar4 + (uint)bVar5 * -2" identifier + (binary_expression "(uint)bVar5 * -2" (cast_expression "(uint)bVar5" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "*(undefined4 *)(param_3 + 0xc) = param_4;" (assignment_expression "*(undefined4 *)(param_3 + 0xc) = param_4" (pointer_expression "*(undefined4 *)(param_3 + 0xc)" * (cast_expression "(undefined4 *)(param_3 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xc)" ( (binary_expression "param_3 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_3 + 0x10) = param_5;" (assignment_expression "*(undefined4 *)(param_3 + 0x10) = param_5" (pointer_expression "*(undefined4 *)(param_3 + 0x10)" * (cast_expression "(undefined4 *)(param_3 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x10)" ( (binary_expression "param_3 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar2 = FUN_002170a0();" (assignment_expression "iVar2 = FUN_002170a0()" identifier = (call_expression "FUN_002170a0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar2 != 7) {\n    return iVar2;\n  }" if (parenthesized_expression "(iVar2 != 7)" ( (binary_expression "iVar2 != 7" identifier != number_literal) )) (compound_statement "{\n    return iVar2;\n  }" { (return_statement "return iVar2;" return identifier ;) })) (expression_statement "uVar1 = FUN_00217190();" (assignment_expression "uVar1 = FUN_00217190()" identifier = (call_expression "FUN_00217190()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_00217580(local_54,local_50,uVar1,uVar1);" (call_expression "FUN_00217580(local_54,local_50,uVar1,uVar1)" identifier (argument_list "(local_54,local_50,uVar1,uVar1)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(&stack0x00000000 + extraout_EDX) = local_50;" (assignment_expression "*(undefined4 *)(&stack0x00000000 + extraout_EDX) = local_50" (pointer_expression "*(undefined4 *)(&stack0x00000000 + extraout_EDX)" * (cast_expression "(undefined4 *)(&stack0x00000000 + extraout_EDX)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&stack0x00000000 + extraout_EDX)" ( (binary_expression "&stack0x00000000 + extraout_EDX" (pointer_expression "&stack0x00000000" & identifier) + identifier) )))) = identifier) ;) (return_statement "return local_18;" return identifier ;) })))
(translation_unit "int __regparm2\n_Unwind_ForcedUnwind\n          (undefined4 param_1,undefined4 param_2,int param_3,undefined4 param_4,undefined4 param_5)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  int extraout_EDX;\n  undefined4 *puVar3;\n  undefined4 *puVar4;\n  byte bVar5;\n  undefined4 local_11c [32];\n  undefined4 local_9c [18];\n  undefined4 local_54;\n  undefined4 local_50;\n  int local_18;\n  undefined4 local_14;\n  \n  bVar5 = 0;\n  local_14 = param_2;\n  uw_init_context_1();\n  puVar3 = local_11c;\n  puVar4 = local_9c;\n  for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n    *puVar4 = *puVar3;\n    puVar3 = puVar3 + (uint)bVar5 * -2 + 1;\n    puVar4 = puVar4 + (uint)bVar5 * -2 + 1;\n  }\n  *(undefined4 *)(param_3 + 0xc) = param_4;\n  *(undefined4 *)(param_3 + 0x10) = param_5;\n  iVar2 = _Unwind_ForcedUnwind_Phase2();\n  if (iVar2 != 7) {\n    return iVar2;\n  }\n  uVar1 = uw_install_context_1();\n  _Unwind_DebugHook(local_54,local_50,uVar1,uVar1);\n  *(undefined4 *)(&stack0x00000000 + extraout_EDX) = local_50;\n  return local_18;\n}\n\n" (function_definition "int __regparm2\n_Unwind_ForcedUnwind\n          (undefined4 param_1,undefined4 param_2,int param_3,undefined4 param_4,undefined4 param_5)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  int extraout_EDX;\n  undefined4 *puVar3;\n  undefined4 *puVar4;\n  byte bVar5;\n  undefined4 local_11c [32];\n  undefined4 local_9c [18];\n  undefined4 local_54;\n  undefined4 local_50;\n  int local_18;\n  undefined4 local_14;\n  \n  bVar5 = 0;\n  local_14 = param_2;\n  uw_init_context_1();\n  puVar3 = local_11c;\n  puVar4 = local_9c;\n  for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n    *puVar4 = *puVar3;\n    puVar3 = puVar3 + (uint)bVar5 * -2 + 1;\n    puVar4 = puVar4 + (uint)bVar5 * -2 + 1;\n  }\n  *(undefined4 *)(param_3 + 0xc) = param_4;\n  *(undefined4 *)(param_3 + 0x10) = param_5;\n  iVar2 = _Unwind_ForcedUnwind_Phase2();\n  if (iVar2 != 7) {\n    return iVar2;\n  }\n  uVar1 = uw_install_context_1();\n  _Unwind_DebugHook(local_54,local_50,uVar1,uVar1);\n  *(undefined4 *)(&stack0x00000000 + extraout_EDX) = local_50;\n  return local_18;\n}" primitive_type (ERROR "__regparm2" identifier) (function_declarator "_Unwind_ForcedUnwind\n          (undefined4 param_1,undefined4 param_2,int param_3,undefined4 param_4,undefined4 param_5)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,int param_3,undefined4 param_4,undefined4 param_5)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  int extraout_EDX;\n  undefined4 *puVar3;\n  undefined4 *puVar4;\n  byte bVar5;\n  undefined4 local_11c [32];\n  undefined4 local_9c [18];\n  undefined4 local_54;\n  undefined4 local_50;\n  int local_18;\n  undefined4 local_14;\n  \n  bVar5 = 0;\n  local_14 = param_2;\n  uw_init_context_1();\n  puVar3 = local_11c;\n  puVar4 = local_9c;\n  for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n    *puVar4 = *puVar3;\n    puVar3 = puVar3 + (uint)bVar5 * -2 + 1;\n    puVar4 = puVar4 + (uint)bVar5 * -2 + 1;\n  }\n  *(undefined4 *)(param_3 + 0xc) = param_4;\n  *(undefined4 *)(param_3 + 0x10) = param_5;\n  iVar2 = _Unwind_ForcedUnwind_Phase2();\n  if (iVar2 != 7) {\n    return iVar2;\n  }\n  uVar1 = uw_install_context_1();\n  _Unwind_DebugHook(local_54,local_50,uVar1,uVar1);\n  *(undefined4 *)(&stack0x00000000 + extraout_EDX) = local_50;\n  return local_18;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int extraout_EDX;" primitive_type identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "undefined4 local_11c [32];" type_identifier (array_declarator "local_11c [32]" identifier [ number_literal ]) ;) (declaration "undefined4 local_9c [18];" type_identifier (array_declarator "local_9c [18]" identifier [ number_literal ]) ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "int local_18;" primitive_type identifier ;) (declaration "undefined4 local_14;" type_identifier identifier ;) (expression_statement "bVar5 = 0;" (assignment_expression "bVar5 = 0" identifier = number_literal) ;) (expression_statement "local_14 = param_2;" (assignment_expression "local_14 = param_2" identifier = identifier) ;) (expression_statement "uw_init_context_1();" (call_expression "uw_init_context_1()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar3 = local_11c;" (assignment_expression "puVar3 = local_11c" identifier = identifier) ;) (expression_statement "puVar4 = local_9c;" (assignment_expression "puVar4 = local_9c" identifier = identifier) ;) (for_statement "for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n    *puVar4 = *puVar3;\n    puVar3 = puVar3 + (uint)bVar5 * -2 + 1;\n    puVar4 = puVar4 + (uint)bVar5 * -2 + 1;\n  }" for ( (assignment_expression "iVar2 = 0x20" identifier = number_literal) ; (binary_expression "iVar2 != 0" identifier != number_literal) ; (assignment_expression "iVar2 = iVar2 + -1" identifier = (binary_expression "iVar2 + -1" identifier + number_literal)) ) (compound_statement "{\n    *puVar4 = *puVar3;\n    puVar3 = puVar3 + (uint)bVar5 * -2 + 1;\n    puVar4 = puVar4 + (uint)bVar5 * -2 + 1;\n  }" { (expression_statement "*puVar4 = *puVar3;" (assignment_expression "*puVar4 = *puVar3" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar3" * identifier)) ;) (expression_statement "puVar3 = puVar3 + (uint)bVar5 * -2 + 1;" (assignment_expression "puVar3 = puVar3 + (uint)bVar5 * -2 + 1" identifier = (binary_expression "puVar3 + (uint)bVar5 * -2 + 1" (binary_expression "puVar3 + (uint)bVar5 * -2" identifier + (binary_expression "(uint)bVar5 * -2" (cast_expression "(uint)bVar5" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar4 = puVar4 + (uint)bVar5 * -2 + 1;" (assignment_expression "puVar4 = puVar4 + (uint)bVar5 * -2 + 1" identifier = (binary_expression "puVar4 + (uint)bVar5 * -2 + 1" (binary_expression "puVar4 + (uint)bVar5 * -2" identifier + (binary_expression "(uint)bVar5 * -2" (cast_expression "(uint)bVar5" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "*(undefined4 *)(param_3 + 0xc) = param_4;" (assignment_expression "*(undefined4 *)(param_3 + 0xc) = param_4" (pointer_expression "*(undefined4 *)(param_3 + 0xc)" * (cast_expression "(undefined4 *)(param_3 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xc)" ( (binary_expression "param_3 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_3 + 0x10) = param_5;" (assignment_expression "*(undefined4 *)(param_3 + 0x10) = param_5" (pointer_expression "*(undefined4 *)(param_3 + 0x10)" * (cast_expression "(undefined4 *)(param_3 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x10)" ( (binary_expression "param_3 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar2 = _Unwind_ForcedUnwind_Phase2();" (assignment_expression "iVar2 = _Unwind_ForcedUnwind_Phase2()" identifier = (call_expression "_Unwind_ForcedUnwind_Phase2()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar2 != 7) {\n    return iVar2;\n  }" if (parenthesized_expression "(iVar2 != 7)" ( (binary_expression "iVar2 != 7" identifier != number_literal) )) (compound_statement "{\n    return iVar2;\n  }" { (return_statement "return iVar2;" return identifier ;) })) (expression_statement "uVar1 = uw_install_context_1();" (assignment_expression "uVar1 = uw_install_context_1()" identifier = (call_expression "uw_install_context_1()" identifier (argument_list "()" ( )))) ;) (expression_statement "_Unwind_DebugHook(local_54,local_50,uVar1,uVar1);" (call_expression "_Unwind_DebugHook(local_54,local_50,uVar1,uVar1)" identifier (argument_list "(local_54,local_50,uVar1,uVar1)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(&stack0x00000000 + extraout_EDX) = local_50;" (assignment_expression "*(undefined4 *)(&stack0x00000000 + extraout_EDX) = local_50" (pointer_expression "*(undefined4 *)(&stack0x00000000 + extraout_EDX)" * (cast_expression "(undefined4 *)(&stack0x00000000 + extraout_EDX)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&stack0x00000000 + extraout_EDX)" ( (binary_expression "&stack0x00000000 + extraout_EDX" (pointer_expression "&stack0x00000000" & identifier) + identifier) )))) = identifier) ;) (return_statement "return local_18;" return identifier ;) })))
(translation_unit "int __regparm2\nFUN_002176d0(undefined4 param_1,undefined4 param_2,int param_3,undefined4 param_4,undefined4 param_5\n            )\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  int extraout_EDX;\n  undefined4 *puVar3;\n  undefined4 *puVar4;\n  byte bVar5;\n  undefined4 local_11c [32];\n  undefined4 local_9c [18];\n  undefined4 local_54;\n  undefined4 local_50;\n  int local_18;\n  undefined4 local_14;\n  \n  bVar5 = 0;\n  local_14 = param_2;\n  FUN_00216e00();\n  puVar3 = local_11c;\n  puVar4 = local_9c;\n  for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n    *puVar4 = *puVar3;\n    puVar3 = puVar3 + (uint)bVar5 * -2 + 1;\n    puVar4 = puVar4 + (uint)bVar5 * -2 + 1;\n  }\n  *(undefined4 *)(param_3 + 0xc) = param_4;\n  *(undefined4 *)(param_3 + 0x10) = param_5;\n  iVar2 = FUN_002170a0();\n  if (iVar2 != 7) {\n    return iVar2;\n  }\n  uVar1 = FUN_00217190();\n  FUN_00217580(local_54,local_50,uVar1,uVar1);\n  *(undefined4 *)(&stack0x00000000 + extraout_EDX) = local_50;\n  return local_18;\n}\n\n" (function_definition "int __regparm2\nFUN_002176d0(undefined4 param_1,undefined4 param_2,int param_3,undefined4 param_4,undefined4 param_5\n            )\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  int extraout_EDX;\n  undefined4 *puVar3;\n  undefined4 *puVar4;\n  byte bVar5;\n  undefined4 local_11c [32];\n  undefined4 local_9c [18];\n  undefined4 local_54;\n  undefined4 local_50;\n  int local_18;\n  undefined4 local_14;\n  \n  bVar5 = 0;\n  local_14 = param_2;\n  FUN_00216e00();\n  puVar3 = local_11c;\n  puVar4 = local_9c;\n  for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n    *puVar4 = *puVar3;\n    puVar3 = puVar3 + (uint)bVar5 * -2 + 1;\n    puVar4 = puVar4 + (uint)bVar5 * -2 + 1;\n  }\n  *(undefined4 *)(param_3 + 0xc) = param_4;\n  *(undefined4 *)(param_3 + 0x10) = param_5;\n  iVar2 = FUN_002170a0();\n  if (iVar2 != 7) {\n    return iVar2;\n  }\n  uVar1 = FUN_00217190();\n  FUN_00217580(local_54,local_50,uVar1,uVar1);\n  *(undefined4 *)(&stack0x00000000 + extraout_EDX) = local_50;\n  return local_18;\n}" primitive_type (ERROR "__regparm2" identifier) (function_declarator "FUN_002176d0(undefined4 param_1,undefined4 param_2,int param_3,undefined4 param_4,undefined4 param_5\n            )" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,int param_3,undefined4 param_4,undefined4 param_5\n            )" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  int extraout_EDX;\n  undefined4 *puVar3;\n  undefined4 *puVar4;\n  byte bVar5;\n  undefined4 local_11c [32];\n  undefined4 local_9c [18];\n  undefined4 local_54;\n  undefined4 local_50;\n  int local_18;\n  undefined4 local_14;\n  \n  bVar5 = 0;\n  local_14 = param_2;\n  FUN_00216e00();\n  puVar3 = local_11c;\n  puVar4 = local_9c;\n  for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n    *puVar4 = *puVar3;\n    puVar3 = puVar3 + (uint)bVar5 * -2 + 1;\n    puVar4 = puVar4 + (uint)bVar5 * -2 + 1;\n  }\n  *(undefined4 *)(param_3 + 0xc) = param_4;\n  *(undefined4 *)(param_3 + 0x10) = param_5;\n  iVar2 = FUN_002170a0();\n  if (iVar2 != 7) {\n    return iVar2;\n  }\n  uVar1 = FUN_00217190();\n  FUN_00217580(local_54,local_50,uVar1,uVar1);\n  *(undefined4 *)(&stack0x00000000 + extraout_EDX) = local_50;\n  return local_18;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int extraout_EDX;" primitive_type identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "undefined4 local_11c [32];" type_identifier (array_declarator "local_11c [32]" identifier [ number_literal ]) ;) (declaration "undefined4 local_9c [18];" type_identifier (array_declarator "local_9c [18]" identifier [ number_literal ]) ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "int local_18;" primitive_type identifier ;) (declaration "undefined4 local_14;" type_identifier identifier ;) (expression_statement "bVar5 = 0;" (assignment_expression "bVar5 = 0" identifier = number_literal) ;) (expression_statement "local_14 = param_2;" (assignment_expression "local_14 = param_2" identifier = identifier) ;) (expression_statement "FUN_00216e00();" (call_expression "FUN_00216e00()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar3 = local_11c;" (assignment_expression "puVar3 = local_11c" identifier = identifier) ;) (expression_statement "puVar4 = local_9c;" (assignment_expression "puVar4 = local_9c" identifier = identifier) ;) (for_statement "for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n    *puVar4 = *puVar3;\n    puVar3 = puVar3 + (uint)bVar5 * -2 + 1;\n    puVar4 = puVar4 + (uint)bVar5 * -2 + 1;\n  }" for ( (assignment_expression "iVar2 = 0x20" identifier = number_literal) ; (binary_expression "iVar2 != 0" identifier != number_literal) ; (assignment_expression "iVar2 = iVar2 + -1" identifier = (binary_expression "iVar2 + -1" identifier + number_literal)) ) (compound_statement "{\n    *puVar4 = *puVar3;\n    puVar3 = puVar3 + (uint)bVar5 * -2 + 1;\n    puVar4 = puVar4 + (uint)bVar5 * -2 + 1;\n  }" { (expression_statement "*puVar4 = *puVar3;" (assignment_expression "*puVar4 = *puVar3" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar3" * identifier)) ;) (expression_statement "puVar3 = puVar3 + (uint)bVar5 * -2 + 1;" (assignment_expression "puVar3 = puVar3 + (uint)bVar5 * -2 + 1" identifier = (binary_expression "puVar3 + (uint)bVar5 * -2 + 1" (binary_expression "puVar3 + (uint)bVar5 * -2" identifier + (binary_expression "(uint)bVar5 * -2" (cast_expression "(uint)bVar5" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar4 = puVar4 + (uint)bVar5 * -2 + 1;" (assignment_expression "puVar4 = puVar4 + (uint)bVar5 * -2 + 1" identifier = (binary_expression "puVar4 + (uint)bVar5 * -2 + 1" (binary_expression "puVar4 + (uint)bVar5 * -2" identifier + (binary_expression "(uint)bVar5 * -2" (cast_expression "(uint)bVar5" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "*(undefined4 *)(param_3 + 0xc) = param_4;" (assignment_expression "*(undefined4 *)(param_3 + 0xc) = param_4" (pointer_expression "*(undefined4 *)(param_3 + 0xc)" * (cast_expression "(undefined4 *)(param_3 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xc)" ( (binary_expression "param_3 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_3 + 0x10) = param_5;" (assignment_expression "*(undefined4 *)(param_3 + 0x10) = param_5" (pointer_expression "*(undefined4 *)(param_3 + 0x10)" * (cast_expression "(undefined4 *)(param_3 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x10)" ( (binary_expression "param_3 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar2 = FUN_002170a0();" (assignment_expression "iVar2 = FUN_002170a0()" identifier = (call_expression "FUN_002170a0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar2 != 7) {\n    return iVar2;\n  }" if (parenthesized_expression "(iVar2 != 7)" ( (binary_expression "iVar2 != 7" identifier != number_literal) )) (compound_statement "{\n    return iVar2;\n  }" { (return_statement "return iVar2;" return identifier ;) })) (expression_statement "uVar1 = FUN_00217190();" (assignment_expression "uVar1 = FUN_00217190()" identifier = (call_expression "FUN_00217190()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_00217580(local_54,local_50,uVar1,uVar1);" (call_expression "FUN_00217580(local_54,local_50,uVar1,uVar1)" identifier (argument_list "(local_54,local_50,uVar1,uVar1)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(&stack0x00000000 + extraout_EDX) = local_50;" (assignment_expression "*(undefined4 *)(&stack0x00000000 + extraout_EDX) = local_50" (pointer_expression "*(undefined4 *)(&stack0x00000000 + extraout_EDX)" * (cast_expression "(undefined4 *)(&stack0x00000000 + extraout_EDX)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&stack0x00000000 + extraout_EDX)" ( (binary_expression "&stack0x00000000 + extraout_EDX" (pointer_expression "&stack0x00000000" & identifier) + identifier) )))) = identifier) ;) (return_statement "return local_18;" return identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) = IDENT) ;) (return_statement return IDENT ;) })))
(function_definition "int __regparm2\nFUN_002176d0(undefined4 param_1,undefined4 param_2,int param_3,undefined4 param_4,undefined4 param_5\n            )\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  int extraout_EDX;\n  undefined4 *puVar3;\n  undefined4 *puVar4;\n  byte bVar5;\n  undefined4 local_11c [32];\n  undefined4 local_9c [18];\n  undefined4 local_54;\n  undefined4 local_50;\n  int local_18;\n  undefined4 local_14;\n  \n  bVar5 = 0;\n  local_14 = param_2;\n  FUN_00216e00();\n  puVar3 = local_11c;\n  puVar4 = local_9c;\n  for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n    *puVar4 = *puVar3;\n    puVar3 = puVar3 + (uint)bVar5 * -2 + 1;\n    puVar4 = puVar4 + (uint)bVar5 * -2 + 1;\n  }\n  *(undefined4 *)(param_3 + 0xc) = param_4;\n  *(undefined4 *)(param_3 + 0x10) = param_5;\n  iVar2 = FUN_002170a0();\n  if (iVar2 != 7) {\n    return iVar2;\n  }\n  uVar1 = FUN_00217190();\n  FUN_00217580(local_54,local_50,uVar1,uVar1);\n  *(undefined4 *)(&stack0x00000000 + extraout_EDX) = local_50;\n  return local_18;\n}" (primitive_type "int") (ERROR "__regparm2" (identifier "__regparm2")) (function_declarator "FUN_002176d0(undefined4 param_1,undefined4 param_2,int param_3,undefined4 param_4,undefined4 param_5\n            )" (identifier "FUN_002176d0") (parameter_list "(undefined4 param_1,undefined4 param_2,int param_3,undefined4 param_4,undefined4 param_5\n            )" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  int extraout_EDX;\n  undefined4 *puVar3;\n  undefined4 *puVar4;\n  byte bVar5;\n  undefined4 local_11c [32];\n  undefined4 local_9c [18];\n  undefined4 local_54;\n  undefined4 local_50;\n  int local_18;\n  undefined4 local_14;\n  \n  bVar5 = 0;\n  local_14 = param_2;\n  FUN_00216e00();\n  puVar3 = local_11c;\n  puVar4 = local_9c;\n  for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n    *puVar4 = *puVar3;\n    puVar3 = puVar3 + (uint)bVar5 * -2 + 1;\n    puVar4 = puVar4 + (uint)bVar5 * -2 + 1;\n  }\n  *(undefined4 *)(param_3 + 0xc) = param_4;\n  *(undefined4 *)(param_3 + 0x10) = param_5;\n  iVar2 = FUN_002170a0();\n  if (iVar2 != 7) {\n    return iVar2;\n  }\n  uVar1 = FUN_00217190();\n  FUN_00217580(local_54,local_50,uVar1,uVar1);\n  *(undefined4 *)(&stack0x00000000 + extraout_EDX) = local_50;\n  return local_18;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int extraout_EDX;" (primitive_type "int") (identifier "extraout_EDX") (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "byte bVar5;" (type_identifier "byte") (identifier "bVar5") (; ";")) (declaration "undefined4 local_11c [32];" (type_identifier "undefined4") (array_declarator "local_11c [32]" (identifier "local_11c") ([ "[") (number_literal "32") (] "]")) (; ";")) (declaration "undefined4 local_9c [18];" (type_identifier "undefined4") (array_declarator "local_9c [18]" (identifier "local_9c") ([ "[") (number_literal "18") (] "]")) (; ";")) (declaration "undefined4 local_54;" (type_identifier "undefined4") (identifier "local_54") (; ";")) (declaration "undefined4 local_50;" (type_identifier "undefined4") (identifier "local_50") (; ";")) (declaration "int local_18;" (primitive_type "int") (identifier "local_18") (; ";")) (declaration "undefined4 local_14;" (type_identifier "undefined4") (identifier "local_14") (; ";")) (expression_statement "bVar5 = 0;" (assignment_expression "bVar5 = 0" (identifier "bVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_14 = param_2;" (assignment_expression "local_14 = param_2" (identifier "local_14") (= "=") (identifier "param_2")) (; ";")) (expression_statement "FUN_00216e00();" (call_expression "FUN_00216e00()" (identifier "FUN_00216e00") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar3 = local_11c;" (assignment_expression "puVar3 = local_11c" (identifier "puVar3") (= "=") (identifier "local_11c")) (; ";")) (expression_statement "puVar4 = local_9c;" (assignment_expression "puVar4 = local_9c" (identifier "puVar4") (= "=") (identifier "local_9c")) (; ";")) (for_statement "for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n    *puVar4 = *puVar3;\n    puVar3 = puVar3 + (uint)bVar5 * -2 + 1;\n    puVar4 = puVar4 + (uint)bVar5 * -2 + 1;\n  }" (for "for") (( "(") (assignment_expression "iVar2 = 0x20" (identifier "iVar2") (= "=") (number_literal "0x20")) (; ";") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar2 = iVar2 + -1" (identifier "iVar2") (= "=") (binary_expression "iVar2 + -1" (identifier "iVar2") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n    *puVar4 = *puVar3;\n    puVar3 = puVar3 + (uint)bVar5 * -2 + 1;\n    puVar4 = puVar4 + (uint)bVar5 * -2 + 1;\n  }" ({ "{") (expression_statement "*puVar4 = *puVar3;" (assignment_expression "*puVar4 = *puVar3" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (pointer_expression "*puVar3" (* "*") (identifier "puVar3"))) (; ";")) (expression_statement "puVar3 = puVar3 + (uint)bVar5 * -2 + 1;" (assignment_expression "puVar3 = puVar3 + (uint)bVar5 * -2 + 1" (identifier "puVar3") (= "=") (binary_expression "puVar3 + (uint)bVar5 * -2 + 1" (binary_expression "puVar3 + (uint)bVar5 * -2" (identifier "puVar3") (+ "+") (binary_expression "(uint)bVar5 * -2" (cast_expression "(uint)bVar5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar5")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar4 = puVar4 + (uint)bVar5 * -2 + 1;" (assignment_expression "puVar4 = puVar4 + (uint)bVar5 * -2 + 1" (identifier "puVar4") (= "=") (binary_expression "puVar4 + (uint)bVar5 * -2 + 1" (binary_expression "puVar4 + (uint)bVar5 * -2" (identifier "puVar4") (+ "+") (binary_expression "(uint)bVar5 * -2" (cast_expression "(uint)bVar5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar5")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(param_3 + 0xc) = param_4;" (assignment_expression "*(undefined4 *)(param_3 + 0xc) = param_4" (pointer_expression "*(undefined4 *)(param_3 + 0xc)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xc)" (( "(") (binary_expression "param_3 + 0xc" (identifier "param_3") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "*(undefined4 *)(param_3 + 0x10) = param_5;" (assignment_expression "*(undefined4 *)(param_3 + 0x10) = param_5" (pointer_expression "*(undefined4 *)(param_3 + 0x10)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x10)" (( "(") (binary_expression "param_3 + 0x10" (identifier "param_3") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "param_5")) (; ";")) (expression_statement "iVar2 = FUN_002170a0();" (assignment_expression "iVar2 = FUN_002170a0()" (identifier "iVar2") (= "=") (call_expression "FUN_002170a0()" (identifier "FUN_002170a0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar2 != 7) {\n    return iVar2;\n  }" (if "if") (parenthesized_expression "(iVar2 != 7)" (( "(") (binary_expression "iVar2 != 7" (identifier "iVar2") (!= "!=") (number_literal "7")) () ")")) (compound_statement "{\n    return iVar2;\n  }" ({ "{") (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}"))) (expression_statement "uVar1 = FUN_00217190();" (assignment_expression "uVar1 = FUN_00217190()" (identifier "uVar1") (= "=") (call_expression "FUN_00217190()" (identifier "FUN_00217190") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "FUN_00217580(local_54,local_50,uVar1,uVar1);" (call_expression "FUN_00217580(local_54,local_50,uVar1,uVar1)" (identifier "FUN_00217580") (argument_list "(local_54,local_50,uVar1,uVar1)" (( "(") (identifier "local_54") (, ",") (identifier "local_50") (, ",") (identifier "uVar1") (, ",") (identifier "uVar1") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(&stack0x00000000 + extraout_EDX) = local_50;" (assignment_expression "*(undefined4 *)(&stack0x00000000 + extraout_EDX) = local_50" (pointer_expression "*(undefined4 *)(&stack0x00000000 + extraout_EDX)" (* "*") (cast_expression "(undefined4 *)(&stack0x00000000 + extraout_EDX)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&stack0x00000000 + extraout_EDX)" (( "(") (binary_expression "&stack0x00000000 + extraout_EDX" (pointer_expression "&stack0x00000000" (& "&") (identifier "stack0x00000000")) (+ "+") (identifier "extraout_EDX")) () ")")))) (= "=") (identifier "local_50")) (; ";")) (return_statement "return local_18;" (return "return") (identifier "local_18") (; ";")) (} "}")))

int __regparm2
function_1
          (type_1 param_1,type_1 param_2,int var_5,type_1 param_4,type_1 param_5)

{
  type_1 uVar1;
  int var_2;
  int var_9;
  type_1 *var_3;
  type_1 *var_4;
  type_2 bVar5;
  type_1 local_11c [32];
  type_1 local_9c [18];
  type_1 local_54;
  type_1 local_50;
  int local_18;
  type_1 local_14;
  
  bVar5 = 0;
  local_14 = param_2;
  var_1();
  var_3 = local_11c;
  var_4 = local_9c;
  for (var_2 = 0x20; var_2 != 0; var_2 = var_2 + -1) {
    *var_4 = *var_3;
    var_3 = var_3 + (type_3)bVar5 * -2 + 1;
    var_4 = var_4 + (type_3)bVar5 * -2 + 1;
  }
  *(type_1 *)(var_5 + 0xc) = param_4;
  *(type_1 *)(var_5 + 0x10) = param_5;
  var_2 = var_6();
  if (var_2 != 7) {
    return var_2;
  }
  uVar1 = var_7();
  var_8(local_54,local_50,uVar1,uVar1);
  *(type_1 *)(&stack0x00000000 + var_9) = local_50;
  return local_18;
}


(translation_unit (function_definition type: (primitive_type) (ERROR (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (for_statement initializer: (assignment_expression left: (identifier) right: (number_literal)) condition: (binary_expression left: (identifier) right: (number_literal)) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))))) right: (identifier))) (return_statement (identifier)))))

int __regparm2
MASKED(undefined4 param_1,undefined4 param_2,int param_3,undefined4 param_4,undefined4 param_5
            )

{
  undefined4 uVar1;
  int iVar2;
  int extraout_EDX;
  undefined4 *puVar3;
  undefined4 *puVar4;
  byte bVar5;
  undefined4 local_11c [32];
  undefined4 local_9c [18];
  undefined4 local_54;
  undefined4 local_50;
  int local_18;
  undefined4 local_14;
  
  bVar5 = 0;
  local_14 = param_2;
  FUN_00216e00();
  puVar3 = local_11c;
  puVar4 = local_9c;
  for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {
    *puVar4 = *puVar3;
    puVar3 = puVar3 + (uint)bVar5 * -2 + 1;
    puVar4 = puVar4 + (uint)bVar5 * -2 + 1;
  }
  *(undefined4 *)(param_3 + 0xc) = param_4;
  *(undefined4 *)(param_3 + 0x10) = param_5;
  iVar2 = FUN_002170a0();
  if (iVar2 != 7) {
    return iVar2;
  }
  uVar1 = FUN_00217190();
  FUN_00217580(local_54,local_50,uVar1,uVar1);
  *(undefined4 *)(&stack0x00000000 + extraout_EDX) = local_50;
  return local_18;
}

