
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

void __regparm3 swap_2_operands(int xchg1,int xchg2)

{
  undefined4 uVar1;
  uint uVar2;
  uint uVar3;
  i386_op iVar4;
  bfd_reloc_code_real bVar5;
  
  uVar1 = *(undefined4 *)((int)i.types + xchg2 * 8 + 4);
  uVar2 = i.types[xchg2].array[0];
  uVar3 = i.types[xchg1].array[0];
  *(undefined4 *)((int)i.types + xchg2 * 8 + 4) = *(undefined4 *)((int)i.types + xchg1 * 8 + 4);
  i.types[xchg2].array[0] = uVar3;
  *(undefined4 *)((int)i.types + xchg1 * 8 + 4) = uVar1;
  i.types[xchg1].array[0] = uVar2;
  iVar4 = i.op[xchg2];
  i.op[xchg2] = i.op[xchg1];
  i.op[xchg1] = iVar4;
  bVar5 = i.reloc[xchg2];
  i.reloc[xchg2] = i.reloc[xchg1];
  i.reloc[xchg1] = bVar5;
  if (i.mask != (Mask_Operation *)0x0) {
    if ((i.mask)->operand == xchg1) {
      (i.mask)->operand = xchg2;
    }
    else if ((i.mask)->operand == xchg2) {
      (i.mask)->operand = xchg1;
    }
  }
  if (i.broadcast != (Broadcast_Operation *)0x0) {
    if ((i.broadcast)->operand == xchg1) {
      (i.broadcast)->operand = xchg2;
    }
    else if ((i.broadcast)->operand == xchg2) {
      (i.broadcast)->operand = xchg1;
    }
  }
  if (i.rounding != (RC_Operation *)0x0) {
    if ((i.rounding)->operand == xchg1) {
      (i.rounding)->operand = xchg2;
      return;
    }
    if ((i.rounding)->operand == xchg2) {
      (i.rounding)->operand = xchg1;
      return;
    }
  }
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void __regparm3 FUN_0003f1c0(int param_1,int param_2)

{
  int iVar1;
  int iVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  
  iVar1 = param_2 + 0xe;
  iVar2 = param_1 + 0xe;
  uVar3 = *(undefined4 *)(&DAT_00083f64 + iVar1 * 8);
  uVar4 = (&DAT_00083f60)[iVar1 * 2];
  uVar5 = (&DAT_00083f60)[iVar2 * 2];
  *(undefined4 *)(&DAT_00083f64 + iVar1 * 8) = *(undefined4 *)(&DAT_00083f64 + iVar2 * 8);
  (&DAT_00083f60)[iVar1 * 2] = uVar5;
  *(undefined4 *)(&DAT_00083f64 + iVar2 * 8) = uVar3;
  (&DAT_00083f60)[iVar2 * 2] = uVar4;
  uVar3 = (&DAT_00083ff8)[param_2];
  (&DAT_00083ff8)[param_2] = (&DAT_00083ff8)[param_1];
  (&DAT_00083ff8)[param_1] = uVar3;
  uVar3 = (&DAT_00083f60)[param_2 + 0x30];
  (&DAT_00083f60)[param_2 + 0x30] = (&DAT_00083f60)[param_1 + 0x30];
  (&DAT_00083f60)[param_1 + 0x30] = uVar3;
  if (DAT_00084084 != 0) {
    if (*(int *)(DAT_00084084 + 8) == param_1) {
      *(int *)(DAT_00084084 + 8) = param_2;
    }
    else if (*(int *)(DAT_00084084 + 8) == param_2) {
      *(int *)(DAT_00084084 + 8) = param_1;
    }
  }
  if (DAT_0008408c != 0) {
    if (*(int *)(DAT_0008408c + 4) == param_1) {
      *(int *)(DAT_0008408c + 4) = param_2;
    }
    else if (*(int *)(DAT_0008408c + 4) == param_2) {
      *(int *)(DAT_0008408c + 4) = param_1;
    }
  }
  if (DAT_00084088 != 0) {
    if (*(int *)(DAT_00084088 + 4) == param_1) {
      *(int *)(DAT_00084088 + 4) = param_2;
      return;
    }
    if (*(int *)(DAT_00084088 + 4) == param_2) {
      *(int *)(DAT_00084088 + 4) = param_1;
      return;
    }
  }
  return;
}


PUSH EBP
PUSH EDI
LEA EDI,[EDX + 0xe]
PUSH ESI
LEA ESI,[EAX + 0xe]
PUSH EBX
CALL 0x00016020
ADD EBX,0x3be31
SUB ESP,0x14
MOV dword ptr [ESP + 0x4],EDI
MOV dword ptr [ESP],EDX
MOV EDX,dword ptr [ESP + 0x4]
LEA ECX,[EBX + 0x8f60]
MOV EBP,dword ptr [ECX + EDI*0x8 + 0x4]
MOV EDI,dword ptr [ECX + EDI*0x8]
MOV dword ptr [ESP + 0xc],EBP
MOV EBP,dword ptr [ECX + ESI*0x8 + 0x4]
MOV dword ptr [ESP + 0x8],EDI
MOV EDI,dword ptr [ECX + ESI*0x8]
MOV dword ptr [ECX + EDX*0x8 + 0x4],EBP
MOV EBP,dword ptr [ESP + 0xc]
MOV dword ptr [ECX + EDX*0x8],EDI
MOV EDI,dword ptr [ESP + 0x8]
MOV EDX,dword ptr [ESP]
MOV dword ptr [ECX + ESI*0x8 + 0x4],EBP
MOV dword ptr [ECX + ESI*0x8],EDI
LEA ESI,[EBX + EAX*0x4 + 0x8ff0]
LEA EDI,[EBX + EDX*0x4 + 0x8ff0]
MOV EDX,dword ptr [ESI + 0x8]
MOV EBP,dword ptr [EDI + 0x8]
MOV dword ptr [EDI + 0x8],EDX
MOV EDX,dword ptr [ESP]
MOV dword ptr [ESI + 0x8],EBP
LEA ESI,[EAX + 0x30]
LEA EDI,[EDX + 0x30]
MOV EDX,dword ptr [ECX + ESI*0x4]
MOV EBP,dword ptr [ECX + EDI*0x4]
MOV dword ptr [ECX + EDI*0x4],EDX
MOV dword ptr [ECX + ESI*0x4],EBP
MOV ECX,dword ptr [EBX + 0x9084]
TEST ECX,ECX
JZ 0x0003f25d
MOV ESI,dword ptr [ECX + 0x8]
CMP ESI,EAX
JZ 0x0003f298
CMP ESI,dword ptr [ESP]
JZ 0x0003f2c0
MOV ECX,dword ptr [EBX + 0x908c]
TEST ECX,ECX
JZ 0x0003f273
MOV ESI,dword ptr [ECX + 0x4]
CMP ESI,EAX
JZ 0x0003f2b0
CMP ESI,dword ptr [ESP]
JZ 0x0003f2c8
MOV ECX,dword ptr [EBX + 0x9088]
TEST ECX,ECX
JZ 0x0003f289
MOV EBX,dword ptr [ECX + 0x4]
CMP EBX,EAX
JZ 0x0003f2a0
CMP EBX,dword ptr [ESP]
JZ 0x0003f2d0
ADD ESP,0x14
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV ESI,dword ptr [ESP]
MOV dword ptr [ECX + 0x8],ESI
JMP 0x0003f25d
MOV EAX,dword ptr [ESP]
MOV dword ptr [ECX + 0x4],EAX
ADD ESP,0x14
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV ESI,dword ptr [ESP]
MOV dword ptr [ECX + 0x4],ESI
JMP 0x0003f273
MOV dword ptr [ECX + 0x8],EAX
JMP 0x0003f25d
MOV dword ptr [ECX + 0x4],EAX
JMP 0x0003f273
MOV dword ptr [ECX + 0x4],EAX
ADD ESP,0x14
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 FUN_0003f1c0(int param_1,int param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  \n  iVar1 = param_2 + 0xe;\n  iVar2 = param_1 + 0xe;\n  uVar3 = *(undefined4 *)(&DAT_00083f64 + iVar1 * 8);\n  uVar4 = (&DAT_00083f60)[iVar1 * 2];\n  uVar5 = (&DAT_00083f60)[iVar2 * 2];\n  *(undefined4 *)(&DAT_00083f64 + iVar1 * 8) = *(undefined4 *)(&DAT_00083f64 + iVar2 * 8);\n  (&DAT_00083f60)[iVar1 * 2] = uVar5;\n  *(undefined4 *)(&DAT_00083f64 + iVar2 * 8) = uVar3;\n  (&DAT_00083f60)[iVar2 * 2] = uVar4;\n  uVar3 = (&DAT_00083ff8)[param_2];\n  (&DAT_00083ff8)[param_2] = (&DAT_00083ff8)[param_1];\n  (&DAT_00083ff8)[param_1] = uVar3;\n  uVar3 = (&DAT_00083f60)[param_2 + 0x30];\n  (&DAT_00083f60)[param_2 + 0x30] = (&DAT_00083f60)[param_1 + 0x30];\n  (&DAT_00083f60)[param_1 + 0x30] = uVar3;\n  if (DAT_00084084 != 0) {\n    if (*(int *)(DAT_00084084 + 8) == param_1) {\n      *(int *)(DAT_00084084 + 8) = param_2;\n    }\n    else if (*(int *)(DAT_00084084 + 8) == param_2) {\n      *(int *)(DAT_00084084 + 8) = param_1;\n    }\n  }\n  if (DAT_0008408c != 0) {\n    if (*(int *)(DAT_0008408c + 4) == param_1) {\n      *(int *)(DAT_0008408c + 4) = param_2;\n    }\n    else if (*(int *)(DAT_0008408c + 4) == param_2) {\n      *(int *)(DAT_0008408c + 4) = param_1;\n    }\n  }\n  if (DAT_00084088 != 0) {\n    if (*(int *)(DAT_00084088 + 4) == param_1) {\n      *(int *)(DAT_00084088 + 4) = param_2;\n      return;\n    }\n    if (*(int *)(DAT_00084088 + 4) == param_2) {\n      *(int *)(DAT_00084088 + 4) = param_1;\n      return;\n    }\n  }\n  return;\n}\n\n" comment (function_definition "void __regparm3 FUN_0003f1c0(int param_1,int param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  \n  iVar1 = param_2 + 0xe;\n  iVar2 = param_1 + 0xe;\n  uVar3 = *(undefined4 *)(&DAT_00083f64 + iVar1 * 8);\n  uVar4 = (&DAT_00083f60)[iVar1 * 2];\n  uVar5 = (&DAT_00083f60)[iVar2 * 2];\n  *(undefined4 *)(&DAT_00083f64 + iVar1 * 8) = *(undefined4 *)(&DAT_00083f64 + iVar2 * 8);\n  (&DAT_00083f60)[iVar1 * 2] = uVar5;\n  *(undefined4 *)(&DAT_00083f64 + iVar2 * 8) = uVar3;\n  (&DAT_00083f60)[iVar2 * 2] = uVar4;\n  uVar3 = (&DAT_00083ff8)[param_2];\n  (&DAT_00083ff8)[param_2] = (&DAT_00083ff8)[param_1];\n  (&DAT_00083ff8)[param_1] = uVar3;\n  uVar3 = (&DAT_00083f60)[param_2 + 0x30];\n  (&DAT_00083f60)[param_2 + 0x30] = (&DAT_00083f60)[param_1 + 0x30];\n  (&DAT_00083f60)[param_1 + 0x30] = uVar3;\n  if (DAT_00084084 != 0) {\n    if (*(int *)(DAT_00084084 + 8) == param_1) {\n      *(int *)(DAT_00084084 + 8) = param_2;\n    }\n    else if (*(int *)(DAT_00084084 + 8) == param_2) {\n      *(int *)(DAT_00084084 + 8) = param_1;\n    }\n  }\n  if (DAT_0008408c != 0) {\n    if (*(int *)(DAT_0008408c + 4) == param_1) {\n      *(int *)(DAT_0008408c + 4) = param_2;\n    }\n    else if (*(int *)(DAT_0008408c + 4) == param_2) {\n      *(int *)(DAT_0008408c + 4) = param_1;\n    }\n  }\n  if (DAT_00084088 != 0) {\n    if (*(int *)(DAT_00084088 + 4) == param_1) {\n      *(int *)(DAT_00084088 + 4) = param_2;\n      return;\n    }\n    if (*(int *)(DAT_00084088 + 4) == param_2) {\n      *(int *)(DAT_00084088 + 4) = param_1;\n      return;\n    }\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0003f1c0(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  \n  iVar1 = param_2 + 0xe;\n  iVar2 = param_1 + 0xe;\n  uVar3 = *(undefined4 *)(&DAT_00083f64 + iVar1 * 8);\n  uVar4 = (&DAT_00083f60)[iVar1 * 2];\n  uVar5 = (&DAT_00083f60)[iVar2 * 2];\n  *(undefined4 *)(&DAT_00083f64 + iVar1 * 8) = *(undefined4 *)(&DAT_00083f64 + iVar2 * 8);\n  (&DAT_00083f60)[iVar1 * 2] = uVar5;\n  *(undefined4 *)(&DAT_00083f64 + iVar2 * 8) = uVar3;\n  (&DAT_00083f60)[iVar2 * 2] = uVar4;\n  uVar3 = (&DAT_00083ff8)[param_2];\n  (&DAT_00083ff8)[param_2] = (&DAT_00083ff8)[param_1];\n  (&DAT_00083ff8)[param_1] = uVar3;\n  uVar3 = (&DAT_00083f60)[param_2 + 0x30];\n  (&DAT_00083f60)[param_2 + 0x30] = (&DAT_00083f60)[param_1 + 0x30];\n  (&DAT_00083f60)[param_1 + 0x30] = uVar3;\n  if (DAT_00084084 != 0) {\n    if (*(int *)(DAT_00084084 + 8) == param_1) {\n      *(int *)(DAT_00084084 + 8) = param_2;\n    }\n    else if (*(int *)(DAT_00084084 + 8) == param_2) {\n      *(int *)(DAT_00084084 + 8) = param_1;\n    }\n  }\n  if (DAT_0008408c != 0) {\n    if (*(int *)(DAT_0008408c + 4) == param_1) {\n      *(int *)(DAT_0008408c + 4) = param_2;\n    }\n    else if (*(int *)(DAT_0008408c + 4) == param_2) {\n      *(int *)(DAT_0008408c + 4) = param_1;\n    }\n  }\n  if (DAT_00084088 != 0) {\n    if (*(int *)(DAT_00084088 + 4) == param_1) {\n      *(int *)(DAT_00084088 + 4) = param_2;\n      return;\n    }\n    if (*(int *)(DAT_00084088 + 4) == param_2) {\n      *(int *)(DAT_00084088 + 4) = param_1;\n      return;\n    }\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (expression_statement "iVar1 = param_2 + 0xe;" (assignment_expression "iVar1 = param_2 + 0xe" identifier = (binary_expression "param_2 + 0xe" identifier + number_literal)) ;) (expression_statement "iVar2 = param_1 + 0xe;" (assignment_expression "iVar2 = param_1 + 0xe" identifier = (binary_expression "param_1 + 0xe" identifier + number_literal)) ;) (expression_statement "uVar3 = *(undefined4 *)(&DAT_00083f64 + iVar1 * 8);" (assignment_expression "uVar3 = *(undefined4 *)(&DAT_00083f64 + iVar1 * 8)" identifier = (pointer_expression "*(undefined4 *)(&DAT_00083f64 + iVar1 * 8)" * (cast_expression "(undefined4 *)(&DAT_00083f64 + iVar1 * 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00083f64 + iVar1 * 8)" ( (binary_expression "&DAT_00083f64 + iVar1 * 8" (pointer_expression "&DAT_00083f64" & identifier) + (binary_expression "iVar1 * 8" identifier * number_literal)) ))))) ;) (expression_statement "uVar4 = (&DAT_00083f60)[iVar1 * 2];" (assignment_expression "uVar4 = (&DAT_00083f60)[iVar1 * 2]" identifier = (subscript_expression "(&DAT_00083f60)[iVar1 * 2]" (parenthesized_expression "(&DAT_00083f60)" ( (pointer_expression "&DAT_00083f60" & identifier) )) [ (binary_expression "iVar1 * 2" identifier * number_literal) ])) ;) (expression_statement "uVar5 = (&DAT_00083f60)[iVar2 * 2];" (assignment_expression "uVar5 = (&DAT_00083f60)[iVar2 * 2]" identifier = (subscript_expression "(&DAT_00083f60)[iVar2 * 2]" (parenthesized_expression "(&DAT_00083f60)" ( (pointer_expression "&DAT_00083f60" & identifier) )) [ (binary_expression "iVar2 * 2" identifier * number_literal) ])) ;) (expression_statement "*(undefined4 *)(&DAT_00083f64 + iVar1 * 8) = *(undefined4 *)(&DAT_00083f64 + iVar2 * 8);" (assignment_expression "*(undefined4 *)(&DAT_00083f64 + iVar1 * 8) = *(undefined4 *)(&DAT_00083f64 + iVar2 * 8)" (pointer_expression "*(undefined4 *)(&DAT_00083f64 + iVar1 * 8)" * (cast_expression "(undefined4 *)(&DAT_00083f64 + iVar1 * 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00083f64 + iVar1 * 8)" ( (binary_expression "&DAT_00083f64 + iVar1 * 8" (pointer_expression "&DAT_00083f64" & identifier) + (binary_expression "iVar1 * 8" identifier * number_literal)) )))) = (pointer_expression "*(undefined4 *)(&DAT_00083f64 + iVar2 * 8)" * (cast_expression "(undefined4 *)(&DAT_00083f64 + iVar2 * 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00083f64 + iVar2 * 8)" ( (binary_expression "&DAT_00083f64 + iVar2 * 8" (pointer_expression "&DAT_00083f64" & identifier) + (binary_expression "iVar2 * 8" identifier * number_literal)) ))))) ;) (expression_statement "(&DAT_00083f60)[iVar1 * 2] = uVar5;" (assignment_expression "(&DAT_00083f60)[iVar1 * 2] = uVar5" (subscript_expression "(&DAT_00083f60)[iVar1 * 2]" (parenthesized_expression "(&DAT_00083f60)" ( (pointer_expression "&DAT_00083f60" & identifier) )) [ (binary_expression "iVar1 * 2" identifier * number_literal) ]) = identifier) ;) (expression_statement "*(undefined4 *)(&DAT_00083f64 + iVar2 * 8) = uVar3;" (assignment_expression "*(undefined4 *)(&DAT_00083f64 + iVar2 * 8) = uVar3" (pointer_expression "*(undefined4 *)(&DAT_00083f64 + iVar2 * 8)" * (cast_expression "(undefined4 *)(&DAT_00083f64 + iVar2 * 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00083f64 + iVar2 * 8)" ( (binary_expression "&DAT_00083f64 + iVar2 * 8" (pointer_expression "&DAT_00083f64" & identifier) + (binary_expression "iVar2 * 8" identifier * number_literal)) )))) = identifier) ;) (expression_statement "(&DAT_00083f60)[iVar2 * 2] = uVar4;" (assignment_expression "(&DAT_00083f60)[iVar2 * 2] = uVar4" (subscript_expression "(&DAT_00083f60)[iVar2 * 2]" (parenthesized_expression "(&DAT_00083f60)" ( (pointer_expression "&DAT_00083f60" & identifier) )) [ (binary_expression "iVar2 * 2" identifier * number_literal) ]) = identifier) ;) (expression_statement "uVar3 = (&DAT_00083ff8)[param_2];" (assignment_expression "uVar3 = (&DAT_00083ff8)[param_2]" identifier = (subscript_expression "(&DAT_00083ff8)[param_2]" (parenthesized_expression "(&DAT_00083ff8)" ( (pointer_expression "&DAT_00083ff8" & identifier) )) [ identifier ])) ;) (expression_statement "(&DAT_00083ff8)[param_2] = (&DAT_00083ff8)[param_1];" (assignment_expression "(&DAT_00083ff8)[param_2] = (&DAT_00083ff8)[param_1]" (subscript_expression "(&DAT_00083ff8)[param_2]" (parenthesized_expression "(&DAT_00083ff8)" ( (pointer_expression "&DAT_00083ff8" & identifier) )) [ identifier ]) = (subscript_expression "(&DAT_00083ff8)[param_1]" (parenthesized_expression "(&DAT_00083ff8)" ( (pointer_expression "&DAT_00083ff8" & identifier) )) [ identifier ])) ;) (expression_statement "(&DAT_00083ff8)[param_1] = uVar3;" (assignment_expression "(&DAT_00083ff8)[param_1] = uVar3" (subscript_expression "(&DAT_00083ff8)[param_1]" (parenthesized_expression "(&DAT_00083ff8)" ( (pointer_expression "&DAT_00083ff8" & identifier) )) [ identifier ]) = identifier) ;) (expression_statement "uVar3 = (&DAT_00083f60)[param_2 + 0x30];" (assignment_expression "uVar3 = (&DAT_00083f60)[param_2 + 0x30]" identifier = (subscript_expression "(&DAT_00083f60)[param_2 + 0x30]" (parenthesized_expression "(&DAT_00083f60)" ( (pointer_expression "&DAT_00083f60" & identifier) )) [ (binary_expression "param_2 + 0x30" identifier + number_literal) ])) ;) (expression_statement "(&DAT_00083f60)[param_2 + 0x30] = (&DAT_00083f60)[param_1 + 0x30];" (assignment_expression "(&DAT_00083f60)[param_2 + 0x30] = (&DAT_00083f60)[param_1 + 0x30]" (subscript_expression "(&DAT_00083f60)[param_2 + 0x30]" (parenthesized_expression "(&DAT_00083f60)" ( (pointer_expression "&DAT_00083f60" & identifier) )) [ (binary_expression "param_2 + 0x30" identifier + number_literal) ]) = (subscript_expression "(&DAT_00083f60)[param_1 + 0x30]" (parenthesized_expression "(&DAT_00083f60)" ( (pointer_expression "&DAT_00083f60" & identifier) )) [ (binary_expression "param_1 + 0x30" identifier + number_literal) ])) ;) (expression_statement "(&DAT_00083f60)[param_1 + 0x30] = uVar3;" (assignment_expression "(&DAT_00083f60)[param_1 + 0x30] = uVar3" (subscript_expression "(&DAT_00083f60)[param_1 + 0x30]" (parenthesized_expression "(&DAT_00083f60)" ( (pointer_expression "&DAT_00083f60" & identifier) )) [ (binary_expression "param_1 + 0x30" identifier + number_literal) ]) = identifier) ;) (if_statement "if (DAT_00084084 != 0) {\n    if (*(int *)(DAT_00084084 + 8) == param_1) {\n      *(int *)(DAT_00084084 + 8) = param_2;\n    }\n    else if (*(int *)(DAT_00084084 + 8) == param_2) {\n      *(int *)(DAT_00084084 + 8) = param_1;\n    }\n  }" if (parenthesized_expression "(DAT_00084084 != 0)" ( (binary_expression "DAT_00084084 != 0" identifier != number_literal) )) (compound_statement "{\n    if (*(int *)(DAT_00084084 + 8) == param_1) {\n      *(int *)(DAT_00084084 + 8) = param_2;\n    }\n    else if (*(int *)(DAT_00084084 + 8) == param_2) {\n      *(int *)(DAT_00084084 + 8) = param_1;\n    }\n  }" { (if_statement "if (*(int *)(DAT_00084084 + 8) == param_1) {\n      *(int *)(DAT_00084084 + 8) = param_2;\n    }\n    else if (*(int *)(DAT_00084084 + 8) == param_2) {\n      *(int *)(DAT_00084084 + 8) = param_1;\n    }" if (parenthesized_expression "(*(int *)(DAT_00084084 + 8) == param_1)" ( (binary_expression "*(int *)(DAT_00084084 + 8) == param_1" (pointer_expression "*(int *)(DAT_00084084 + 8)" * (cast_expression "(int *)(DAT_00084084 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00084084 + 8)" ( (binary_expression "DAT_00084084 + 8" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n      *(int *)(DAT_00084084 + 8) = param_2;\n    }" { (expression_statement "*(int *)(DAT_00084084 + 8) = param_2;" (assignment_expression "*(int *)(DAT_00084084 + 8) = param_2" (pointer_expression "*(int *)(DAT_00084084 + 8)" * (cast_expression "(int *)(DAT_00084084 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00084084 + 8)" ( (binary_expression "DAT_00084084 + 8" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else if (*(int *)(DAT_00084084 + 8) == param_2) {\n      *(int *)(DAT_00084084 + 8) = param_1;\n    }" else (if_statement "if (*(int *)(DAT_00084084 + 8) == param_2) {\n      *(int *)(DAT_00084084 + 8) = param_1;\n    }" if (parenthesized_expression "(*(int *)(DAT_00084084 + 8) == param_2)" ( (binary_expression "*(int *)(DAT_00084084 + 8) == param_2" (pointer_expression "*(int *)(DAT_00084084 + 8)" * (cast_expression "(int *)(DAT_00084084 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00084084 + 8)" ( (binary_expression "DAT_00084084 + 8" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n      *(int *)(DAT_00084084 + 8) = param_1;\n    }" { (expression_statement "*(int *)(DAT_00084084 + 8) = param_1;" (assignment_expression "*(int *)(DAT_00084084 + 8) = param_1" (pointer_expression "*(int *)(DAT_00084084 + 8)" * (cast_expression "(int *)(DAT_00084084 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00084084 + 8)" ( (binary_expression "DAT_00084084 + 8" identifier + number_literal) )))) = identifier) ;) })))) })) (if_statement "if (DAT_0008408c != 0) {\n    if (*(int *)(DAT_0008408c + 4) == param_1) {\n      *(int *)(DAT_0008408c + 4) = param_2;\n    }\n    else if (*(int *)(DAT_0008408c + 4) == param_2) {\n      *(int *)(DAT_0008408c + 4) = param_1;\n    }\n  }" if (parenthesized_expression "(DAT_0008408c != 0)" ( (binary_expression "DAT_0008408c != 0" identifier != number_literal) )) (compound_statement "{\n    if (*(int *)(DAT_0008408c + 4) == param_1) {\n      *(int *)(DAT_0008408c + 4) = param_2;\n    }\n    else if (*(int *)(DAT_0008408c + 4) == param_2) {\n      *(int *)(DAT_0008408c + 4) = param_1;\n    }\n  }" { (if_statement "if (*(int *)(DAT_0008408c + 4) == param_1) {\n      *(int *)(DAT_0008408c + 4) = param_2;\n    }\n    else if (*(int *)(DAT_0008408c + 4) == param_2) {\n      *(int *)(DAT_0008408c + 4) = param_1;\n    }" if (parenthesized_expression "(*(int *)(DAT_0008408c + 4) == param_1)" ( (binary_expression "*(int *)(DAT_0008408c + 4) == param_1" (pointer_expression "*(int *)(DAT_0008408c + 4)" * (cast_expression "(int *)(DAT_0008408c + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0008408c + 4)" ( (binary_expression "DAT_0008408c + 4" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n      *(int *)(DAT_0008408c + 4) = param_2;\n    }" { (expression_statement "*(int *)(DAT_0008408c + 4) = param_2;" (assignment_expression "*(int *)(DAT_0008408c + 4) = param_2" (pointer_expression "*(int *)(DAT_0008408c + 4)" * (cast_expression "(int *)(DAT_0008408c + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0008408c + 4)" ( (binary_expression "DAT_0008408c + 4" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else if (*(int *)(DAT_0008408c + 4) == param_2) {\n      *(int *)(DAT_0008408c + 4) = param_1;\n    }" else (if_statement "if (*(int *)(DAT_0008408c + 4) == param_2) {\n      *(int *)(DAT_0008408c + 4) = param_1;\n    }" if (parenthesized_expression "(*(int *)(DAT_0008408c + 4) == param_2)" ( (binary_expression "*(int *)(DAT_0008408c + 4) == param_2" (pointer_expression "*(int *)(DAT_0008408c + 4)" * (cast_expression "(int *)(DAT_0008408c + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0008408c + 4)" ( (binary_expression "DAT_0008408c + 4" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n      *(int *)(DAT_0008408c + 4) = param_1;\n    }" { (expression_statement "*(int *)(DAT_0008408c + 4) = param_1;" (assignment_expression "*(int *)(DAT_0008408c + 4) = param_1" (pointer_expression "*(int *)(DAT_0008408c + 4)" * (cast_expression "(int *)(DAT_0008408c + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0008408c + 4)" ( (binary_expression "DAT_0008408c + 4" identifier + number_literal) )))) = identifier) ;) })))) })) (if_statement "if (DAT_00084088 != 0) {\n    if (*(int *)(DAT_00084088 + 4) == param_1) {\n      *(int *)(DAT_00084088 + 4) = param_2;\n      return;\n    }\n    if (*(int *)(DAT_00084088 + 4) == param_2) {\n      *(int *)(DAT_00084088 + 4) = param_1;\n      return;\n    }\n  }" if (parenthesized_expression "(DAT_00084088 != 0)" ( (binary_expression "DAT_00084088 != 0" identifier != number_literal) )) (compound_statement "{\n    if (*(int *)(DAT_00084088 + 4) == param_1) {\n      *(int *)(DAT_00084088 + 4) = param_2;\n      return;\n    }\n    if (*(int *)(DAT_00084088 + 4) == param_2) {\n      *(int *)(DAT_00084088 + 4) = param_1;\n      return;\n    }\n  }" { (if_statement "if (*(int *)(DAT_00084088 + 4) == param_1) {\n      *(int *)(DAT_00084088 + 4) = param_2;\n      return;\n    }" if (parenthesized_expression "(*(int *)(DAT_00084088 + 4) == param_1)" ( (binary_expression "*(int *)(DAT_00084088 + 4) == param_1" (pointer_expression "*(int *)(DAT_00084088 + 4)" * (cast_expression "(int *)(DAT_00084088 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00084088 + 4)" ( (binary_expression "DAT_00084088 + 4" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n      *(int *)(DAT_00084088 + 4) = param_2;\n      return;\n    }" { (expression_statement "*(int *)(DAT_00084088 + 4) = param_2;" (assignment_expression "*(int *)(DAT_00084088 + 4) = param_2" (pointer_expression "*(int *)(DAT_00084088 + 4)" * (cast_expression "(int *)(DAT_00084088 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00084088 + 4)" ( (binary_expression "DAT_00084088 + 4" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) (if_statement "if (*(int *)(DAT_00084088 + 4) == param_2) {\n      *(int *)(DAT_00084088 + 4) = param_1;\n      return;\n    }" if (parenthesized_expression "(*(int *)(DAT_00084088 + 4) == param_2)" ( (binary_expression "*(int *)(DAT_00084088 + 4) == param_2" (pointer_expression "*(int *)(DAT_00084088 + 4)" * (cast_expression "(int *)(DAT_00084088 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00084088 + 4)" ( (binary_expression "DAT_00084088 + 4" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n      *(int *)(DAT_00084088 + 4) = param_1;\n      return;\n    }" { (expression_statement "*(int *)(DAT_00084088 + 4) = param_1;" (assignment_expression "*(int *)(DAT_00084088 + 4) = param_1" (pointer_expression "*(int *)(DAT_00084088 + 4)" * (cast_expression "(int *)(DAT_00084088 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00084088 + 4)" ( (binary_expression "DAT_00084088 + 4" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nvoid __regparm3 swap_2_operands(int xchg1,int xchg2)\n\n{\n  undefined4 uVar1;\n  uint uVar2;\n  uint uVar3;\n  i386_op iVar4;\n  bfd_reloc_code_real bVar5;\n  \n  uVar1 = *(undefined4 *)((int)i.types + xchg2 * 8 + 4);\n  uVar2 = i.types[xchg2].array[0];\n  uVar3 = i.types[xchg1].array[0];\n  *(undefined4 *)((int)i.types + xchg2 * 8 + 4) = *(undefined4 *)((int)i.types + xchg1 * 8 + 4);\n  i.types[xchg2].array[0] = uVar3;\n  *(undefined4 *)((int)i.types + xchg1 * 8 + 4) = uVar1;\n  i.types[xchg1].array[0] = uVar2;\n  iVar4 = i.op[xchg2];\n  i.op[xchg2] = i.op[xchg1];\n  i.op[xchg1] = iVar4;\n  bVar5 = i.reloc[xchg2];\n  i.reloc[xchg2] = i.reloc[xchg1];\n  i.reloc[xchg1] = bVar5;\n  if (i.mask != (Mask_Operation *)0x0) {\n    if ((i.mask)->operand == xchg1) {\n      (i.mask)->operand = xchg2;\n    }\n    else if ((i.mask)->operand == xchg2) {\n      (i.mask)->operand = xchg1;\n    }\n  }\n  if (i.broadcast != (Broadcast_Operation *)0x0) {\n    if ((i.broadcast)->operand == xchg1) {\n      (i.broadcast)->operand = xchg2;\n    }\n    else if ((i.broadcast)->operand == xchg2) {\n      (i.broadcast)->operand = xchg1;\n    }\n  }\n  if (i.rounding != (RC_Operation *)0x0) {\n    if ((i.rounding)->operand == xchg1) {\n      (i.rounding)->operand = xchg2;\n      return;\n    }\n    if ((i.rounding)->operand == xchg2) {\n      (i.rounding)->operand = xchg1;\n      return;\n    }\n  }\n  return;\n}\n\n" comment comment (function_definition "void __regparm3 swap_2_operands(int xchg1,int xchg2)\n\n{\n  undefined4 uVar1;\n  uint uVar2;\n  uint uVar3;\n  i386_op iVar4;\n  bfd_reloc_code_real bVar5;\n  \n  uVar1 = *(undefined4 *)((int)i.types + xchg2 * 8 + 4);\n  uVar2 = i.types[xchg2].array[0];\n  uVar3 = i.types[xchg1].array[0];\n  *(undefined4 *)((int)i.types + xchg2 * 8 + 4) = *(undefined4 *)((int)i.types + xchg1 * 8 + 4);\n  i.types[xchg2].array[0] = uVar3;\n  *(undefined4 *)((int)i.types + xchg1 * 8 + 4) = uVar1;\n  i.types[xchg1].array[0] = uVar2;\n  iVar4 = i.op[xchg2];\n  i.op[xchg2] = i.op[xchg1];\n  i.op[xchg1] = iVar4;\n  bVar5 = i.reloc[xchg2];\n  i.reloc[xchg2] = i.reloc[xchg1];\n  i.reloc[xchg1] = bVar5;\n  if (i.mask != (Mask_Operation *)0x0) {\n    if ((i.mask)->operand == xchg1) {\n      (i.mask)->operand = xchg2;\n    }\n    else if ((i.mask)->operand == xchg2) {\n      (i.mask)->operand = xchg1;\n    }\n  }\n  if (i.broadcast != (Broadcast_Operation *)0x0) {\n    if ((i.broadcast)->operand == xchg1) {\n      (i.broadcast)->operand = xchg2;\n    }\n    else if ((i.broadcast)->operand == xchg2) {\n      (i.broadcast)->operand = xchg1;\n    }\n  }\n  if (i.rounding != (RC_Operation *)0x0) {\n    if ((i.rounding)->operand == xchg1) {\n      (i.rounding)->operand = xchg2;\n      return;\n    }\n    if ((i.rounding)->operand == xchg2) {\n      (i.rounding)->operand = xchg1;\n      return;\n    }\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "swap_2_operands(int xchg1,int xchg2)" identifier (parameter_list "(int xchg1,int xchg2)" ( (parameter_declaration "int xchg1" primitive_type identifier) , (parameter_declaration "int xchg2" primitive_type identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  uint uVar2;\n  uint uVar3;\n  i386_op iVar4;\n  bfd_reloc_code_real bVar5;\n  \n  uVar1 = *(undefined4 *)((int)i.types + xchg2 * 8 + 4);\n  uVar2 = i.types[xchg2].array[0];\n  uVar3 = i.types[xchg1].array[0];\n  *(undefined4 *)((int)i.types + xchg2 * 8 + 4) = *(undefined4 *)((int)i.types + xchg1 * 8 + 4);\n  i.types[xchg2].array[0] = uVar3;\n  *(undefined4 *)((int)i.types + xchg1 * 8 + 4) = uVar1;\n  i.types[xchg1].array[0] = uVar2;\n  iVar4 = i.op[xchg2];\n  i.op[xchg2] = i.op[xchg1];\n  i.op[xchg1] = iVar4;\n  bVar5 = i.reloc[xchg2];\n  i.reloc[xchg2] = i.reloc[xchg1];\n  i.reloc[xchg1] = bVar5;\n  if (i.mask != (Mask_Operation *)0x0) {\n    if ((i.mask)->operand == xchg1) {\n      (i.mask)->operand = xchg2;\n    }\n    else if ((i.mask)->operand == xchg2) {\n      (i.mask)->operand = xchg1;\n    }\n  }\n  if (i.broadcast != (Broadcast_Operation *)0x0) {\n    if ((i.broadcast)->operand == xchg1) {\n      (i.broadcast)->operand = xchg2;\n    }\n    else if ((i.broadcast)->operand == xchg2) {\n      (i.broadcast)->operand = xchg1;\n    }\n  }\n  if (i.rounding != (RC_Operation *)0x0) {\n    if ((i.rounding)->operand == xchg1) {\n      (i.rounding)->operand = xchg2;\n      return;\n    }\n    if ((i.rounding)->operand == xchg2) {\n      (i.rounding)->operand = xchg1;\n      return;\n    }\n  }\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "i386_op iVar4;" type_identifier identifier ;) (declaration "bfd_reloc_code_real bVar5;" type_identifier identifier ;) (expression_statement "uVar1 = *(undefined4 *)((int)i.types + xchg2 * 8 + 4);" (assignment_expression "uVar1 = *(undefined4 *)((int)i.types + xchg2 * 8 + 4)" identifier = (pointer_expression "*(undefined4 *)((int)i.types + xchg2 * 8 + 4)" * (cast_expression "(undefined4 *)((int)i.types + xchg2 * 8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)i.types + xchg2 * 8 + 4)" ( (binary_expression "(int)i.types + xchg2 * 8 + 4" (binary_expression "(int)i.types + xchg2 * 8" (cast_expression "(int)i.types" ( (type_descriptor "int" primitive_type) ) (field_expression "i.types" identifier . field_identifier)) + (binary_expression "xchg2 * 8" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "uVar2 = i.types[xchg2].array[0];" (assignment_expression "uVar2 = i.types[xchg2].array[0]" identifier = (subscript_expression "i.types[xchg2].array[0]" (field_expression "i.types[xchg2].array" (subscript_expression "i.types[xchg2]" (field_expression "i.types" identifier . field_identifier) [ identifier ]) . field_identifier) [ number_literal ])) ;) (expression_statement "uVar3 = i.types[xchg1].array[0];" (assignment_expression "uVar3 = i.types[xchg1].array[0]" identifier = (subscript_expression "i.types[xchg1].array[0]" (field_expression "i.types[xchg1].array" (subscript_expression "i.types[xchg1]" (field_expression "i.types" identifier . field_identifier) [ identifier ]) . field_identifier) [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)i.types + xchg2 * 8 + 4) = *(undefined4 *)((int)i.types + xchg1 * 8 + 4);" (assignment_expression "*(undefined4 *)((int)i.types + xchg2 * 8 + 4) = *(undefined4 *)((int)i.types + xchg1 * 8 + 4)" (pointer_expression "*(undefined4 *)((int)i.types + xchg2 * 8 + 4)" * (cast_expression "(undefined4 *)((int)i.types + xchg2 * 8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)i.types + xchg2 * 8 + 4)" ( (binary_expression "(int)i.types + xchg2 * 8 + 4" (binary_expression "(int)i.types + xchg2 * 8" (cast_expression "(int)i.types" ( (type_descriptor "int" primitive_type) ) (field_expression "i.types" identifier . field_identifier)) + (binary_expression "xchg2 * 8" identifier * number_literal)) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)i.types + xchg1 * 8 + 4)" * (cast_expression "(undefined4 *)((int)i.types + xchg1 * 8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)i.types + xchg1 * 8 + 4)" ( (binary_expression "(int)i.types + xchg1 * 8 + 4" (binary_expression "(int)i.types + xchg1 * 8" (cast_expression "(int)i.types" ( (type_descriptor "int" primitive_type) ) (field_expression "i.types" identifier . field_identifier)) + (binary_expression "xchg1 * 8" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "i.types[xchg2].array[0] = uVar3;" (assignment_expression "i.types[xchg2].array[0] = uVar3" (subscript_expression "i.types[xchg2].array[0]" (field_expression "i.types[xchg2].array" (subscript_expression "i.types[xchg2]" (field_expression "i.types" identifier . field_identifier) [ identifier ]) . field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)((int)i.types + xchg1 * 8 + 4) = uVar1;" (assignment_expression "*(undefined4 *)((int)i.types + xchg1 * 8 + 4) = uVar1" (pointer_expression "*(undefined4 *)((int)i.types + xchg1 * 8 + 4)" * (cast_expression "(undefined4 *)((int)i.types + xchg1 * 8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)i.types + xchg1 * 8 + 4)" ( (binary_expression "(int)i.types + xchg1 * 8 + 4" (binary_expression "(int)i.types + xchg1 * 8" (cast_expression "(int)i.types" ( (type_descriptor "int" primitive_type) ) (field_expression "i.types" identifier . field_identifier)) + (binary_expression "xchg1 * 8" identifier * number_literal)) + number_literal) )))) = identifier) ;) (expression_statement "i.types[xchg1].array[0] = uVar2;" (assignment_expression "i.types[xchg1].array[0] = uVar2" (subscript_expression "i.types[xchg1].array[0]" (field_expression "i.types[xchg1].array" (subscript_expression "i.types[xchg1]" (field_expression "i.types" identifier . field_identifier) [ identifier ]) . field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "iVar4 = i.op[xchg2];" (assignment_expression "iVar4 = i.op[xchg2]" identifier = (subscript_expression "i.op[xchg2]" (field_expression "i.op" identifier . field_identifier) [ identifier ])) ;) (expression_statement "i.op[xchg2] = i.op[xchg1];" (assignment_expression "i.op[xchg2] = i.op[xchg1]" (subscript_expression "i.op[xchg2]" (field_expression "i.op" identifier . field_identifier) [ identifier ]) = (subscript_expression "i.op[xchg1]" (field_expression "i.op" identifier . field_identifier) [ identifier ])) ;) (expression_statement "i.op[xchg1] = iVar4;" (assignment_expression "i.op[xchg1] = iVar4" (subscript_expression "i.op[xchg1]" (field_expression "i.op" identifier . field_identifier) [ identifier ]) = identifier) ;) (expression_statement "bVar5 = i.reloc[xchg2];" (assignment_expression "bVar5 = i.reloc[xchg2]" identifier = (subscript_expression "i.reloc[xchg2]" (field_expression "i.reloc" identifier . field_identifier) [ identifier ])) ;) (expression_statement "i.reloc[xchg2] = i.reloc[xchg1];" (assignment_expression "i.reloc[xchg2] = i.reloc[xchg1]" (subscript_expression "i.reloc[xchg2]" (field_expression "i.reloc" identifier . field_identifier) [ identifier ]) = (subscript_expression "i.reloc[xchg1]" (field_expression "i.reloc" identifier . field_identifier) [ identifier ])) ;) (expression_statement "i.reloc[xchg1] = bVar5;" (assignment_expression "i.reloc[xchg1] = bVar5" (subscript_expression "i.reloc[xchg1]" (field_expression "i.reloc" identifier . field_identifier) [ identifier ]) = identifier) ;) (if_statement "if (i.mask != (Mask_Operation *)0x0) {\n    if ((i.mask)->operand == xchg1) {\n      (i.mask)->operand = xchg2;\n    }\n    else if ((i.mask)->operand == xchg2) {\n      (i.mask)->operand = xchg1;\n    }\n  }" if (parenthesized_expression "(i.mask != (Mask_Operation *)0x0)" ( (binary_expression "i.mask != (Mask_Operation *)0x0" (field_expression "i.mask" identifier . field_identifier) != (cast_expression "(Mask_Operation *)0x0" ( (type_descriptor "Mask_Operation *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if ((i.mask)->operand == xchg1) {\n      (i.mask)->operand = xchg2;\n    }\n    else if ((i.mask)->operand == xchg2) {\n      (i.mask)->operand = xchg1;\n    }\n  }" { (if_statement "if ((i.mask)->operand == xchg1) {\n      (i.mask)->operand = xchg2;\n    }\n    else if ((i.mask)->operand == xchg2) {\n      (i.mask)->operand = xchg1;\n    }" if (parenthesized_expression "((i.mask)->operand == xchg1)" ( (binary_expression "(i.mask)->operand == xchg1" (field_expression "(i.mask)->operand" (parenthesized_expression "(i.mask)" ( (field_expression "i.mask" identifier . field_identifier) )) -> field_identifier) == identifier) )) (compound_statement "{\n      (i.mask)->operand = xchg2;\n    }" { (expression_statement "(i.mask)->operand = xchg2;" (assignment_expression "(i.mask)->operand = xchg2" (field_expression "(i.mask)->operand" (parenthesized_expression "(i.mask)" ( (field_expression "i.mask" identifier . field_identifier) )) -> field_identifier) = identifier) ;) }) (else_clause "else if ((i.mask)->operand == xchg2) {\n      (i.mask)->operand = xchg1;\n    }" else (if_statement "if ((i.mask)->operand == xchg2) {\n      (i.mask)->operand = xchg1;\n    }" if (parenthesized_expression "((i.mask)->operand == xchg2)" ( (binary_expression "(i.mask)->operand == xchg2" (field_expression "(i.mask)->operand" (parenthesized_expression "(i.mask)" ( (field_expression "i.mask" identifier . field_identifier) )) -> field_identifier) == identifier) )) (compound_statement "{\n      (i.mask)->operand = xchg1;\n    }" { (expression_statement "(i.mask)->operand = xchg1;" (assignment_expression "(i.mask)->operand = xchg1" (field_expression "(i.mask)->operand" (parenthesized_expression "(i.mask)" ( (field_expression "i.mask" identifier . field_identifier) )) -> field_identifier) = identifier) ;) })))) })) (if_statement "if (i.broadcast != (Broadcast_Operation *)0x0) {\n    if ((i.broadcast)->operand == xchg1) {\n      (i.broadcast)->operand = xchg2;\n    }\n    else if ((i.broadcast)->operand == xchg2) {\n      (i.broadcast)->operand = xchg1;\n    }\n  }" if (parenthesized_expression "(i.broadcast != (Broadcast_Operation *)0x0)" ( (binary_expression "i.broadcast != (Broadcast_Operation *)0x0" (field_expression "i.broadcast" identifier . field_identifier) != (cast_expression "(Broadcast_Operation *)0x0" ( (type_descriptor "Broadcast_Operation *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if ((i.broadcast)->operand == xchg1) {\n      (i.broadcast)->operand = xchg2;\n    }\n    else if ((i.broadcast)->operand == xchg2) {\n      (i.broadcast)->operand = xchg1;\n    }\n  }" { (if_statement "if ((i.broadcast)->operand == xchg1) {\n      (i.broadcast)->operand = xchg2;\n    }\n    else if ((i.broadcast)->operand == xchg2) {\n      (i.broadcast)->operand = xchg1;\n    }" if (parenthesized_expression "((i.broadcast)->operand == xchg1)" ( (binary_expression "(i.broadcast)->operand == xchg1" (field_expression "(i.broadcast)->operand" (parenthesized_expression "(i.broadcast)" ( (field_expression "i.broadcast" identifier . field_identifier) )) -> field_identifier) == identifier) )) (compound_statement "{\n      (i.broadcast)->operand = xchg2;\n    }" { (expression_statement "(i.broadcast)->operand = xchg2;" (assignment_expression "(i.broadcast)->operand = xchg2" (field_expression "(i.broadcast)->operand" (parenthesized_expression "(i.broadcast)" ( (field_expression "i.broadcast" identifier . field_identifier) )) -> field_identifier) = identifier) ;) }) (else_clause "else if ((i.broadcast)->operand == xchg2) {\n      (i.broadcast)->operand = xchg1;\n    }" else (if_statement "if ((i.broadcast)->operand == xchg2) {\n      (i.broadcast)->operand = xchg1;\n    }" if (parenthesized_expression "((i.broadcast)->operand == xchg2)" ( (binary_expression "(i.broadcast)->operand == xchg2" (field_expression "(i.broadcast)->operand" (parenthesized_expression "(i.broadcast)" ( (field_expression "i.broadcast" identifier . field_identifier) )) -> field_identifier) == identifier) )) (compound_statement "{\n      (i.broadcast)->operand = xchg1;\n    }" { (expression_statement "(i.broadcast)->operand = xchg1;" (assignment_expression "(i.broadcast)->operand = xchg1" (field_expression "(i.broadcast)->operand" (parenthesized_expression "(i.broadcast)" ( (field_expression "i.broadcast" identifier . field_identifier) )) -> field_identifier) = identifier) ;) })))) })) (if_statement "if (i.rounding != (RC_Operation *)0x0) {\n    if ((i.rounding)->operand == xchg1) {\n      (i.rounding)->operand = xchg2;\n      return;\n    }\n    if ((i.rounding)->operand == xchg2) {\n      (i.rounding)->operand = xchg1;\n      return;\n    }\n  }" if (parenthesized_expression "(i.rounding != (RC_Operation *)0x0)" ( (binary_expression "i.rounding != (RC_Operation *)0x0" (field_expression "i.rounding" identifier . field_identifier) != (cast_expression "(RC_Operation *)0x0" ( (type_descriptor "RC_Operation *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if ((i.rounding)->operand == xchg1) {\n      (i.rounding)->operand = xchg2;\n      return;\n    }\n    if ((i.rounding)->operand == xchg2) {\n      (i.rounding)->operand = xchg1;\n      return;\n    }\n  }" { (if_statement "if ((i.rounding)->operand == xchg1) {\n      (i.rounding)->operand = xchg2;\n      return;\n    }" if (parenthesized_expression "((i.rounding)->operand == xchg1)" ( (binary_expression "(i.rounding)->operand == xchg1" (field_expression "(i.rounding)->operand" (parenthesized_expression "(i.rounding)" ( (field_expression "i.rounding" identifier . field_identifier) )) -> field_identifier) == identifier) )) (compound_statement "{\n      (i.rounding)->operand = xchg2;\n      return;\n    }" { (expression_statement "(i.rounding)->operand = xchg2;" (assignment_expression "(i.rounding)->operand = xchg2" (field_expression "(i.rounding)->operand" (parenthesized_expression "(i.rounding)" ( (field_expression "i.rounding" identifier . field_identifier) )) -> field_identifier) = identifier) ;) (return_statement "return;" return ;) })) (if_statement "if ((i.rounding)->operand == xchg2) {\n      (i.rounding)->operand = xchg1;\n      return;\n    }" if (parenthesized_expression "((i.rounding)->operand == xchg2)" ( (binary_expression "(i.rounding)->operand == xchg2" (field_expression "(i.rounding)->operand" (parenthesized_expression "(i.rounding)" ( (field_expression "i.rounding" identifier . field_identifier) )) -> field_identifier) == identifier) )) (compound_statement "{\n      (i.rounding)->operand = xchg1;\n      return;\n    }" { (expression_statement "(i.rounding)->operand = xchg1;" (assignment_expression "(i.rounding)->operand = xchg1" (field_expression "(i.rounding)->operand" (parenthesized_expression "(i.rounding)" ( (field_expression "i.rounding" identifier . field_identifier) )) -> field_identifier) = identifier) ;) (return_statement "return;" return ;) })) })) (return_statement "return;" return ;) })))
(translation_unit "void __regparm3 FUN_0003f1c0(int param_1,int param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  \n  iVar1 = param_2 + 0xe;\n  iVar2 = param_1 + 0xe;\n  uVar3 = *(undefined4 *)(&DAT_00083f64 + iVar1 * 8);\n  uVar4 = (&DAT_00083f60)[iVar1 * 2];\n  uVar5 = (&DAT_00083f60)[iVar2 * 2];\n  *(undefined4 *)(&DAT_00083f64 + iVar1 * 8) = *(undefined4 *)(&DAT_00083f64 + iVar2 * 8);\n  (&DAT_00083f60)[iVar1 * 2] = uVar5;\n  *(undefined4 *)(&DAT_00083f64 + iVar2 * 8) = uVar3;\n  (&DAT_00083f60)[iVar2 * 2] = uVar4;\n  uVar3 = (&DAT_00083ff8)[param_2];\n  (&DAT_00083ff8)[param_2] = (&DAT_00083ff8)[param_1];\n  (&DAT_00083ff8)[param_1] = uVar3;\n  uVar3 = (&DAT_00083f60)[param_2 + 0x30];\n  (&DAT_00083f60)[param_2 + 0x30] = (&DAT_00083f60)[param_1 + 0x30];\n  (&DAT_00083f60)[param_1 + 0x30] = uVar3;\n  if (DAT_00084084 != 0) {\n    if (*(int *)(DAT_00084084 + 8) == param_1) {\n      *(int *)(DAT_00084084 + 8) = param_2;\n    }\n    else if (*(int *)(DAT_00084084 + 8) == param_2) {\n      *(int *)(DAT_00084084 + 8) = param_1;\n    }\n  }\n  if (DAT_0008408c != 0) {\n    if (*(int *)(DAT_0008408c + 4) == param_1) {\n      *(int *)(DAT_0008408c + 4) = param_2;\n    }\n    else if (*(int *)(DAT_0008408c + 4) == param_2) {\n      *(int *)(DAT_0008408c + 4) = param_1;\n    }\n  }\n  if (DAT_00084088 != 0) {\n    if (*(int *)(DAT_00084088 + 4) == param_1) {\n      *(int *)(DAT_00084088 + 4) = param_2;\n      return;\n    }\n    if (*(int *)(DAT_00084088 + 4) == param_2) {\n      *(int *)(DAT_00084088 + 4) = param_1;\n      return;\n    }\n  }\n  return;\n}\n\n" (function_definition "void __regparm3 FUN_0003f1c0(int param_1,int param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  \n  iVar1 = param_2 + 0xe;\n  iVar2 = param_1 + 0xe;\n  uVar3 = *(undefined4 *)(&DAT_00083f64 + iVar1 * 8);\n  uVar4 = (&DAT_00083f60)[iVar1 * 2];\n  uVar5 = (&DAT_00083f60)[iVar2 * 2];\n  *(undefined4 *)(&DAT_00083f64 + iVar1 * 8) = *(undefined4 *)(&DAT_00083f64 + iVar2 * 8);\n  (&DAT_00083f60)[iVar1 * 2] = uVar5;\n  *(undefined4 *)(&DAT_00083f64 + iVar2 * 8) = uVar3;\n  (&DAT_00083f60)[iVar2 * 2] = uVar4;\n  uVar3 = (&DAT_00083ff8)[param_2];\n  (&DAT_00083ff8)[param_2] = (&DAT_00083ff8)[param_1];\n  (&DAT_00083ff8)[param_1] = uVar3;\n  uVar3 = (&DAT_00083f60)[param_2 + 0x30];\n  (&DAT_00083f60)[param_2 + 0x30] = (&DAT_00083f60)[param_1 + 0x30];\n  (&DAT_00083f60)[param_1 + 0x30] = uVar3;\n  if (DAT_00084084 != 0) {\n    if (*(int *)(DAT_00084084 + 8) == param_1) {\n      *(int *)(DAT_00084084 + 8) = param_2;\n    }\n    else if (*(int *)(DAT_00084084 + 8) == param_2) {\n      *(int *)(DAT_00084084 + 8) = param_1;\n    }\n  }\n  if (DAT_0008408c != 0) {\n    if (*(int *)(DAT_0008408c + 4) == param_1) {\n      *(int *)(DAT_0008408c + 4) = param_2;\n    }\n    else if (*(int *)(DAT_0008408c + 4) == param_2) {\n      *(int *)(DAT_0008408c + 4) = param_1;\n    }\n  }\n  if (DAT_00084088 != 0) {\n    if (*(int *)(DAT_00084088 + 4) == param_1) {\n      *(int *)(DAT_00084088 + 4) = param_2;\n      return;\n    }\n    if (*(int *)(DAT_00084088 + 4) == param_2) {\n      *(int *)(DAT_00084088 + 4) = param_1;\n      return;\n    }\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0003f1c0(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  \n  iVar1 = param_2 + 0xe;\n  iVar2 = param_1 + 0xe;\n  uVar3 = *(undefined4 *)(&DAT_00083f64 + iVar1 * 8);\n  uVar4 = (&DAT_00083f60)[iVar1 * 2];\n  uVar5 = (&DAT_00083f60)[iVar2 * 2];\n  *(undefined4 *)(&DAT_00083f64 + iVar1 * 8) = *(undefined4 *)(&DAT_00083f64 + iVar2 * 8);\n  (&DAT_00083f60)[iVar1 * 2] = uVar5;\n  *(undefined4 *)(&DAT_00083f64 + iVar2 * 8) = uVar3;\n  (&DAT_00083f60)[iVar2 * 2] = uVar4;\n  uVar3 = (&DAT_00083ff8)[param_2];\n  (&DAT_00083ff8)[param_2] = (&DAT_00083ff8)[param_1];\n  (&DAT_00083ff8)[param_1] = uVar3;\n  uVar3 = (&DAT_00083f60)[param_2 + 0x30];\n  (&DAT_00083f60)[param_2 + 0x30] = (&DAT_00083f60)[param_1 + 0x30];\n  (&DAT_00083f60)[param_1 + 0x30] = uVar3;\n  if (DAT_00084084 != 0) {\n    if (*(int *)(DAT_00084084 + 8) == param_1) {\n      *(int *)(DAT_00084084 + 8) = param_2;\n    }\n    else if (*(int *)(DAT_00084084 + 8) == param_2) {\n      *(int *)(DAT_00084084 + 8) = param_1;\n    }\n  }\n  if (DAT_0008408c != 0) {\n    if (*(int *)(DAT_0008408c + 4) == param_1) {\n      *(int *)(DAT_0008408c + 4) = param_2;\n    }\n    else if (*(int *)(DAT_0008408c + 4) == param_2) {\n      *(int *)(DAT_0008408c + 4) = param_1;\n    }\n  }\n  if (DAT_00084088 != 0) {\n    if (*(int *)(DAT_00084088 + 4) == param_1) {\n      *(int *)(DAT_00084088 + 4) = param_2;\n      return;\n    }\n    if (*(int *)(DAT_00084088 + 4) == param_2) {\n      *(int *)(DAT_00084088 + 4) = param_1;\n      return;\n    }\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (expression_statement "iVar1 = param_2 + 0xe;" (assignment_expression "iVar1 = param_2 + 0xe" identifier = (binary_expression "param_2 + 0xe" identifier + number_literal)) ;) (expression_statement "iVar2 = param_1 + 0xe;" (assignment_expression "iVar2 = param_1 + 0xe" identifier = (binary_expression "param_1 + 0xe" identifier + number_literal)) ;) (expression_statement "uVar3 = *(undefined4 *)(&DAT_00083f64 + iVar1 * 8);" (assignment_expression "uVar3 = *(undefined4 *)(&DAT_00083f64 + iVar1 * 8)" identifier = (pointer_expression "*(undefined4 *)(&DAT_00083f64 + iVar1 * 8)" * (cast_expression "(undefined4 *)(&DAT_00083f64 + iVar1 * 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00083f64 + iVar1 * 8)" ( (binary_expression "&DAT_00083f64 + iVar1 * 8" (pointer_expression "&DAT_00083f64" & identifier) + (binary_expression "iVar1 * 8" identifier * number_literal)) ))))) ;) (expression_statement "uVar4 = (&DAT_00083f60)[iVar1 * 2];" (assignment_expression "uVar4 = (&DAT_00083f60)[iVar1 * 2]" identifier = (subscript_expression "(&DAT_00083f60)[iVar1 * 2]" (parenthesized_expression "(&DAT_00083f60)" ( (pointer_expression "&DAT_00083f60" & identifier) )) [ (binary_expression "iVar1 * 2" identifier * number_literal) ])) ;) (expression_statement "uVar5 = (&DAT_00083f60)[iVar2 * 2];" (assignment_expression "uVar5 = (&DAT_00083f60)[iVar2 * 2]" identifier = (subscript_expression "(&DAT_00083f60)[iVar2 * 2]" (parenthesized_expression "(&DAT_00083f60)" ( (pointer_expression "&DAT_00083f60" & identifier) )) [ (binary_expression "iVar2 * 2" identifier * number_literal) ])) ;) (expression_statement "*(undefined4 *)(&DAT_00083f64 + iVar1 * 8) = *(undefined4 *)(&DAT_00083f64 + iVar2 * 8);" (assignment_expression "*(undefined4 *)(&DAT_00083f64 + iVar1 * 8) = *(undefined4 *)(&DAT_00083f64 + iVar2 * 8)" (pointer_expression "*(undefined4 *)(&DAT_00083f64 + iVar1 * 8)" * (cast_expression "(undefined4 *)(&DAT_00083f64 + iVar1 * 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00083f64 + iVar1 * 8)" ( (binary_expression "&DAT_00083f64 + iVar1 * 8" (pointer_expression "&DAT_00083f64" & identifier) + (binary_expression "iVar1 * 8" identifier * number_literal)) )))) = (pointer_expression "*(undefined4 *)(&DAT_00083f64 + iVar2 * 8)" * (cast_expression "(undefined4 *)(&DAT_00083f64 + iVar2 * 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00083f64 + iVar2 * 8)" ( (binary_expression "&DAT_00083f64 + iVar2 * 8" (pointer_expression "&DAT_00083f64" & identifier) + (binary_expression "iVar2 * 8" identifier * number_literal)) ))))) ;) (expression_statement "(&DAT_00083f60)[iVar1 * 2] = uVar5;" (assignment_expression "(&DAT_00083f60)[iVar1 * 2] = uVar5" (subscript_expression "(&DAT_00083f60)[iVar1 * 2]" (parenthesized_expression "(&DAT_00083f60)" ( (pointer_expression "&DAT_00083f60" & identifier) )) [ (binary_expression "iVar1 * 2" identifier * number_literal) ]) = identifier) ;) (expression_statement "*(undefined4 *)(&DAT_00083f64 + iVar2 * 8) = uVar3;" (assignment_expression "*(undefined4 *)(&DAT_00083f64 + iVar2 * 8) = uVar3" (pointer_expression "*(undefined4 *)(&DAT_00083f64 + iVar2 * 8)" * (cast_expression "(undefined4 *)(&DAT_00083f64 + iVar2 * 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00083f64 + iVar2 * 8)" ( (binary_expression "&DAT_00083f64 + iVar2 * 8" (pointer_expression "&DAT_00083f64" & identifier) + (binary_expression "iVar2 * 8" identifier * number_literal)) )))) = identifier) ;) (expression_statement "(&DAT_00083f60)[iVar2 * 2] = uVar4;" (assignment_expression "(&DAT_00083f60)[iVar2 * 2] = uVar4" (subscript_expression "(&DAT_00083f60)[iVar2 * 2]" (parenthesized_expression "(&DAT_00083f60)" ( (pointer_expression "&DAT_00083f60" & identifier) )) [ (binary_expression "iVar2 * 2" identifier * number_literal) ]) = identifier) ;) (expression_statement "uVar3 = (&DAT_00083ff8)[param_2];" (assignment_expression "uVar3 = (&DAT_00083ff8)[param_2]" identifier = (subscript_expression "(&DAT_00083ff8)[param_2]" (parenthesized_expression "(&DAT_00083ff8)" ( (pointer_expression "&DAT_00083ff8" & identifier) )) [ identifier ])) ;) (expression_statement "(&DAT_00083ff8)[param_2] = (&DAT_00083ff8)[param_1];" (assignment_expression "(&DAT_00083ff8)[param_2] = (&DAT_00083ff8)[param_1]" (subscript_expression "(&DAT_00083ff8)[param_2]" (parenthesized_expression "(&DAT_00083ff8)" ( (pointer_expression "&DAT_00083ff8" & identifier) )) [ identifier ]) = (subscript_expression "(&DAT_00083ff8)[param_1]" (parenthesized_expression "(&DAT_00083ff8)" ( (pointer_expression "&DAT_00083ff8" & identifier) )) [ identifier ])) ;) (expression_statement "(&DAT_00083ff8)[param_1] = uVar3;" (assignment_expression "(&DAT_00083ff8)[param_1] = uVar3" (subscript_expression "(&DAT_00083ff8)[param_1]" (parenthesized_expression "(&DAT_00083ff8)" ( (pointer_expression "&DAT_00083ff8" & identifier) )) [ identifier ]) = identifier) ;) (expression_statement "uVar3 = (&DAT_00083f60)[param_2 + 0x30];" (assignment_expression "uVar3 = (&DAT_00083f60)[param_2 + 0x30]" identifier = (subscript_expression "(&DAT_00083f60)[param_2 + 0x30]" (parenthesized_expression "(&DAT_00083f60)" ( (pointer_expression "&DAT_00083f60" & identifier) )) [ (binary_expression "param_2 + 0x30" identifier + number_literal) ])) ;) (expression_statement "(&DAT_00083f60)[param_2 + 0x30] = (&DAT_00083f60)[param_1 + 0x30];" (assignment_expression "(&DAT_00083f60)[param_2 + 0x30] = (&DAT_00083f60)[param_1 + 0x30]" (subscript_expression "(&DAT_00083f60)[param_2 + 0x30]" (parenthesized_expression "(&DAT_00083f60)" ( (pointer_expression "&DAT_00083f60" & identifier) )) [ (binary_expression "param_2 + 0x30" identifier + number_literal) ]) = (subscript_expression "(&DAT_00083f60)[param_1 + 0x30]" (parenthesized_expression "(&DAT_00083f60)" ( (pointer_expression "&DAT_00083f60" & identifier) )) [ (binary_expression "param_1 + 0x30" identifier + number_literal) ])) ;) (expression_statement "(&DAT_00083f60)[param_1 + 0x30] = uVar3;" (assignment_expression "(&DAT_00083f60)[param_1 + 0x30] = uVar3" (subscript_expression "(&DAT_00083f60)[param_1 + 0x30]" (parenthesized_expression "(&DAT_00083f60)" ( (pointer_expression "&DAT_00083f60" & identifier) )) [ (binary_expression "param_1 + 0x30" identifier + number_literal) ]) = identifier) ;) (if_statement "if (DAT_00084084 != 0) {\n    if (*(int *)(DAT_00084084 + 8) == param_1) {\n      *(int *)(DAT_00084084 + 8) = param_2;\n    }\n    else if (*(int *)(DAT_00084084 + 8) == param_2) {\n      *(int *)(DAT_00084084 + 8) = param_1;\n    }\n  }" if (parenthesized_expression "(DAT_00084084 != 0)" ( (binary_expression "DAT_00084084 != 0" identifier != number_literal) )) (compound_statement "{\n    if (*(int *)(DAT_00084084 + 8) == param_1) {\n      *(int *)(DAT_00084084 + 8) = param_2;\n    }\n    else if (*(int *)(DAT_00084084 + 8) == param_2) {\n      *(int *)(DAT_00084084 + 8) = param_1;\n    }\n  }" { (if_statement "if (*(int *)(DAT_00084084 + 8) == param_1) {\n      *(int *)(DAT_00084084 + 8) = param_2;\n    }\n    else if (*(int *)(DAT_00084084 + 8) == param_2) {\n      *(int *)(DAT_00084084 + 8) = param_1;\n    }" if (parenthesized_expression "(*(int *)(DAT_00084084 + 8) == param_1)" ( (binary_expression "*(int *)(DAT_00084084 + 8) == param_1" (pointer_expression "*(int *)(DAT_00084084 + 8)" * (cast_expression "(int *)(DAT_00084084 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00084084 + 8)" ( (binary_expression "DAT_00084084 + 8" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n      *(int *)(DAT_00084084 + 8) = param_2;\n    }" { (expression_statement "*(int *)(DAT_00084084 + 8) = param_2;" (assignment_expression "*(int *)(DAT_00084084 + 8) = param_2" (pointer_expression "*(int *)(DAT_00084084 + 8)" * (cast_expression "(int *)(DAT_00084084 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00084084 + 8)" ( (binary_expression "DAT_00084084 + 8" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else if (*(int *)(DAT_00084084 + 8) == param_2) {\n      *(int *)(DAT_00084084 + 8) = param_1;\n    }" else (if_statement "if (*(int *)(DAT_00084084 + 8) == param_2) {\n      *(int *)(DAT_00084084 + 8) = param_1;\n    }" if (parenthesized_expression "(*(int *)(DAT_00084084 + 8) == param_2)" ( (binary_expression "*(int *)(DAT_00084084 + 8) == param_2" (pointer_expression "*(int *)(DAT_00084084 + 8)" * (cast_expression "(int *)(DAT_00084084 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00084084 + 8)" ( (binary_expression "DAT_00084084 + 8" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n      *(int *)(DAT_00084084 + 8) = param_1;\n    }" { (expression_statement "*(int *)(DAT_00084084 + 8) = param_1;" (assignment_expression "*(int *)(DAT_00084084 + 8) = param_1" (pointer_expression "*(int *)(DAT_00084084 + 8)" * (cast_expression "(int *)(DAT_00084084 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00084084 + 8)" ( (binary_expression "DAT_00084084 + 8" identifier + number_literal) )))) = identifier) ;) })))) })) (if_statement "if (DAT_0008408c != 0) {\n    if (*(int *)(DAT_0008408c + 4) == param_1) {\n      *(int *)(DAT_0008408c + 4) = param_2;\n    }\n    else if (*(int *)(DAT_0008408c + 4) == param_2) {\n      *(int *)(DAT_0008408c + 4) = param_1;\n    }\n  }" if (parenthesized_expression "(DAT_0008408c != 0)" ( (binary_expression "DAT_0008408c != 0" identifier != number_literal) )) (compound_statement "{\n    if (*(int *)(DAT_0008408c + 4) == param_1) {\n      *(int *)(DAT_0008408c + 4) = param_2;\n    }\n    else if (*(int *)(DAT_0008408c + 4) == param_2) {\n      *(int *)(DAT_0008408c + 4) = param_1;\n    }\n  }" { (if_statement "if (*(int *)(DAT_0008408c + 4) == param_1) {\n      *(int *)(DAT_0008408c + 4) = param_2;\n    }\n    else if (*(int *)(DAT_0008408c + 4) == param_2) {\n      *(int *)(DAT_0008408c + 4) = param_1;\n    }" if (parenthesized_expression "(*(int *)(DAT_0008408c + 4) == param_1)" ( (binary_expression "*(int *)(DAT_0008408c + 4) == param_1" (pointer_expression "*(int *)(DAT_0008408c + 4)" * (cast_expression "(int *)(DAT_0008408c + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0008408c + 4)" ( (binary_expression "DAT_0008408c + 4" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n      *(int *)(DAT_0008408c + 4) = param_2;\n    }" { (expression_statement "*(int *)(DAT_0008408c + 4) = param_2;" (assignment_expression "*(int *)(DAT_0008408c + 4) = param_2" (pointer_expression "*(int *)(DAT_0008408c + 4)" * (cast_expression "(int *)(DAT_0008408c + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0008408c + 4)" ( (binary_expression "DAT_0008408c + 4" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else if (*(int *)(DAT_0008408c + 4) == param_2) {\n      *(int *)(DAT_0008408c + 4) = param_1;\n    }" else (if_statement "if (*(int *)(DAT_0008408c + 4) == param_2) {\n      *(int *)(DAT_0008408c + 4) = param_1;\n    }" if (parenthesized_expression "(*(int *)(DAT_0008408c + 4) == param_2)" ( (binary_expression "*(int *)(DAT_0008408c + 4) == param_2" (pointer_expression "*(int *)(DAT_0008408c + 4)" * (cast_expression "(int *)(DAT_0008408c + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0008408c + 4)" ( (binary_expression "DAT_0008408c + 4" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n      *(int *)(DAT_0008408c + 4) = param_1;\n    }" { (expression_statement "*(int *)(DAT_0008408c + 4) = param_1;" (assignment_expression "*(int *)(DAT_0008408c + 4) = param_1" (pointer_expression "*(int *)(DAT_0008408c + 4)" * (cast_expression "(int *)(DAT_0008408c + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0008408c + 4)" ( (binary_expression "DAT_0008408c + 4" identifier + number_literal) )))) = identifier) ;) })))) })) (if_statement "if (DAT_00084088 != 0) {\n    if (*(int *)(DAT_00084088 + 4) == param_1) {\n      *(int *)(DAT_00084088 + 4) = param_2;\n      return;\n    }\n    if (*(int *)(DAT_00084088 + 4) == param_2) {\n      *(int *)(DAT_00084088 + 4) = param_1;\n      return;\n    }\n  }" if (parenthesized_expression "(DAT_00084088 != 0)" ( (binary_expression "DAT_00084088 != 0" identifier != number_literal) )) (compound_statement "{\n    if (*(int *)(DAT_00084088 + 4) == param_1) {\n      *(int *)(DAT_00084088 + 4) = param_2;\n      return;\n    }\n    if (*(int *)(DAT_00084088 + 4) == param_2) {\n      *(int *)(DAT_00084088 + 4) = param_1;\n      return;\n    }\n  }" { (if_statement "if (*(int *)(DAT_00084088 + 4) == param_1) {\n      *(int *)(DAT_00084088 + 4) = param_2;\n      return;\n    }" if (parenthesized_expression "(*(int *)(DAT_00084088 + 4) == param_1)" ( (binary_expression "*(int *)(DAT_00084088 + 4) == param_1" (pointer_expression "*(int *)(DAT_00084088 + 4)" * (cast_expression "(int *)(DAT_00084088 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00084088 + 4)" ( (binary_expression "DAT_00084088 + 4" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n      *(int *)(DAT_00084088 + 4) = param_2;\n      return;\n    }" { (expression_statement "*(int *)(DAT_00084088 + 4) = param_2;" (assignment_expression "*(int *)(DAT_00084088 + 4) = param_2" (pointer_expression "*(int *)(DAT_00084088 + 4)" * (cast_expression "(int *)(DAT_00084088 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00084088 + 4)" ( (binary_expression "DAT_00084088 + 4" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) (if_statement "if (*(int *)(DAT_00084088 + 4) == param_2) {\n      *(int *)(DAT_00084088 + 4) = param_1;\n      return;\n    }" if (parenthesized_expression "(*(int *)(DAT_00084088 + 4) == param_2)" ( (binary_expression "*(int *)(DAT_00084088 + 4) == param_2" (pointer_expression "*(int *)(DAT_00084088 + 4)" * (cast_expression "(int *)(DAT_00084088 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00084088 + 4)" ( (binary_expression "DAT_00084088 + 4" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n      *(int *)(DAT_00084088 + 4) = param_1;\n      return;\n    }" { (expression_statement "*(int *)(DAT_00084088 + 4) = param_1;" (assignment_expression "*(int *)(DAT_00084088 + 4) = param_1" (pointer_expression "*(int *)(DAT_00084088 + 4)" * (cast_expression "(int *)(DAT_00084088 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00084088 + 4)" ( (binary_expression "DAT_00084088 + 4" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ])) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ])) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT + LIT) ])) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT + LIT) ]) = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT + LIT) ])) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT + LIT) ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })))) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })))) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return ;) })) })) (return_statement return ;) })))
(function_definition "void __regparm3 FUN_0003f1c0(int param_1,int param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  \n  iVar1 = param_2 + 0xe;\n  iVar2 = param_1 + 0xe;\n  uVar3 = *(undefined4 *)(&DAT_00083f64 + iVar1 * 8);\n  uVar4 = (&DAT_00083f60)[iVar1 * 2];\n  uVar5 = (&DAT_00083f60)[iVar2 * 2];\n  *(undefined4 *)(&DAT_00083f64 + iVar1 * 8) = *(undefined4 *)(&DAT_00083f64 + iVar2 * 8);\n  (&DAT_00083f60)[iVar1 * 2] = uVar5;\n  *(undefined4 *)(&DAT_00083f64 + iVar2 * 8) = uVar3;\n  (&DAT_00083f60)[iVar2 * 2] = uVar4;\n  uVar3 = (&DAT_00083ff8)[param_2];\n  (&DAT_00083ff8)[param_2] = (&DAT_00083ff8)[param_1];\n  (&DAT_00083ff8)[param_1] = uVar3;\n  uVar3 = (&DAT_00083f60)[param_2 + 0x30];\n  (&DAT_00083f60)[param_2 + 0x30] = (&DAT_00083f60)[param_1 + 0x30];\n  (&DAT_00083f60)[param_1 + 0x30] = uVar3;\n  if (DAT_00084084 != 0) {\n    if (*(int *)(DAT_00084084 + 8) == param_1) {\n      *(int *)(DAT_00084084 + 8) = param_2;\n    }\n    else if (*(int *)(DAT_00084084 + 8) == param_2) {\n      *(int *)(DAT_00084084 + 8) = param_1;\n    }\n  }\n  if (DAT_0008408c != 0) {\n    if (*(int *)(DAT_0008408c + 4) == param_1) {\n      *(int *)(DAT_0008408c + 4) = param_2;\n    }\n    else if (*(int *)(DAT_0008408c + 4) == param_2) {\n      *(int *)(DAT_0008408c + 4) = param_1;\n    }\n  }\n  if (DAT_00084088 != 0) {\n    if (*(int *)(DAT_00084088 + 4) == param_1) {\n      *(int *)(DAT_00084088 + 4) = param_2;\n      return;\n    }\n    if (*(int *)(DAT_00084088 + 4) == param_2) {\n      *(int *)(DAT_00084088 + 4) = param_1;\n      return;\n    }\n  }\n  return;\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0003f1c0(int param_1,int param_2)" (identifier "FUN_0003f1c0") (parameter_list "(int param_1,int param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  \n  iVar1 = param_2 + 0xe;\n  iVar2 = param_1 + 0xe;\n  uVar3 = *(undefined4 *)(&DAT_00083f64 + iVar1 * 8);\n  uVar4 = (&DAT_00083f60)[iVar1 * 2];\n  uVar5 = (&DAT_00083f60)[iVar2 * 2];\n  *(undefined4 *)(&DAT_00083f64 + iVar1 * 8) = *(undefined4 *)(&DAT_00083f64 + iVar2 * 8);\n  (&DAT_00083f60)[iVar1 * 2] = uVar5;\n  *(undefined4 *)(&DAT_00083f64 + iVar2 * 8) = uVar3;\n  (&DAT_00083f60)[iVar2 * 2] = uVar4;\n  uVar3 = (&DAT_00083ff8)[param_2];\n  (&DAT_00083ff8)[param_2] = (&DAT_00083ff8)[param_1];\n  (&DAT_00083ff8)[param_1] = uVar3;\n  uVar3 = (&DAT_00083f60)[param_2 + 0x30];\n  (&DAT_00083f60)[param_2 + 0x30] = (&DAT_00083f60)[param_1 + 0x30];\n  (&DAT_00083f60)[param_1 + 0x30] = uVar3;\n  if (DAT_00084084 != 0) {\n    if (*(int *)(DAT_00084084 + 8) == param_1) {\n      *(int *)(DAT_00084084 + 8) = param_2;\n    }\n    else if (*(int *)(DAT_00084084 + 8) == param_2) {\n      *(int *)(DAT_00084084 + 8) = param_1;\n    }\n  }\n  if (DAT_0008408c != 0) {\n    if (*(int *)(DAT_0008408c + 4) == param_1) {\n      *(int *)(DAT_0008408c + 4) = param_2;\n    }\n    else if (*(int *)(DAT_0008408c + 4) == param_2) {\n      *(int *)(DAT_0008408c + 4) = param_1;\n    }\n  }\n  if (DAT_00084088 != 0) {\n    if (*(int *)(DAT_00084088 + 4) == param_1) {\n      *(int *)(DAT_00084088 + 4) = param_2;\n      return;\n    }\n    if (*(int *)(DAT_00084088 + 4) == param_2) {\n      *(int *)(DAT_00084088 + 4) = param_1;\n      return;\n    }\n  }\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (expression_statement "iVar1 = param_2 + 0xe;" (assignment_expression "iVar1 = param_2 + 0xe" (identifier "iVar1") (= "=") (binary_expression "param_2 + 0xe" (identifier "param_2") (+ "+") (number_literal "0xe"))) (; ";")) (expression_statement "iVar2 = param_1 + 0xe;" (assignment_expression "iVar2 = param_1 + 0xe" (identifier "iVar2") (= "=") (binary_expression "param_1 + 0xe" (identifier "param_1") (+ "+") (number_literal "0xe"))) (; ";")) (expression_statement "uVar3 = *(undefined4 *)(&DAT_00083f64 + iVar1 * 8);" (assignment_expression "uVar3 = *(undefined4 *)(&DAT_00083f64 + iVar1 * 8)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(&DAT_00083f64 + iVar1 * 8)" (* "*") (cast_expression "(undefined4 *)(&DAT_00083f64 + iVar1 * 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00083f64 + iVar1 * 8)" (( "(") (binary_expression "&DAT_00083f64 + iVar1 * 8" (pointer_expression "&DAT_00083f64" (& "&") (identifier "DAT_00083f64")) (+ "+") (binary_expression "iVar1 * 8" (identifier "iVar1") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "uVar4 = (&DAT_00083f60)[iVar1 * 2];" (assignment_expression "uVar4 = (&DAT_00083f60)[iVar1 * 2]" (identifier "uVar4") (= "=") (subscript_expression "(&DAT_00083f60)[iVar1 * 2]" (parenthesized_expression "(&DAT_00083f60)" (( "(") (pointer_expression "&DAT_00083f60" (& "&") (identifier "DAT_00083f60")) () ")")) ([ "[") (binary_expression "iVar1 * 2" (identifier "iVar1") (* "*") (number_literal "2")) (] "]"))) (; ";")) (expression_statement "uVar5 = (&DAT_00083f60)[iVar2 * 2];" (assignment_expression "uVar5 = (&DAT_00083f60)[iVar2 * 2]" (identifier "uVar5") (= "=") (subscript_expression "(&DAT_00083f60)[iVar2 * 2]" (parenthesized_expression "(&DAT_00083f60)" (( "(") (pointer_expression "&DAT_00083f60" (& "&") (identifier "DAT_00083f60")) () ")")) ([ "[") (binary_expression "iVar2 * 2" (identifier "iVar2") (* "*") (number_literal "2")) (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(&DAT_00083f64 + iVar1 * 8) = *(undefined4 *)(&DAT_00083f64 + iVar2 * 8);" (assignment_expression "*(undefined4 *)(&DAT_00083f64 + iVar1 * 8) = *(undefined4 *)(&DAT_00083f64 + iVar2 * 8)" (pointer_expression "*(undefined4 *)(&DAT_00083f64 + iVar1 * 8)" (* "*") (cast_expression "(undefined4 *)(&DAT_00083f64 + iVar1 * 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00083f64 + iVar1 * 8)" (( "(") (binary_expression "&DAT_00083f64 + iVar1 * 8" (pointer_expression "&DAT_00083f64" (& "&") (identifier "DAT_00083f64")) (+ "+") (binary_expression "iVar1 * 8" (identifier "iVar1") (* "*") (number_literal "8"))) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(&DAT_00083f64 + iVar2 * 8)" (* "*") (cast_expression "(undefined4 *)(&DAT_00083f64 + iVar2 * 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00083f64 + iVar2 * 8)" (( "(") (binary_expression "&DAT_00083f64 + iVar2 * 8" (pointer_expression "&DAT_00083f64" (& "&") (identifier "DAT_00083f64")) (+ "+") (binary_expression "iVar2 * 8" (identifier "iVar2") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "(&DAT_00083f60)[iVar1 * 2] = uVar5;" (assignment_expression "(&DAT_00083f60)[iVar1 * 2] = uVar5" (subscript_expression "(&DAT_00083f60)[iVar1 * 2]" (parenthesized_expression "(&DAT_00083f60)" (( "(") (pointer_expression "&DAT_00083f60" (& "&") (identifier "DAT_00083f60")) () ")")) ([ "[") (binary_expression "iVar1 * 2" (identifier "iVar1") (* "*") (number_literal "2")) (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "*(undefined4 *)(&DAT_00083f64 + iVar2 * 8) = uVar3;" (assignment_expression "*(undefined4 *)(&DAT_00083f64 + iVar2 * 8) = uVar3" (pointer_expression "*(undefined4 *)(&DAT_00083f64 + iVar2 * 8)" (* "*") (cast_expression "(undefined4 *)(&DAT_00083f64 + iVar2 * 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00083f64 + iVar2 * 8)" (( "(") (binary_expression "&DAT_00083f64 + iVar2 * 8" (pointer_expression "&DAT_00083f64" (& "&") (identifier "DAT_00083f64")) (+ "+") (binary_expression "iVar2 * 8" (identifier "iVar2") (* "*") (number_literal "8"))) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "(&DAT_00083f60)[iVar2 * 2] = uVar4;" (assignment_expression "(&DAT_00083f60)[iVar2 * 2] = uVar4" (subscript_expression "(&DAT_00083f60)[iVar2 * 2]" (parenthesized_expression "(&DAT_00083f60)" (( "(") (pointer_expression "&DAT_00083f60" (& "&") (identifier "DAT_00083f60")) () ")")) ([ "[") (binary_expression "iVar2 * 2" (identifier "iVar2") (* "*") (number_literal "2")) (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "uVar3 = (&DAT_00083ff8)[param_2];" (assignment_expression "uVar3 = (&DAT_00083ff8)[param_2]" (identifier "uVar3") (= "=") (subscript_expression "(&DAT_00083ff8)[param_2]" (parenthesized_expression "(&DAT_00083ff8)" (( "(") (pointer_expression "&DAT_00083ff8" (& "&") (identifier "DAT_00083ff8")) () ")")) ([ "[") (identifier "param_2") (] "]"))) (; ";")) (expression_statement "(&DAT_00083ff8)[param_2] = (&DAT_00083ff8)[param_1];" (assignment_expression "(&DAT_00083ff8)[param_2] = (&DAT_00083ff8)[param_1]" (subscript_expression "(&DAT_00083ff8)[param_2]" (parenthesized_expression "(&DAT_00083ff8)" (( "(") (pointer_expression "&DAT_00083ff8" (& "&") (identifier "DAT_00083ff8")) () ")")) ([ "[") (identifier "param_2") (] "]")) (= "=") (subscript_expression "(&DAT_00083ff8)[param_1]" (parenthesized_expression "(&DAT_00083ff8)" (( "(") (pointer_expression "&DAT_00083ff8" (& "&") (identifier "DAT_00083ff8")) () ")")) ([ "[") (identifier "param_1") (] "]"))) (; ";")) (expression_statement "(&DAT_00083ff8)[param_1] = uVar3;" (assignment_expression "(&DAT_00083ff8)[param_1] = uVar3" (subscript_expression "(&DAT_00083ff8)[param_1]" (parenthesized_expression "(&DAT_00083ff8)" (( "(") (pointer_expression "&DAT_00083ff8" (& "&") (identifier "DAT_00083ff8")) () ")")) ([ "[") (identifier "param_1") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "uVar3 = (&DAT_00083f60)[param_2 + 0x30];" (assignment_expression "uVar3 = (&DAT_00083f60)[param_2 + 0x30]" (identifier "uVar3") (= "=") (subscript_expression "(&DAT_00083f60)[param_2 + 0x30]" (parenthesized_expression "(&DAT_00083f60)" (( "(") (pointer_expression "&DAT_00083f60" (& "&") (identifier "DAT_00083f60")) () ")")) ([ "[") (binary_expression "param_2 + 0x30" (identifier "param_2") (+ "+") (number_literal "0x30")) (] "]"))) (; ";")) (expression_statement "(&DAT_00083f60)[param_2 + 0x30] = (&DAT_00083f60)[param_1 + 0x30];" (assignment_expression "(&DAT_00083f60)[param_2 + 0x30] = (&DAT_00083f60)[param_1 + 0x30]" (subscript_expression "(&DAT_00083f60)[param_2 + 0x30]" (parenthesized_expression "(&DAT_00083f60)" (( "(") (pointer_expression "&DAT_00083f60" (& "&") (identifier "DAT_00083f60")) () ")")) ([ "[") (binary_expression "param_2 + 0x30" (identifier "param_2") (+ "+") (number_literal "0x30")) (] "]")) (= "=") (subscript_expression "(&DAT_00083f60)[param_1 + 0x30]" (parenthesized_expression "(&DAT_00083f60)" (( "(") (pointer_expression "&DAT_00083f60" (& "&") (identifier "DAT_00083f60")) () ")")) ([ "[") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) (] "]"))) (; ";")) (expression_statement "(&DAT_00083f60)[param_1 + 0x30] = uVar3;" (assignment_expression "(&DAT_00083f60)[param_1 + 0x30] = uVar3" (subscript_expression "(&DAT_00083f60)[param_1 + 0x30]" (parenthesized_expression "(&DAT_00083f60)" (( "(") (pointer_expression "&DAT_00083f60" (& "&") (identifier "DAT_00083f60")) () ")")) ([ "[") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) (] "]")) (= "=") (identifier "uVar3")) (; ";")) (if_statement "if (DAT_00084084 != 0) {\n    if (*(int *)(DAT_00084084 + 8) == param_1) {\n      *(int *)(DAT_00084084 + 8) = param_2;\n    }\n    else if (*(int *)(DAT_00084084 + 8) == param_2) {\n      *(int *)(DAT_00084084 + 8) = param_1;\n    }\n  }" (if "if") (parenthesized_expression "(DAT_00084084 != 0)" (( "(") (binary_expression "DAT_00084084 != 0" (identifier "DAT_00084084") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (*(int *)(DAT_00084084 + 8) == param_1) {\n      *(int *)(DAT_00084084 + 8) = param_2;\n    }\n    else if (*(int *)(DAT_00084084 + 8) == param_2) {\n      *(int *)(DAT_00084084 + 8) = param_1;\n    }\n  }" ({ "{") (if_statement "if (*(int *)(DAT_00084084 + 8) == param_1) {\n      *(int *)(DAT_00084084 + 8) = param_2;\n    }\n    else if (*(int *)(DAT_00084084 + 8) == param_2) {\n      *(int *)(DAT_00084084 + 8) = param_1;\n    }" (if "if") (parenthesized_expression "(*(int *)(DAT_00084084 + 8) == param_1)" (( "(") (binary_expression "*(int *)(DAT_00084084 + 8) == param_1" (pointer_expression "*(int *)(DAT_00084084 + 8)" (* "*") (cast_expression "(int *)(DAT_00084084 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00084084 + 8)" (( "(") (binary_expression "DAT_00084084 + 8" (identifier "DAT_00084084") (+ "+") (number_literal "8")) () ")")))) (== "==") (identifier "param_1")) () ")")) (compound_statement "{\n      *(int *)(DAT_00084084 + 8) = param_2;\n    }" ({ "{") (expression_statement "*(int *)(DAT_00084084 + 8) = param_2;" (assignment_expression "*(int *)(DAT_00084084 + 8) = param_2" (pointer_expression "*(int *)(DAT_00084084 + 8)" (* "*") (cast_expression "(int *)(DAT_00084084 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00084084 + 8)" (( "(") (binary_expression "DAT_00084084 + 8" (identifier "DAT_00084084") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (} "}")) (else_clause "else if (*(int *)(DAT_00084084 + 8) == param_2) {\n      *(int *)(DAT_00084084 + 8) = param_1;\n    }" (else "else") (if_statement "if (*(int *)(DAT_00084084 + 8) == param_2) {\n      *(int *)(DAT_00084084 + 8) = param_1;\n    }" (if "if") (parenthesized_expression "(*(int *)(DAT_00084084 + 8) == param_2)" (( "(") (binary_expression "*(int *)(DAT_00084084 + 8) == param_2" (pointer_expression "*(int *)(DAT_00084084 + 8)" (* "*") (cast_expression "(int *)(DAT_00084084 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00084084 + 8)" (( "(") (binary_expression "DAT_00084084 + 8" (identifier "DAT_00084084") (+ "+") (number_literal "8")) () ")")))) (== "==") (identifier "param_2")) () ")")) (compound_statement "{\n      *(int *)(DAT_00084084 + 8) = param_1;\n    }" ({ "{") (expression_statement "*(int *)(DAT_00084084 + 8) = param_1;" (assignment_expression "*(int *)(DAT_00084084 + 8) = param_1" (pointer_expression "*(int *)(DAT_00084084 + 8)" (* "*") (cast_expression "(int *)(DAT_00084084 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00084084 + 8)" (( "(") (binary_expression "DAT_00084084 + 8" (identifier "DAT_00084084") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (} "}"))))) (} "}"))) (if_statement "if (DAT_0008408c != 0) {\n    if (*(int *)(DAT_0008408c + 4) == param_1) {\n      *(int *)(DAT_0008408c + 4) = param_2;\n    }\n    else if (*(int *)(DAT_0008408c + 4) == param_2) {\n      *(int *)(DAT_0008408c + 4) = param_1;\n    }\n  }" (if "if") (parenthesized_expression "(DAT_0008408c != 0)" (( "(") (binary_expression "DAT_0008408c != 0" (identifier "DAT_0008408c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (*(int *)(DAT_0008408c + 4) == param_1) {\n      *(int *)(DAT_0008408c + 4) = param_2;\n    }\n    else if (*(int *)(DAT_0008408c + 4) == param_2) {\n      *(int *)(DAT_0008408c + 4) = param_1;\n    }\n  }" ({ "{") (if_statement "if (*(int *)(DAT_0008408c + 4) == param_1) {\n      *(int *)(DAT_0008408c + 4) = param_2;\n    }\n    else if (*(int *)(DAT_0008408c + 4) == param_2) {\n      *(int *)(DAT_0008408c + 4) = param_1;\n    }" (if "if") (parenthesized_expression "(*(int *)(DAT_0008408c + 4) == param_1)" (( "(") (binary_expression "*(int *)(DAT_0008408c + 4) == param_1" (pointer_expression "*(int *)(DAT_0008408c + 4)" (* "*") (cast_expression "(int *)(DAT_0008408c + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0008408c + 4)" (( "(") (binary_expression "DAT_0008408c + 4" (identifier "DAT_0008408c") (+ "+") (number_literal "4")) () ")")))) (== "==") (identifier "param_1")) () ")")) (compound_statement "{\n      *(int *)(DAT_0008408c + 4) = param_2;\n    }" ({ "{") (expression_statement "*(int *)(DAT_0008408c + 4) = param_2;" (assignment_expression "*(int *)(DAT_0008408c + 4) = param_2" (pointer_expression "*(int *)(DAT_0008408c + 4)" (* "*") (cast_expression "(int *)(DAT_0008408c + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0008408c + 4)" (( "(") (binary_expression "DAT_0008408c + 4" (identifier "DAT_0008408c") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (} "}")) (else_clause "else if (*(int *)(DAT_0008408c + 4) == param_2) {\n      *(int *)(DAT_0008408c + 4) = param_1;\n    }" (else "else") (if_statement "if (*(int *)(DAT_0008408c + 4) == param_2) {\n      *(int *)(DAT_0008408c + 4) = param_1;\n    }" (if "if") (parenthesized_expression "(*(int *)(DAT_0008408c + 4) == param_2)" (( "(") (binary_expression "*(int *)(DAT_0008408c + 4) == param_2" (pointer_expression "*(int *)(DAT_0008408c + 4)" (* "*") (cast_expression "(int *)(DAT_0008408c + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0008408c + 4)" (( "(") (binary_expression "DAT_0008408c + 4" (identifier "DAT_0008408c") (+ "+") (number_literal "4")) () ")")))) (== "==") (identifier "param_2")) () ")")) (compound_statement "{\n      *(int *)(DAT_0008408c + 4) = param_1;\n    }" ({ "{") (expression_statement "*(int *)(DAT_0008408c + 4) = param_1;" (assignment_expression "*(int *)(DAT_0008408c + 4) = param_1" (pointer_expression "*(int *)(DAT_0008408c + 4)" (* "*") (cast_expression "(int *)(DAT_0008408c + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0008408c + 4)" (( "(") (binary_expression "DAT_0008408c + 4" (identifier "DAT_0008408c") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (} "}"))))) (} "}"))) (if_statement "if (DAT_00084088 != 0) {\n    if (*(int *)(DAT_00084088 + 4) == param_1) {\n      *(int *)(DAT_00084088 + 4) = param_2;\n      return;\n    }\n    if (*(int *)(DAT_00084088 + 4) == param_2) {\n      *(int *)(DAT_00084088 + 4) = param_1;\n      return;\n    }\n  }" (if "if") (parenthesized_expression "(DAT_00084088 != 0)" (( "(") (binary_expression "DAT_00084088 != 0" (identifier "DAT_00084088") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (*(int *)(DAT_00084088 + 4) == param_1) {\n      *(int *)(DAT_00084088 + 4) = param_2;\n      return;\n    }\n    if (*(int *)(DAT_00084088 + 4) == param_2) {\n      *(int *)(DAT_00084088 + 4) = param_1;\n      return;\n    }\n  }" ({ "{") (if_statement "if (*(int *)(DAT_00084088 + 4) == param_1) {\n      *(int *)(DAT_00084088 + 4) = param_2;\n      return;\n    }" (if "if") (parenthesized_expression "(*(int *)(DAT_00084088 + 4) == param_1)" (( "(") (binary_expression "*(int *)(DAT_00084088 + 4) == param_1" (pointer_expression "*(int *)(DAT_00084088 + 4)" (* "*") (cast_expression "(int *)(DAT_00084088 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00084088 + 4)" (( "(") (binary_expression "DAT_00084088 + 4" (identifier "DAT_00084088") (+ "+") (number_literal "4")) () ")")))) (== "==") (identifier "param_1")) () ")")) (compound_statement "{\n      *(int *)(DAT_00084088 + 4) = param_2;\n      return;\n    }" ({ "{") (expression_statement "*(int *)(DAT_00084088 + 4) = param_2;" (assignment_expression "*(int *)(DAT_00084088 + 4) = param_2" (pointer_expression "*(int *)(DAT_00084088 + 4)" (* "*") (cast_expression "(int *)(DAT_00084088 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00084088 + 4)" (( "(") (binary_expression "DAT_00084088 + 4" (identifier "DAT_00084088") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (*(int *)(DAT_00084088 + 4) == param_2) {\n      *(int *)(DAT_00084088 + 4) = param_1;\n      return;\n    }" (if "if") (parenthesized_expression "(*(int *)(DAT_00084088 + 4) == param_2)" (( "(") (binary_expression "*(int *)(DAT_00084088 + 4) == param_2" (pointer_expression "*(int *)(DAT_00084088 + 4)" (* "*") (cast_expression "(int *)(DAT_00084088 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00084088 + 4)" (( "(") (binary_expression "DAT_00084088 + 4" (identifier "DAT_00084088") (+ "+") (number_literal "4")) () ")")))) (== "==") (identifier "param_2")) () ")")) (compound_statement "{\n      *(int *)(DAT_00084088 + 4) = param_1;\n      return;\n    }" ({ "{") (expression_statement "*(int *)(DAT_00084088 + 4) = param_1;" (assignment_expression "*(int *)(DAT_00084088 + 4) = param_1" (pointer_expression "*(int *)(DAT_00084088 + 4)" (* "*") (cast_expression "(int *)(DAT_00084088 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00084088 + 4)" (( "(") (binary_expression "DAT_00084088 + 4" (identifier "DAT_00084088") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

void __regparm3 function_1(int var_2,int var_1)

{
  type_1 uVar1;
  type_2 uVar2;
  type_2 uVar3;
  type_3 iVar4;
  type_4 bVar5;
  
  uVar1 = *(type_1 *)((int)i.types + var_1 * 8 + 4);
  uVar2 = i.types[var_1].array[0];
  uVar3 = i.types[var_2].array[0];
  *(type_1 *)((int)i.types + var_1 * 8 + 4) = *(type_1 *)((int)i.types + var_2 * 8 + 4);
  i.types[var_1].array[0] = uVar3;
  *(type_1 *)((int)i.types + var_2 * 8 + 4) = uVar1;
  i.types[var_2].array[0] = uVar2;
  iVar4 = i.op[var_1];
  i.op[var_1] = i.op[var_2];
  i.op[var_2] = iVar4;
  bVar5 = i.reloc[var_1];
  i.reloc[var_1] = i.reloc[var_2];
  i.reloc[var_2] = bVar5;
  if (i.mask != (type_5 *)0x0) {
    if ((i.mask)->operand == var_2) {
      (i.mask)->operand = var_1;
    }
    else if ((i.mask)->operand == var_1) {
      (i.mask)->operand = var_2;
    }
  }
  if (i.broadcast != (type_6 *)0x0) {
    if ((i.broadcast)->operand == var_2) {
      (i.broadcast)->operand = var_1;
    }
    else if ((i.broadcast)->operand == var_1) {
      (i.broadcast)->operand = var_2;
    }
  }
  if (i.rounding != (type_7 *)0x0) {
    if ((i.rounding)->operand == var_2) {
      (i.rounding)->operand = var_1;
      return;
    }
    if ((i.rounding)->operand == var_1) {
      (i.rounding)->operand = var_2;
      return;
    }
  }
  return;
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void __regparm3 MASKED(int param_1,int param_2)

{
  int iVar1;
  int iVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  
  iVar1 = param_2 + 0xe;
  iVar2 = param_1 + 0xe;
  uVar3 = *(undefined4 *)(&DAT_00083f64 + iVar1 * 8);
  uVar4 = (&DAT_00083f60)[iVar1 * 2];
  uVar5 = (&DAT_00083f60)[iVar2 * 2];
  *(undefined4 *)(&DAT_00083f64 + iVar1 * 8) = *(undefined4 *)(&DAT_00083f64 + iVar2 * 8);
  (&DAT_00083f60)[iVar1 * 2] = uVar5;
  *(undefined4 *)(&DAT_00083f64 + iVar2 * 8) = uVar3;
  (&DAT_00083f60)[iVar2 * 2] = uVar4;
  uVar3 = (&DAT_00083ff8)[param_2];
  (&DAT_00083ff8)[param_2] = (&DAT_00083ff8)[param_1];
  (&DAT_00083ff8)[param_1] = uVar3;
  uVar3 = (&DAT_00083f60)[param_2 + 0x30];
  (&DAT_00083f60)[param_2 + 0x30] = (&DAT_00083f60)[param_1 + 0x30];
  (&DAT_00083f60)[param_1 + 0x30] = uVar3;
  if (DAT_00084084 != 0) {
    if (*(int *)(DAT_00084084 + 8) == param_1) {
      *(int *)(DAT_00084084 + 8) = param_2;
    }
    else if (*(int *)(DAT_00084084 + 8) == param_2) {
      *(int *)(DAT_00084084 + 8) = param_1;
    }
  }
  if (DAT_0008408c != 0) {
    if (*(int *)(DAT_0008408c + 4) == param_1) {
      *(int *)(DAT_0008408c + 4) = param_2;
    }
    else if (*(int *)(DAT_0008408c + 4) == param_2) {
      *(int *)(DAT_0008408c + 4) = param_1;
    }
  }
  if (DAT_00084088 != 0) {
    if (*(int *)(DAT_00084088 + 4) == param_1) {
      *(int *)(DAT_00084088 + 4) = param_2;
      return;
    }
    if (*(int *)(DAT_00084088 + 4) == param_2) {
      *(int *)(DAT_00084088 + 4) = param_1;
      return;
    }
  }
  return;
}

