
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: void sRGBTransformImage._omp_fn.20(anon_struct_12_3_5c5126da * param_0)
    */

void __thiscall sRGBTransformImage__omp_fn_20(anon_struct_12_3_5c5126da *this)

{
  double dVar1;
  double dVar2;
  double dVar3;
  double dVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  TransformPacket *pTVar8;
  TransformPacket *pTVar9;
  TransformPacket *pTVar10;
  
  iVar5 = omp_get_num_threads();
  iVar6 = omp_get_thread_num();
  dVar4 = DAT_002a9c60;
  iVar7 = (int)(0x10000 / (longlong)iVar5);
  iVar5 = (int)(0x10000 % (longlong)iVar5);
  if (iVar6 < iVar5) {
    iVar7 = iVar7 + 1;
    iVar5 = 0;
  }
  iVar5 = iVar5 + iVar6 * iVar7;
  iVar7 = iVar7 + iVar5;
  if (iVar5 < iVar7) {
    pTVar8 = this->z_map + iVar5;
    pTVar9 = this->x_map + iVar5;
    pTVar10 = this->y_map + iVar5;
    do {
      dVar1 = (double)iVar5;
      iVar5 = iVar5 + 1;
      pTVar9->x = dVar1 * dVar4;
      dVar3 = (double)DAT_0029f124;
      pTVar9->y = dVar1 * dVar3;
      dVar2 = (double)DAT_002a9b58;
      pTVar9->z = dVar1 * dVar2;
      pTVar10->x = DAT_002a9c68 * dVar1;
      pTVar10->y = dVar1 * (double)DAT_002a7fe8;
      pTVar10->z = dVar1 * dVar3;
      pTVar8->x = dVar1 * dVar4;
      pTVar8->y = dVar1 * (double)DAT_002a9b54;
      pTVar8->z = dVar1 * dVar2;
      pTVar8 = pTVar8 + 1;
      pTVar9 = pTVar9 + 1;
      pTVar10 = pTVar10 + 1;
    } while (iVar7 != iVar5);
  }
  return;
}



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

void FUN_0005f760(int *param_1)

{
  double dVar1;
  double dVar2;
  double dVar3;
  double dVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  double *pdVar8;
  double *pdVar9;
  double *pdVar10;
  
  iVar5 = omp_get_num_threads();
  iVar6 = omp_get_thread_num();
  dVar4 = DAT_002a9c60;
  iVar7 = (int)(0x10000 / (longlong)iVar5);
  iVar5 = (int)(0x10000 % (longlong)iVar5);
  if (iVar6 < iVar5) {
    iVar7 = iVar7 + 1;
    iVar5 = 0;
  }
  iVar5 = iVar5 + iVar6 * iVar7;
  iVar7 = iVar7 + iVar5;
  if (iVar5 < iVar7) {
    iVar6 = iVar5 * 0x18;
    pdVar8 = (double *)(iVar6 + param_1[2]);
    pdVar9 = (double *)(*param_1 + iVar6);
    pdVar10 = (double *)(param_1[1] + iVar6);
    do {
      dVar1 = (double)iVar5;
      iVar5 = iVar5 + 1;
      *pdVar9 = dVar1 * dVar4;
      dVar3 = (double)DAT_0029f124;
      pdVar9[1] = dVar1 * dVar3;
      dVar2 = (double)DAT_002a9b58;
      pdVar9[2] = dVar1 * dVar2;
      *pdVar10 = DAT_002a9c68 * dVar1;
      pdVar10[1] = dVar1 * (double)DAT_002a7fe8;
      pdVar10[2] = dVar1 * dVar3;
      *pdVar8 = dVar1 * dVar4;
      pdVar8[1] = dVar1 * (double)DAT_002a9b54;
      pdVar8[2] = dVar1 * dVar2;
      pdVar8 = pdVar8 + 3;
      pdVar9 = pdVar9 + 3;
      pdVar10 = pdVar10 + 3;
    } while (iVar7 != iVar5);
  }
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00038830
ADD EBX,0x379897
SUB ESP,0x1c
MOV ESI,dword ptr [ESP + 0x30]
CALL 0x00030850
MOV EDI,EAX
CALL 0x000317c0
MOV ECX,EAX
MOV EAX,0x10000
CDQ
IDIV EDI
CMP ECX,EDX
JGE 0x0005f795
ADD EAX,0x1
XOR EDX,EDX
IMUL ECX,EAX
ADD EDX,ECX
ADD EAX,EDX
CMP EDX,EAX
JGE 0x0005f825
MOV EBP,dword ptr [ESI]
LEA ECX,[EDX + EDX*0x2]
MOV EDI,dword ptr [ESI + 0x4]
SHL ECX,0x3
FLD qword ptr [EBX + 0xffed0c60]
ADD EBP,ECX
ADD EDI,ECX
ADD ECX,dword ptr [ESI + 0x8]
LEA ESI,[ESI]
MOV dword ptr [ESP + 0xc],EDX
FILD dword ptr [ESP + 0xc]
ADD EDX,0x1
ADD EBP,0x18
FLD ST0
ADD EDI,0x18
ADD ECX,0x18
FMUL ST2
FST qword ptr [EBP + -0x18]
FLD ST1
FMUL dword ptr [EBX + 0xffec6124]
FST qword ptr [EBP + -0x10]
FLD ST2
FMUL dword ptr [EBX + 0xffed0b58]
FST qword ptr [EBP + -0x8]
FLD qword ptr [EBX + 0xffed0c68]
FMUL ST4
FSTP qword ptr [EDI + -0x18]
FLD ST3
FMUL dword ptr [EBX + 0xffecefe8]
FSTP qword ptr [EDI + -0x10]
FXCH
FSTP qword ptr [EDI + -0x8]
FXCH
FSTP qword ptr [ECX + -0x18]
FXCH
FMUL dword ptr [EBX + 0xffed0b54]
FSTP qword ptr [ECX + -0x10]
FSTP qword ptr [ECX + -0x8]
CMP EAX,EDX
JNZ 0x0005f7c0
FSTP ST0
ADD ESP,0x1c
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 FUN_0005f760(int *param_1)\n\n{\n  double dVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  double *pdVar8;\n  double *pdVar9;\n  double *pdVar10;\n  \n  iVar5 = omp_get_num_threads();\n  iVar6 = omp_get_thread_num();\n  dVar4 = DAT_002a9c60;\n  iVar7 = (int)(0x10000 / (longlong)iVar5);\n  iVar5 = (int)(0x10000 % (longlong)iVar5);\n  if (iVar6 < iVar5) {\n    iVar7 = iVar7 + 1;\n    iVar5 = 0;\n  }\n  iVar5 = iVar5 + iVar6 * iVar7;\n  iVar7 = iVar7 + iVar5;\n  if (iVar5 < iVar7) {\n    iVar6 = iVar5 * 0x18;\n    pdVar8 = (double *)(iVar6 + param_1[2]);\n    pdVar9 = (double *)(*param_1 + iVar6);\n    pdVar10 = (double *)(param_1[1] + iVar6);\n    do {\n      dVar1 = (double)iVar5;\n      iVar5 = iVar5 + 1;\n      *pdVar9 = dVar1 * dVar4;\n      dVar3 = (double)DAT_0029f124;\n      pdVar9[1] = dVar1 * dVar3;\n      dVar2 = (double)DAT_002a9b58;\n      pdVar9[2] = dVar1 * dVar2;\n      *pdVar10 = DAT_002a9c68 * dVar1;\n      pdVar10[1] = dVar1 * (double)DAT_002a7fe8;\n      pdVar10[2] = dVar1 * dVar3;\n      *pdVar8 = dVar1 * dVar4;\n      pdVar8[1] = dVar1 * (double)DAT_002a9b54;\n      pdVar8[2] = dVar1 * dVar2;\n      pdVar8 = pdVar8 + 3;\n      pdVar9 = pdVar9 + 3;\n      pdVar10 = pdVar10 + 3;\n    } while (iVar7 != iVar5);\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_0005f760(int *param_1)\n\n{\n  double dVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  double *pdVar8;\n  double *pdVar9;\n  double *pdVar10;\n  \n  iVar5 = omp_get_num_threads();\n  iVar6 = omp_get_thread_num();\n  dVar4 = DAT_002a9c60;\n  iVar7 = (int)(0x10000 / (longlong)iVar5);\n  iVar5 = (int)(0x10000 % (longlong)iVar5);\n  if (iVar6 < iVar5) {\n    iVar7 = iVar7 + 1;\n    iVar5 = 0;\n  }\n  iVar5 = iVar5 + iVar6 * iVar7;\n  iVar7 = iVar7 + iVar5;\n  if (iVar5 < iVar7) {\n    iVar6 = iVar5 * 0x18;\n    pdVar8 = (double *)(iVar6 + param_1[2]);\n    pdVar9 = (double *)(*param_1 + iVar6);\n    pdVar10 = (double *)(param_1[1] + iVar6);\n    do {\n      dVar1 = (double)iVar5;\n      iVar5 = iVar5 + 1;\n      *pdVar9 = dVar1 * dVar4;\n      dVar3 = (double)DAT_0029f124;\n      pdVar9[1] = dVar1 * dVar3;\n      dVar2 = (double)DAT_002a9b58;\n      pdVar9[2] = dVar1 * dVar2;\n      *pdVar10 = DAT_002a9c68 * dVar1;\n      pdVar10[1] = dVar1 * (double)DAT_002a7fe8;\n      pdVar10[2] = dVar1 * dVar3;\n      *pdVar8 = dVar1 * dVar4;\n      pdVar8[1] = dVar1 * (double)DAT_002a9b54;\n      pdVar8[2] = dVar1 * dVar2;\n      pdVar8 = pdVar8 + 3;\n      pdVar9 = pdVar9 + 3;\n      pdVar10 = pdVar10 + 3;\n    } while (iVar7 != iVar5);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0005f760(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  double dVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  double *pdVar8;\n  double *pdVar9;\n  double *pdVar10;\n  \n  iVar5 = omp_get_num_threads();\n  iVar6 = omp_get_thread_num();\n  dVar4 = DAT_002a9c60;\n  iVar7 = (int)(0x10000 / (longlong)iVar5);\n  iVar5 = (int)(0x10000 % (longlong)iVar5);\n  if (iVar6 < iVar5) {\n    iVar7 = iVar7 + 1;\n    iVar5 = 0;\n  }\n  iVar5 = iVar5 + iVar6 * iVar7;\n  iVar7 = iVar7 + iVar5;\n  if (iVar5 < iVar7) {\n    iVar6 = iVar5 * 0x18;\n    pdVar8 = (double *)(iVar6 + param_1[2]);\n    pdVar9 = (double *)(*param_1 + iVar6);\n    pdVar10 = (double *)(param_1[1] + iVar6);\n    do {\n      dVar1 = (double)iVar5;\n      iVar5 = iVar5 + 1;\n      *pdVar9 = dVar1 * dVar4;\n      dVar3 = (double)DAT_0029f124;\n      pdVar9[1] = dVar1 * dVar3;\n      dVar2 = (double)DAT_002a9b58;\n      pdVar9[2] = dVar1 * dVar2;\n      *pdVar10 = DAT_002a9c68 * dVar1;\n      pdVar10[1] = dVar1 * (double)DAT_002a7fe8;\n      pdVar10[2] = dVar1 * dVar3;\n      *pdVar8 = dVar1 * dVar4;\n      pdVar8[1] = dVar1 * (double)DAT_002a9b54;\n      pdVar8[2] = dVar1 * dVar2;\n      pdVar8 = pdVar8 + 3;\n      pdVar9 = pdVar9 + 3;\n      pdVar10 = pdVar10 + 3;\n    } while (iVar7 != iVar5);\n  }\n  return;\n}" { (declaration "double dVar1;" primitive_type identifier ;) (declaration "double dVar2;" primitive_type identifier ;) (declaration "double dVar3;" primitive_type identifier ;) (declaration "double dVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "double *pdVar8;" primitive_type (pointer_declarator "*pdVar8" * identifier) ;) (declaration "double *pdVar9;" primitive_type (pointer_declarator "*pdVar9" * identifier) ;) (declaration "double *pdVar10;" primitive_type (pointer_declarator "*pdVar10" * identifier) ;) (expression_statement "iVar5 = omp_get_num_threads();" (assignment_expression "iVar5 = omp_get_num_threads()" identifier = (call_expression "omp_get_num_threads()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar6 = omp_get_thread_num();" (assignment_expression "iVar6 = omp_get_thread_num()" identifier = (call_expression "omp_get_thread_num()" identifier (argument_list "()" ( )))) ;) (expression_statement "dVar4 = DAT_002a9c60;" (assignment_expression "dVar4 = DAT_002a9c60" identifier = identifier) ;) (expression_statement "iVar7 = (int)(0x10000 / (longlong)iVar5);" (assignment_expression "iVar7 = (int)(0x10000 / (longlong)iVar5)" identifier = (cast_expression "(int)(0x10000 / (longlong)iVar5)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(0x10000 / (longlong)iVar5)" ( (binary_expression "0x10000 / (longlong)iVar5" number_literal / (cast_expression "(longlong)iVar5" ( (type_descriptor "longlong" type_identifier) ) identifier)) )))) ;) (expression_statement "iVar5 = (int)(0x10000 % (longlong)iVar5);" (assignment_expression "iVar5 = (int)(0x10000 % (longlong)iVar5)" identifier = (cast_expression "(int)(0x10000 % (longlong)iVar5)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(0x10000 % (longlong)iVar5)" ( (binary_expression "0x10000 % (longlong)iVar5" number_literal % (cast_expression "(longlong)iVar5" ( (type_descriptor "longlong" type_identifier) ) identifier)) )))) ;) (if_statement "if (iVar6 < iVar5) {\n    iVar7 = iVar7 + 1;\n    iVar5 = 0;\n  }" if (parenthesized_expression "(iVar6 < iVar5)" ( (binary_expression "iVar6 < iVar5" identifier < identifier) )) (compound_statement "{\n    iVar7 = iVar7 + 1;\n    iVar5 = 0;\n  }" { (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) })) (expression_statement "iVar5 = iVar5 + iVar6 * iVar7;" (assignment_expression "iVar5 = iVar5 + iVar6 * iVar7" identifier = (binary_expression "iVar5 + iVar6 * iVar7" identifier + (binary_expression "iVar6 * iVar7" identifier * identifier))) ;) (expression_statement "iVar7 = iVar7 + iVar5;" (assignment_expression "iVar7 = iVar7 + iVar5" identifier = (binary_expression "iVar7 + iVar5" identifier + identifier)) ;) (if_statement "if (iVar5 < iVar7) {\n    iVar6 = iVar5 * 0x18;\n    pdVar8 = (double *)(iVar6 + param_1[2]);\n    pdVar9 = (double *)(*param_1 + iVar6);\n    pdVar10 = (double *)(param_1[1] + iVar6);\n    do {\n      dVar1 = (double)iVar5;\n      iVar5 = iVar5 + 1;\n      *pdVar9 = dVar1 * dVar4;\n      dVar3 = (double)DAT_0029f124;\n      pdVar9[1] = dVar1 * dVar3;\n      dVar2 = (double)DAT_002a9b58;\n      pdVar9[2] = dVar1 * dVar2;\n      *pdVar10 = DAT_002a9c68 * dVar1;\n      pdVar10[1] = dVar1 * (double)DAT_002a7fe8;\n      pdVar10[2] = dVar1 * dVar3;\n      *pdVar8 = dVar1 * dVar4;\n      pdVar8[1] = dVar1 * (double)DAT_002a9b54;\n      pdVar8[2] = dVar1 * dVar2;\n      pdVar8 = pdVar8 + 3;\n      pdVar9 = pdVar9 + 3;\n      pdVar10 = pdVar10 + 3;\n    } while (iVar7 != iVar5);\n  }" if (parenthesized_expression "(iVar5 < iVar7)" ( (binary_expression "iVar5 < iVar7" identifier < identifier) )) (compound_statement "{\n    iVar6 = iVar5 * 0x18;\n    pdVar8 = (double *)(iVar6 + param_1[2]);\n    pdVar9 = (double *)(*param_1 + iVar6);\n    pdVar10 = (double *)(param_1[1] + iVar6);\n    do {\n      dVar1 = (double)iVar5;\n      iVar5 = iVar5 + 1;\n      *pdVar9 = dVar1 * dVar4;\n      dVar3 = (double)DAT_0029f124;\n      pdVar9[1] = dVar1 * dVar3;\n      dVar2 = (double)DAT_002a9b58;\n      pdVar9[2] = dVar1 * dVar2;\n      *pdVar10 = DAT_002a9c68 * dVar1;\n      pdVar10[1] = dVar1 * (double)DAT_002a7fe8;\n      pdVar10[2] = dVar1 * dVar3;\n      *pdVar8 = dVar1 * dVar4;\n      pdVar8[1] = dVar1 * (double)DAT_002a9b54;\n      pdVar8[2] = dVar1 * dVar2;\n      pdVar8 = pdVar8 + 3;\n      pdVar9 = pdVar9 + 3;\n      pdVar10 = pdVar10 + 3;\n    } while (iVar7 != iVar5);\n  }" { (expression_statement "iVar6 = iVar5 * 0x18;" (assignment_expression "iVar6 = iVar5 * 0x18" identifier = (binary_expression "iVar5 * 0x18" identifier * number_literal)) ;) (expression_statement "pdVar8 = (double *)(iVar6 + param_1[2]);" (assignment_expression "pdVar8 = (double *)(iVar6 + param_1[2])" identifier = (cast_expression "(double *)(iVar6 + param_1[2])" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + param_1[2])" ( (binary_expression "iVar6 + param_1[2]" identifier + (subscript_expression "param_1[2]" identifier [ number_literal ])) )))) ;) (expression_statement "pdVar9 = (double *)(*param_1 + iVar6);" (assignment_expression "pdVar9 = (double *)(*param_1 + iVar6)" identifier = (cast_expression "(double *)(*param_1 + iVar6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + iVar6)" ( (binary_expression "*param_1 + iVar6" (pointer_expression "*param_1" * identifier) + identifier) )))) ;) (expression_statement "pdVar10 = (double *)(param_1[1] + iVar6);" (assignment_expression "pdVar10 = (double *)(param_1[1] + iVar6)" identifier = (cast_expression "(double *)(param_1[1] + iVar6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + iVar6)" ( (binary_expression "param_1[1] + iVar6" (subscript_expression "param_1[1]" identifier [ number_literal ]) + identifier) )))) ;) (do_statement "do {\n      dVar1 = (double)iVar5;\n      iVar5 = iVar5 + 1;\n      *pdVar9 = dVar1 * dVar4;\n      dVar3 = (double)DAT_0029f124;\n      pdVar9[1] = dVar1 * dVar3;\n      dVar2 = (double)DAT_002a9b58;\n      pdVar9[2] = dVar1 * dVar2;\n      *pdVar10 = DAT_002a9c68 * dVar1;\n      pdVar10[1] = dVar1 * (double)DAT_002a7fe8;\n      pdVar10[2] = dVar1 * dVar3;\n      *pdVar8 = dVar1 * dVar4;\n      pdVar8[1] = dVar1 * (double)DAT_002a9b54;\n      pdVar8[2] = dVar1 * dVar2;\n      pdVar8 = pdVar8 + 3;\n      pdVar9 = pdVar9 + 3;\n      pdVar10 = pdVar10 + 3;\n    } while (iVar7 != iVar5);" do (compound_statement "{\n      dVar1 = (double)iVar5;\n      iVar5 = iVar5 + 1;\n      *pdVar9 = dVar1 * dVar4;\n      dVar3 = (double)DAT_0029f124;\n      pdVar9[1] = dVar1 * dVar3;\n      dVar2 = (double)DAT_002a9b58;\n      pdVar9[2] = dVar1 * dVar2;\n      *pdVar10 = DAT_002a9c68 * dVar1;\n      pdVar10[1] = dVar1 * (double)DAT_002a7fe8;\n      pdVar10[2] = dVar1 * dVar3;\n      *pdVar8 = dVar1 * dVar4;\n      pdVar8[1] = dVar1 * (double)DAT_002a9b54;\n      pdVar8[2] = dVar1 * dVar2;\n      pdVar8 = pdVar8 + 3;\n      pdVar9 = pdVar9 + 3;\n      pdVar10 = pdVar10 + 3;\n    }" { (expression_statement "dVar1 = (double)iVar5;" (assignment_expression "dVar1 = (double)iVar5" identifier = (cast_expression "(double)iVar5" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "*pdVar9 = dVar1 * dVar4;" (assignment_expression "*pdVar9 = dVar1 * dVar4" (pointer_expression "*pdVar9" * identifier) = (binary_expression "dVar1 * dVar4" identifier * identifier)) ;) (expression_statement "dVar3 = (double)DAT_0029f124;" (assignment_expression "dVar3 = (double)DAT_0029f124" identifier = (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "pdVar9[1] = dVar1 * dVar3;" (assignment_expression "pdVar9[1] = dVar1 * dVar3" (subscript_expression "pdVar9[1]" identifier [ number_literal ]) = (binary_expression "dVar1 * dVar3" identifier * identifier)) ;) (expression_statement "dVar2 = (double)DAT_002a9b58;" (assignment_expression "dVar2 = (double)DAT_002a9b58" identifier = (cast_expression "(double)DAT_002a9b58" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "pdVar9[2] = dVar1 * dVar2;" (assignment_expression "pdVar9[2] = dVar1 * dVar2" (subscript_expression "pdVar9[2]" identifier [ number_literal ]) = (binary_expression "dVar1 * dVar2" identifier * identifier)) ;) (expression_statement "*pdVar10 = DAT_002a9c68 * dVar1;" (assignment_expression "*pdVar10 = DAT_002a9c68 * dVar1" (pointer_expression "*pdVar10" * identifier) = (binary_expression "DAT_002a9c68 * dVar1" identifier * identifier)) ;) (expression_statement "pdVar10[1] = dVar1 * (double)DAT_002a7fe8;" (assignment_expression "pdVar10[1] = dVar1 * (double)DAT_002a7fe8" (subscript_expression "pdVar10[1]" identifier [ number_literal ]) = (binary_expression "dVar1 * (double)DAT_002a7fe8" identifier * (cast_expression "(double)DAT_002a7fe8" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "pdVar10[2] = dVar1 * dVar3;" (assignment_expression "pdVar10[2] = dVar1 * dVar3" (subscript_expression "pdVar10[2]" identifier [ number_literal ]) = (binary_expression "dVar1 * dVar3" identifier * identifier)) ;) (expression_statement "*pdVar8 = dVar1 * dVar4;" (assignment_expression "*pdVar8 = dVar1 * dVar4" (pointer_expression "*pdVar8" * identifier) = (binary_expression "dVar1 * dVar4" identifier * identifier)) ;) (expression_statement "pdVar8[1] = dVar1 * (double)DAT_002a9b54;" (assignment_expression "pdVar8[1] = dVar1 * (double)DAT_002a9b54" (subscript_expression "pdVar8[1]" identifier [ number_literal ]) = (binary_expression "dVar1 * (double)DAT_002a9b54" identifier * (cast_expression "(double)DAT_002a9b54" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "pdVar8[2] = dVar1 * dVar2;" (assignment_expression "pdVar8[2] = dVar1 * dVar2" (subscript_expression "pdVar8[2]" identifier [ number_literal ]) = (binary_expression "dVar1 * dVar2" identifier * identifier)) ;) (expression_statement "pdVar8 = pdVar8 + 3;" (assignment_expression "pdVar8 = pdVar8 + 3" identifier = (binary_expression "pdVar8 + 3" identifier + number_literal)) ;) (expression_statement "pdVar9 = pdVar9 + 3;" (assignment_expression "pdVar9 = pdVar9 + 3" identifier = (binary_expression "pdVar9 + 3" identifier + number_literal)) ;) (expression_statement "pdVar10 = pdVar10 + 3;" (assignment_expression "pdVar10 = pdVar10 + 3" identifier = (binary_expression "pdVar10 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar7 != iVar5)" ( (binary_expression "iVar7 != iVar5" identifier != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* DWARF original prototype: void sRGBTransformImage._omp_fn.20(anon_struct_12_3_5c5126da * param_0)\n    */\n\nvoid __thiscall sRGBTransformImage__omp_fn_20(anon_struct_12_3_5c5126da *this)\n\n{\n  double dVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  TransformPacket *pTVar8;\n  TransformPacket *pTVar9;\n  TransformPacket *pTVar10;\n  \n  iVar5 = omp_get_num_threads();\n  iVar6 = omp_get_thread_num();\n  dVar4 = DAT_002a9c60;\n  iVar7 = (int)(0x10000 / (longlong)iVar5);\n  iVar5 = (int)(0x10000 % (longlong)iVar5);\n  if (iVar6 < iVar5) {\n    iVar7 = iVar7 + 1;\n    iVar5 = 0;\n  }\n  iVar5 = iVar5 + iVar6 * iVar7;\n  iVar7 = iVar7 + iVar5;\n  if (iVar5 < iVar7) {\n    pTVar8 = this->z_map + iVar5;\n    pTVar9 = this->x_map + iVar5;\n    pTVar10 = this->y_map + iVar5;\n    do {\n      dVar1 = (double)iVar5;\n      iVar5 = iVar5 + 1;\n      pTVar9->x = dVar1 * dVar4;\n      dVar3 = (double)DAT_0029f124;\n      pTVar9->y = dVar1 * dVar3;\n      dVar2 = (double)DAT_002a9b58;\n      pTVar9->z = dVar1 * dVar2;\n      pTVar10->x = DAT_002a9c68 * dVar1;\n      pTVar10->y = dVar1 * (double)DAT_002a7fe8;\n      pTVar10->z = dVar1 * dVar3;\n      pTVar8->x = dVar1 * dVar4;\n      pTVar8->y = dVar1 * (double)DAT_002a9b54;\n      pTVar8->z = dVar1 * dVar2;\n      pTVar8 = pTVar8 + 1;\n      pTVar9 = pTVar9 + 1;\n      pTVar10 = pTVar10 + 1;\n    } while (iVar7 != iVar5);\n  }\n  return;\n}\n\n" comment comment (function_definition "void __thiscall sRGBTransformImage__omp_fn_20(anon_struct_12_3_5c5126da *this)\n\n{\n  double dVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  TransformPacket *pTVar8;\n  TransformPacket *pTVar9;\n  TransformPacket *pTVar10;\n  \n  iVar5 = omp_get_num_threads();\n  iVar6 = omp_get_thread_num();\n  dVar4 = DAT_002a9c60;\n  iVar7 = (int)(0x10000 / (longlong)iVar5);\n  iVar5 = (int)(0x10000 % (longlong)iVar5);\n  if (iVar6 < iVar5) {\n    iVar7 = iVar7 + 1;\n    iVar5 = 0;\n  }\n  iVar5 = iVar5 + iVar6 * iVar7;\n  iVar7 = iVar7 + iVar5;\n  if (iVar5 < iVar7) {\n    pTVar8 = this->z_map + iVar5;\n    pTVar9 = this->x_map + iVar5;\n    pTVar10 = this->y_map + iVar5;\n    do {\n      dVar1 = (double)iVar5;\n      iVar5 = iVar5 + 1;\n      pTVar9->x = dVar1 * dVar4;\n      dVar3 = (double)DAT_0029f124;\n      pTVar9->y = dVar1 * dVar3;\n      dVar2 = (double)DAT_002a9b58;\n      pTVar9->z = dVar1 * dVar2;\n      pTVar10->x = DAT_002a9c68 * dVar1;\n      pTVar10->y = dVar1 * (double)DAT_002a7fe8;\n      pTVar10->z = dVar1 * dVar3;\n      pTVar8->x = dVar1 * dVar4;\n      pTVar8->y = dVar1 * (double)DAT_002a9b54;\n      pTVar8->z = dVar1 * dVar2;\n      pTVar8 = pTVar8 + 1;\n      pTVar9 = pTVar9 + 1;\n      pTVar10 = pTVar10 + 1;\n    } while (iVar7 != iVar5);\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (function_declarator "sRGBTransformImage__omp_fn_20(anon_struct_12_3_5c5126da *this)" identifier (parameter_list "(anon_struct_12_3_5c5126da *this)" ( (parameter_declaration "anon_struct_12_3_5c5126da *this" type_identifier (pointer_declarator "*this" * identifier)) ))) (compound_statement "{\n  double dVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  TransformPacket *pTVar8;\n  TransformPacket *pTVar9;\n  TransformPacket *pTVar10;\n  \n  iVar5 = omp_get_num_threads();\n  iVar6 = omp_get_thread_num();\n  dVar4 = DAT_002a9c60;\n  iVar7 = (int)(0x10000 / (longlong)iVar5);\n  iVar5 = (int)(0x10000 % (longlong)iVar5);\n  if (iVar6 < iVar5) {\n    iVar7 = iVar7 + 1;\n    iVar5 = 0;\n  }\n  iVar5 = iVar5 + iVar6 * iVar7;\n  iVar7 = iVar7 + iVar5;\n  if (iVar5 < iVar7) {\n    pTVar8 = this->z_map + iVar5;\n    pTVar9 = this->x_map + iVar5;\n    pTVar10 = this->y_map + iVar5;\n    do {\n      dVar1 = (double)iVar5;\n      iVar5 = iVar5 + 1;\n      pTVar9->x = dVar1 * dVar4;\n      dVar3 = (double)DAT_0029f124;\n      pTVar9->y = dVar1 * dVar3;\n      dVar2 = (double)DAT_002a9b58;\n      pTVar9->z = dVar1 * dVar2;\n      pTVar10->x = DAT_002a9c68 * dVar1;\n      pTVar10->y = dVar1 * (double)DAT_002a7fe8;\n      pTVar10->z = dVar1 * dVar3;\n      pTVar8->x = dVar1 * dVar4;\n      pTVar8->y = dVar1 * (double)DAT_002a9b54;\n      pTVar8->z = dVar1 * dVar2;\n      pTVar8 = pTVar8 + 1;\n      pTVar9 = pTVar9 + 1;\n      pTVar10 = pTVar10 + 1;\n    } while (iVar7 != iVar5);\n  }\n  return;\n}" { (declaration "double dVar1;" primitive_type identifier ;) (declaration "double dVar2;" primitive_type identifier ;) (declaration "double dVar3;" primitive_type identifier ;) (declaration "double dVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "TransformPacket *pTVar8;" type_identifier (pointer_declarator "*pTVar8" * identifier) ;) (declaration "TransformPacket *pTVar9;" type_identifier (pointer_declarator "*pTVar9" * identifier) ;) (declaration "TransformPacket *pTVar10;" type_identifier (pointer_declarator "*pTVar10" * identifier) ;) (expression_statement "iVar5 = omp_get_num_threads();" (assignment_expression "iVar5 = omp_get_num_threads()" identifier = (call_expression "omp_get_num_threads()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar6 = omp_get_thread_num();" (assignment_expression "iVar6 = omp_get_thread_num()" identifier = (call_expression "omp_get_thread_num()" identifier (argument_list "()" ( )))) ;) (expression_statement "dVar4 = DAT_002a9c60;" (assignment_expression "dVar4 = DAT_002a9c60" identifier = identifier) ;) (expression_statement "iVar7 = (int)(0x10000 / (longlong)iVar5);" (assignment_expression "iVar7 = (int)(0x10000 / (longlong)iVar5)" identifier = (cast_expression "(int)(0x10000 / (longlong)iVar5)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(0x10000 / (longlong)iVar5)" ( (binary_expression "0x10000 / (longlong)iVar5" number_literal / (cast_expression "(longlong)iVar5" ( (type_descriptor "longlong" type_identifier) ) identifier)) )))) ;) (expression_statement "iVar5 = (int)(0x10000 % (longlong)iVar5);" (assignment_expression "iVar5 = (int)(0x10000 % (longlong)iVar5)" identifier = (cast_expression "(int)(0x10000 % (longlong)iVar5)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(0x10000 % (longlong)iVar5)" ( (binary_expression "0x10000 % (longlong)iVar5" number_literal % (cast_expression "(longlong)iVar5" ( (type_descriptor "longlong" type_identifier) ) identifier)) )))) ;) (if_statement "if (iVar6 < iVar5) {\n    iVar7 = iVar7 + 1;\n    iVar5 = 0;\n  }" if (parenthesized_expression "(iVar6 < iVar5)" ( (binary_expression "iVar6 < iVar5" identifier < identifier) )) (compound_statement "{\n    iVar7 = iVar7 + 1;\n    iVar5 = 0;\n  }" { (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) })) (expression_statement "iVar5 = iVar5 + iVar6 * iVar7;" (assignment_expression "iVar5 = iVar5 + iVar6 * iVar7" identifier = (binary_expression "iVar5 + iVar6 * iVar7" identifier + (binary_expression "iVar6 * iVar7" identifier * identifier))) ;) (expression_statement "iVar7 = iVar7 + iVar5;" (assignment_expression "iVar7 = iVar7 + iVar5" identifier = (binary_expression "iVar7 + iVar5" identifier + identifier)) ;) (if_statement "if (iVar5 < iVar7) {\n    pTVar8 = this->z_map + iVar5;\n    pTVar9 = this->x_map + iVar5;\n    pTVar10 = this->y_map + iVar5;\n    do {\n      dVar1 = (double)iVar5;\n      iVar5 = iVar5 + 1;\n      pTVar9->x = dVar1 * dVar4;\n      dVar3 = (double)DAT_0029f124;\n      pTVar9->y = dVar1 * dVar3;\n      dVar2 = (double)DAT_002a9b58;\n      pTVar9->z = dVar1 * dVar2;\n      pTVar10->x = DAT_002a9c68 * dVar1;\n      pTVar10->y = dVar1 * (double)DAT_002a7fe8;\n      pTVar10->z = dVar1 * dVar3;\n      pTVar8->x = dVar1 * dVar4;\n      pTVar8->y = dVar1 * (double)DAT_002a9b54;\n      pTVar8->z = dVar1 * dVar2;\n      pTVar8 = pTVar8 + 1;\n      pTVar9 = pTVar9 + 1;\n      pTVar10 = pTVar10 + 1;\n    } while (iVar7 != iVar5);\n  }" if (parenthesized_expression "(iVar5 < iVar7)" ( (binary_expression "iVar5 < iVar7" identifier < identifier) )) (compound_statement "{\n    pTVar8 = this->z_map + iVar5;\n    pTVar9 = this->x_map + iVar5;\n    pTVar10 = this->y_map + iVar5;\n    do {\n      dVar1 = (double)iVar5;\n      iVar5 = iVar5 + 1;\n      pTVar9->x = dVar1 * dVar4;\n      dVar3 = (double)DAT_0029f124;\n      pTVar9->y = dVar1 * dVar3;\n      dVar2 = (double)DAT_002a9b58;\n      pTVar9->z = dVar1 * dVar2;\n      pTVar10->x = DAT_002a9c68 * dVar1;\n      pTVar10->y = dVar1 * (double)DAT_002a7fe8;\n      pTVar10->z = dVar1 * dVar3;\n      pTVar8->x = dVar1 * dVar4;\n      pTVar8->y = dVar1 * (double)DAT_002a9b54;\n      pTVar8->z = dVar1 * dVar2;\n      pTVar8 = pTVar8 + 1;\n      pTVar9 = pTVar9 + 1;\n      pTVar10 = pTVar10 + 1;\n    } while (iVar7 != iVar5);\n  }" { (expression_statement "pTVar8 = this->z_map + iVar5;" (assignment_expression "pTVar8 = this->z_map + iVar5" identifier = (binary_expression "this->z_map + iVar5" (field_expression "this->z_map" identifier -> field_identifier) + identifier)) ;) (expression_statement "pTVar9 = this->x_map + iVar5;" (assignment_expression "pTVar9 = this->x_map + iVar5" identifier = (binary_expression "this->x_map + iVar5" (field_expression "this->x_map" identifier -> field_identifier) + identifier)) ;) (expression_statement "pTVar10 = this->y_map + iVar5;" (assignment_expression "pTVar10 = this->y_map + iVar5" identifier = (binary_expression "this->y_map + iVar5" (field_expression "this->y_map" identifier -> field_identifier) + identifier)) ;) (do_statement "do {\n      dVar1 = (double)iVar5;\n      iVar5 = iVar5 + 1;\n      pTVar9->x = dVar1 * dVar4;\n      dVar3 = (double)DAT_0029f124;\n      pTVar9->y = dVar1 * dVar3;\n      dVar2 = (double)DAT_002a9b58;\n      pTVar9->z = dVar1 * dVar2;\n      pTVar10->x = DAT_002a9c68 * dVar1;\n      pTVar10->y = dVar1 * (double)DAT_002a7fe8;\n      pTVar10->z = dVar1 * dVar3;\n      pTVar8->x = dVar1 * dVar4;\n      pTVar8->y = dVar1 * (double)DAT_002a9b54;\n      pTVar8->z = dVar1 * dVar2;\n      pTVar8 = pTVar8 + 1;\n      pTVar9 = pTVar9 + 1;\n      pTVar10 = pTVar10 + 1;\n    } while (iVar7 != iVar5);" do (compound_statement "{\n      dVar1 = (double)iVar5;\n      iVar5 = iVar5 + 1;\n      pTVar9->x = dVar1 * dVar4;\n      dVar3 = (double)DAT_0029f124;\n      pTVar9->y = dVar1 * dVar3;\n      dVar2 = (double)DAT_002a9b58;\n      pTVar9->z = dVar1 * dVar2;\n      pTVar10->x = DAT_002a9c68 * dVar1;\n      pTVar10->y = dVar1 * (double)DAT_002a7fe8;\n      pTVar10->z = dVar1 * dVar3;\n      pTVar8->x = dVar1 * dVar4;\n      pTVar8->y = dVar1 * (double)DAT_002a9b54;\n      pTVar8->z = dVar1 * dVar2;\n      pTVar8 = pTVar8 + 1;\n      pTVar9 = pTVar9 + 1;\n      pTVar10 = pTVar10 + 1;\n    }" { (expression_statement "dVar1 = (double)iVar5;" (assignment_expression "dVar1 = (double)iVar5" identifier = (cast_expression "(double)iVar5" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "pTVar9->x = dVar1 * dVar4;" (assignment_expression "pTVar9->x = dVar1 * dVar4" (field_expression "pTVar9->x" identifier -> field_identifier) = (binary_expression "dVar1 * dVar4" identifier * identifier)) ;) (expression_statement "dVar3 = (double)DAT_0029f124;" (assignment_expression "dVar3 = (double)DAT_0029f124" identifier = (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "pTVar9->y = dVar1 * dVar3;" (assignment_expression "pTVar9->y = dVar1 * dVar3" (field_expression "pTVar9->y" identifier -> field_identifier) = (binary_expression "dVar1 * dVar3" identifier * identifier)) ;) (expression_statement "dVar2 = (double)DAT_002a9b58;" (assignment_expression "dVar2 = (double)DAT_002a9b58" identifier = (cast_expression "(double)DAT_002a9b58" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "pTVar9->z = dVar1 * dVar2;" (assignment_expression "pTVar9->z = dVar1 * dVar2" (field_expression "pTVar9->z" identifier -> field_identifier) = (binary_expression "dVar1 * dVar2" identifier * identifier)) ;) (expression_statement "pTVar10->x = DAT_002a9c68 * dVar1;" (assignment_expression "pTVar10->x = DAT_002a9c68 * dVar1" (field_expression "pTVar10->x" identifier -> field_identifier) = (binary_expression "DAT_002a9c68 * dVar1" identifier * identifier)) ;) (expression_statement "pTVar10->y = dVar1 * (double)DAT_002a7fe8;" (assignment_expression "pTVar10->y = dVar1 * (double)DAT_002a7fe8" (field_expression "pTVar10->y" identifier -> field_identifier) = (binary_expression "dVar1 * (double)DAT_002a7fe8" identifier * (cast_expression "(double)DAT_002a7fe8" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "pTVar10->z = dVar1 * dVar3;" (assignment_expression "pTVar10->z = dVar1 * dVar3" (field_expression "pTVar10->z" identifier -> field_identifier) = (binary_expression "dVar1 * dVar3" identifier * identifier)) ;) (expression_statement "pTVar8->x = dVar1 * dVar4;" (assignment_expression "pTVar8->x = dVar1 * dVar4" (field_expression "pTVar8->x" identifier -> field_identifier) = (binary_expression "dVar1 * dVar4" identifier * identifier)) ;) (expression_statement "pTVar8->y = dVar1 * (double)DAT_002a9b54;" (assignment_expression "pTVar8->y = dVar1 * (double)DAT_002a9b54" (field_expression "pTVar8->y" identifier -> field_identifier) = (binary_expression "dVar1 * (double)DAT_002a9b54" identifier * (cast_expression "(double)DAT_002a9b54" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "pTVar8->z = dVar1 * dVar2;" (assignment_expression "pTVar8->z = dVar1 * dVar2" (field_expression "pTVar8->z" identifier -> field_identifier) = (binary_expression "dVar1 * dVar2" identifier * identifier)) ;) (expression_statement "pTVar8 = pTVar8 + 1;" (assignment_expression "pTVar8 = pTVar8 + 1" identifier = (binary_expression "pTVar8 + 1" identifier + number_literal)) ;) (expression_statement "pTVar9 = pTVar9 + 1;" (assignment_expression "pTVar9 = pTVar9 + 1" identifier = (binary_expression "pTVar9 + 1" identifier + number_literal)) ;) (expression_statement "pTVar10 = pTVar10 + 1;" (assignment_expression "pTVar10 = pTVar10 + 1" identifier = (binary_expression "pTVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar7 != iVar5)" ( (binary_expression "iVar7 != iVar5" identifier != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0005f760(int *param_1)\n\n{\n  double dVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  double *pdVar8;\n  double *pdVar9;\n  double *pdVar10;\n  \n  iVar5 = omp_get_num_threads();\n  iVar6 = omp_get_thread_num();\n  dVar4 = DAT_002a9c60;\n  iVar7 = (int)(0x10000 / (longlong)iVar5);\n  iVar5 = (int)(0x10000 % (longlong)iVar5);\n  if (iVar6 < iVar5) {\n    iVar7 = iVar7 + 1;\n    iVar5 = 0;\n  }\n  iVar5 = iVar5 + iVar6 * iVar7;\n  iVar7 = iVar7 + iVar5;\n  if (iVar5 < iVar7) {\n    iVar6 = iVar5 * 0x18;\n    pdVar8 = (double *)(iVar6 + param_1[2]);\n    pdVar9 = (double *)(*param_1 + iVar6);\n    pdVar10 = (double *)(param_1[1] + iVar6);\n    do {\n      dVar1 = (double)iVar5;\n      iVar5 = iVar5 + 1;\n      *pdVar9 = dVar1 * dVar4;\n      dVar3 = (double)DAT_0029f124;\n      pdVar9[1] = dVar1 * dVar3;\n      dVar2 = (double)DAT_002a9b58;\n      pdVar9[2] = dVar1 * dVar2;\n      *pdVar10 = DAT_002a9c68 * dVar1;\n      pdVar10[1] = dVar1 * (double)DAT_002a7fe8;\n      pdVar10[2] = dVar1 * dVar3;\n      *pdVar8 = dVar1 * dVar4;\n      pdVar8[1] = dVar1 * (double)DAT_002a9b54;\n      pdVar8[2] = dVar1 * dVar2;\n      pdVar8 = pdVar8 + 3;\n      pdVar9 = pdVar9 + 3;\n      pdVar10 = pdVar10 + 3;\n    } while (iVar7 != iVar5);\n  }\n  return;\n}\n\n" (function_definition "void FUN_0005f760(int *param_1)\n\n{\n  double dVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  double *pdVar8;\n  double *pdVar9;\n  double *pdVar10;\n  \n  iVar5 = omp_get_num_threads();\n  iVar6 = omp_get_thread_num();\n  dVar4 = DAT_002a9c60;\n  iVar7 = (int)(0x10000 / (longlong)iVar5);\n  iVar5 = (int)(0x10000 % (longlong)iVar5);\n  if (iVar6 < iVar5) {\n    iVar7 = iVar7 + 1;\n    iVar5 = 0;\n  }\n  iVar5 = iVar5 + iVar6 * iVar7;\n  iVar7 = iVar7 + iVar5;\n  if (iVar5 < iVar7) {\n    iVar6 = iVar5 * 0x18;\n    pdVar8 = (double *)(iVar6 + param_1[2]);\n    pdVar9 = (double *)(*param_1 + iVar6);\n    pdVar10 = (double *)(param_1[1] + iVar6);\n    do {\n      dVar1 = (double)iVar5;\n      iVar5 = iVar5 + 1;\n      *pdVar9 = dVar1 * dVar4;\n      dVar3 = (double)DAT_0029f124;\n      pdVar9[1] = dVar1 * dVar3;\n      dVar2 = (double)DAT_002a9b58;\n      pdVar9[2] = dVar1 * dVar2;\n      *pdVar10 = DAT_002a9c68 * dVar1;\n      pdVar10[1] = dVar1 * (double)DAT_002a7fe8;\n      pdVar10[2] = dVar1 * dVar3;\n      *pdVar8 = dVar1 * dVar4;\n      pdVar8[1] = dVar1 * (double)DAT_002a9b54;\n      pdVar8[2] = dVar1 * dVar2;\n      pdVar8 = pdVar8 + 3;\n      pdVar9 = pdVar9 + 3;\n      pdVar10 = pdVar10 + 3;\n    } while (iVar7 != iVar5);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0005f760(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  double dVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  double *pdVar8;\n  double *pdVar9;\n  double *pdVar10;\n  \n  iVar5 = omp_get_num_threads();\n  iVar6 = omp_get_thread_num();\n  dVar4 = DAT_002a9c60;\n  iVar7 = (int)(0x10000 / (longlong)iVar5);\n  iVar5 = (int)(0x10000 % (longlong)iVar5);\n  if (iVar6 < iVar5) {\n    iVar7 = iVar7 + 1;\n    iVar5 = 0;\n  }\n  iVar5 = iVar5 + iVar6 * iVar7;\n  iVar7 = iVar7 + iVar5;\n  if (iVar5 < iVar7) {\n    iVar6 = iVar5 * 0x18;\n    pdVar8 = (double *)(iVar6 + param_1[2]);\n    pdVar9 = (double *)(*param_1 + iVar6);\n    pdVar10 = (double *)(param_1[1] + iVar6);\n    do {\n      dVar1 = (double)iVar5;\n      iVar5 = iVar5 + 1;\n      *pdVar9 = dVar1 * dVar4;\n      dVar3 = (double)DAT_0029f124;\n      pdVar9[1] = dVar1 * dVar3;\n      dVar2 = (double)DAT_002a9b58;\n      pdVar9[2] = dVar1 * dVar2;\n      *pdVar10 = DAT_002a9c68 * dVar1;\n      pdVar10[1] = dVar1 * (double)DAT_002a7fe8;\n      pdVar10[2] = dVar1 * dVar3;\n      *pdVar8 = dVar1 * dVar4;\n      pdVar8[1] = dVar1 * (double)DAT_002a9b54;\n      pdVar8[2] = dVar1 * dVar2;\n      pdVar8 = pdVar8 + 3;\n      pdVar9 = pdVar9 + 3;\n      pdVar10 = pdVar10 + 3;\n    } while (iVar7 != iVar5);\n  }\n  return;\n}" { (declaration "double dVar1;" primitive_type identifier ;) (declaration "double dVar2;" primitive_type identifier ;) (declaration "double dVar3;" primitive_type identifier ;) (declaration "double dVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "double *pdVar8;" primitive_type (pointer_declarator "*pdVar8" * identifier) ;) (declaration "double *pdVar9;" primitive_type (pointer_declarator "*pdVar9" * identifier) ;) (declaration "double *pdVar10;" primitive_type (pointer_declarator "*pdVar10" * identifier) ;) (expression_statement "iVar5 = omp_get_num_threads();" (assignment_expression "iVar5 = omp_get_num_threads()" identifier = (call_expression "omp_get_num_threads()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar6 = omp_get_thread_num();" (assignment_expression "iVar6 = omp_get_thread_num()" identifier = (call_expression "omp_get_thread_num()" identifier (argument_list "()" ( )))) ;) (expression_statement "dVar4 = DAT_002a9c60;" (assignment_expression "dVar4 = DAT_002a9c60" identifier = identifier) ;) (expression_statement "iVar7 = (int)(0x10000 / (longlong)iVar5);" (assignment_expression "iVar7 = (int)(0x10000 / (longlong)iVar5)" identifier = (cast_expression "(int)(0x10000 / (longlong)iVar5)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(0x10000 / (longlong)iVar5)" ( (binary_expression "0x10000 / (longlong)iVar5" number_literal / (cast_expression "(longlong)iVar5" ( (type_descriptor "longlong" type_identifier) ) identifier)) )))) ;) (expression_statement "iVar5 = (int)(0x10000 % (longlong)iVar5);" (assignment_expression "iVar5 = (int)(0x10000 % (longlong)iVar5)" identifier = (cast_expression "(int)(0x10000 % (longlong)iVar5)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(0x10000 % (longlong)iVar5)" ( (binary_expression "0x10000 % (longlong)iVar5" number_literal % (cast_expression "(longlong)iVar5" ( (type_descriptor "longlong" type_identifier) ) identifier)) )))) ;) (if_statement "if (iVar6 < iVar5) {\n    iVar7 = iVar7 + 1;\n    iVar5 = 0;\n  }" if (parenthesized_expression "(iVar6 < iVar5)" ( (binary_expression "iVar6 < iVar5" identifier < identifier) )) (compound_statement "{\n    iVar7 = iVar7 + 1;\n    iVar5 = 0;\n  }" { (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) })) (expression_statement "iVar5 = iVar5 + iVar6 * iVar7;" (assignment_expression "iVar5 = iVar5 + iVar6 * iVar7" identifier = (binary_expression "iVar5 + iVar6 * iVar7" identifier + (binary_expression "iVar6 * iVar7" identifier * identifier))) ;) (expression_statement "iVar7 = iVar7 + iVar5;" (assignment_expression "iVar7 = iVar7 + iVar5" identifier = (binary_expression "iVar7 + iVar5" identifier + identifier)) ;) (if_statement "if (iVar5 < iVar7) {\n    iVar6 = iVar5 * 0x18;\n    pdVar8 = (double *)(iVar6 + param_1[2]);\n    pdVar9 = (double *)(*param_1 + iVar6);\n    pdVar10 = (double *)(param_1[1] + iVar6);\n    do {\n      dVar1 = (double)iVar5;\n      iVar5 = iVar5 + 1;\n      *pdVar9 = dVar1 * dVar4;\n      dVar3 = (double)DAT_0029f124;\n      pdVar9[1] = dVar1 * dVar3;\n      dVar2 = (double)DAT_002a9b58;\n      pdVar9[2] = dVar1 * dVar2;\n      *pdVar10 = DAT_002a9c68 * dVar1;\n      pdVar10[1] = dVar1 * (double)DAT_002a7fe8;\n      pdVar10[2] = dVar1 * dVar3;\n      *pdVar8 = dVar1 * dVar4;\n      pdVar8[1] = dVar1 * (double)DAT_002a9b54;\n      pdVar8[2] = dVar1 * dVar2;\n      pdVar8 = pdVar8 + 3;\n      pdVar9 = pdVar9 + 3;\n      pdVar10 = pdVar10 + 3;\n    } while (iVar7 != iVar5);\n  }" if (parenthesized_expression "(iVar5 < iVar7)" ( (binary_expression "iVar5 < iVar7" identifier < identifier) )) (compound_statement "{\n    iVar6 = iVar5 * 0x18;\n    pdVar8 = (double *)(iVar6 + param_1[2]);\n    pdVar9 = (double *)(*param_1 + iVar6);\n    pdVar10 = (double *)(param_1[1] + iVar6);\n    do {\n      dVar1 = (double)iVar5;\n      iVar5 = iVar5 + 1;\n      *pdVar9 = dVar1 * dVar4;\n      dVar3 = (double)DAT_0029f124;\n      pdVar9[1] = dVar1 * dVar3;\n      dVar2 = (double)DAT_002a9b58;\n      pdVar9[2] = dVar1 * dVar2;\n      *pdVar10 = DAT_002a9c68 * dVar1;\n      pdVar10[1] = dVar1 * (double)DAT_002a7fe8;\n      pdVar10[2] = dVar1 * dVar3;\n      *pdVar8 = dVar1 * dVar4;\n      pdVar8[1] = dVar1 * (double)DAT_002a9b54;\n      pdVar8[2] = dVar1 * dVar2;\n      pdVar8 = pdVar8 + 3;\n      pdVar9 = pdVar9 + 3;\n      pdVar10 = pdVar10 + 3;\n    } while (iVar7 != iVar5);\n  }" { (expression_statement "iVar6 = iVar5 * 0x18;" (assignment_expression "iVar6 = iVar5 * 0x18" identifier = (binary_expression "iVar5 * 0x18" identifier * number_literal)) ;) (expression_statement "pdVar8 = (double *)(iVar6 + param_1[2]);" (assignment_expression "pdVar8 = (double *)(iVar6 + param_1[2])" identifier = (cast_expression "(double *)(iVar6 + param_1[2])" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + param_1[2])" ( (binary_expression "iVar6 + param_1[2]" identifier + (subscript_expression "param_1[2]" identifier [ number_literal ])) )))) ;) (expression_statement "pdVar9 = (double *)(*param_1 + iVar6);" (assignment_expression "pdVar9 = (double *)(*param_1 + iVar6)" identifier = (cast_expression "(double *)(*param_1 + iVar6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + iVar6)" ( (binary_expression "*param_1 + iVar6" (pointer_expression "*param_1" * identifier) + identifier) )))) ;) (expression_statement "pdVar10 = (double *)(param_1[1] + iVar6);" (assignment_expression "pdVar10 = (double *)(param_1[1] + iVar6)" identifier = (cast_expression "(double *)(param_1[1] + iVar6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + iVar6)" ( (binary_expression "param_1[1] + iVar6" (subscript_expression "param_1[1]" identifier [ number_literal ]) + identifier) )))) ;) (do_statement "do {\n      dVar1 = (double)iVar5;\n      iVar5 = iVar5 + 1;\n      *pdVar9 = dVar1 * dVar4;\n      dVar3 = (double)DAT_0029f124;\n      pdVar9[1] = dVar1 * dVar3;\n      dVar2 = (double)DAT_002a9b58;\n      pdVar9[2] = dVar1 * dVar2;\n      *pdVar10 = DAT_002a9c68 * dVar1;\n      pdVar10[1] = dVar1 * (double)DAT_002a7fe8;\n      pdVar10[2] = dVar1 * dVar3;\n      *pdVar8 = dVar1 * dVar4;\n      pdVar8[1] = dVar1 * (double)DAT_002a9b54;\n      pdVar8[2] = dVar1 * dVar2;\n      pdVar8 = pdVar8 + 3;\n      pdVar9 = pdVar9 + 3;\n      pdVar10 = pdVar10 + 3;\n    } while (iVar7 != iVar5);" do (compound_statement "{\n      dVar1 = (double)iVar5;\n      iVar5 = iVar5 + 1;\n      *pdVar9 = dVar1 * dVar4;\n      dVar3 = (double)DAT_0029f124;\n      pdVar9[1] = dVar1 * dVar3;\n      dVar2 = (double)DAT_002a9b58;\n      pdVar9[2] = dVar1 * dVar2;\n      *pdVar10 = DAT_002a9c68 * dVar1;\n      pdVar10[1] = dVar1 * (double)DAT_002a7fe8;\n      pdVar10[2] = dVar1 * dVar3;\n      *pdVar8 = dVar1 * dVar4;\n      pdVar8[1] = dVar1 * (double)DAT_002a9b54;\n      pdVar8[2] = dVar1 * dVar2;\n      pdVar8 = pdVar8 + 3;\n      pdVar9 = pdVar9 + 3;\n      pdVar10 = pdVar10 + 3;\n    }" { (expression_statement "dVar1 = (double)iVar5;" (assignment_expression "dVar1 = (double)iVar5" identifier = (cast_expression "(double)iVar5" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "*pdVar9 = dVar1 * dVar4;" (assignment_expression "*pdVar9 = dVar1 * dVar4" (pointer_expression "*pdVar9" * identifier) = (binary_expression "dVar1 * dVar4" identifier * identifier)) ;) (expression_statement "dVar3 = (double)DAT_0029f124;" (assignment_expression "dVar3 = (double)DAT_0029f124" identifier = (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "pdVar9[1] = dVar1 * dVar3;" (assignment_expression "pdVar9[1] = dVar1 * dVar3" (subscript_expression "pdVar9[1]" identifier [ number_literal ]) = (binary_expression "dVar1 * dVar3" identifier * identifier)) ;) (expression_statement "dVar2 = (double)DAT_002a9b58;" (assignment_expression "dVar2 = (double)DAT_002a9b58" identifier = (cast_expression "(double)DAT_002a9b58" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "pdVar9[2] = dVar1 * dVar2;" (assignment_expression "pdVar9[2] = dVar1 * dVar2" (subscript_expression "pdVar9[2]" identifier [ number_literal ]) = (binary_expression "dVar1 * dVar2" identifier * identifier)) ;) (expression_statement "*pdVar10 = DAT_002a9c68 * dVar1;" (assignment_expression "*pdVar10 = DAT_002a9c68 * dVar1" (pointer_expression "*pdVar10" * identifier) = (binary_expression "DAT_002a9c68 * dVar1" identifier * identifier)) ;) (expression_statement "pdVar10[1] = dVar1 * (double)DAT_002a7fe8;" (assignment_expression "pdVar10[1] = dVar1 * (double)DAT_002a7fe8" (subscript_expression "pdVar10[1]" identifier [ number_literal ]) = (binary_expression "dVar1 * (double)DAT_002a7fe8" identifier * (cast_expression "(double)DAT_002a7fe8" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "pdVar10[2] = dVar1 * dVar3;" (assignment_expression "pdVar10[2] = dVar1 * dVar3" (subscript_expression "pdVar10[2]" identifier [ number_literal ]) = (binary_expression "dVar1 * dVar3" identifier * identifier)) ;) (expression_statement "*pdVar8 = dVar1 * dVar4;" (assignment_expression "*pdVar8 = dVar1 * dVar4" (pointer_expression "*pdVar8" * identifier) = (binary_expression "dVar1 * dVar4" identifier * identifier)) ;) (expression_statement "pdVar8[1] = dVar1 * (double)DAT_002a9b54;" (assignment_expression "pdVar8[1] = dVar1 * (double)DAT_002a9b54" (subscript_expression "pdVar8[1]" identifier [ number_literal ]) = (binary_expression "dVar1 * (double)DAT_002a9b54" identifier * (cast_expression "(double)DAT_002a9b54" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "pdVar8[2] = dVar1 * dVar2;" (assignment_expression "pdVar8[2] = dVar1 * dVar2" (subscript_expression "pdVar8[2]" identifier [ number_literal ]) = (binary_expression "dVar1 * dVar2" identifier * identifier)) ;) (expression_statement "pdVar8 = pdVar8 + 3;" (assignment_expression "pdVar8 = pdVar8 + 3" identifier = (binary_expression "pdVar8 + 3" identifier + number_literal)) ;) (expression_statement "pdVar9 = pdVar9 + 3;" (assignment_expression "pdVar9 = pdVar9 + 3" identifier = (binary_expression "pdVar9 + 3" identifier + number_literal)) ;) (expression_statement "pdVar10 = pdVar10 + 3;" (assignment_expression "pdVar10 = pdVar10 + 3" identifier = (binary_expression "pdVar10 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar7 != iVar5)" ( (binary_expression "iVar7 != iVar5" identifier != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression LIT / (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression LIT % (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (return_statement return ;) })))
(function_definition "void FUN_0005f760(int *param_1)\n\n{\n  double dVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  double *pdVar8;\n  double *pdVar9;\n  double *pdVar10;\n  \n  iVar5 = omp_get_num_threads();\n  iVar6 = omp_get_thread_num();\n  dVar4 = DAT_002a9c60;\n  iVar7 = (int)(0x10000 / (longlong)iVar5);\n  iVar5 = (int)(0x10000 % (longlong)iVar5);\n  if (iVar6 < iVar5) {\n    iVar7 = iVar7 + 1;\n    iVar5 = 0;\n  }\n  iVar5 = iVar5 + iVar6 * iVar7;\n  iVar7 = iVar7 + iVar5;\n  if (iVar5 < iVar7) {\n    iVar6 = iVar5 * 0x18;\n    pdVar8 = (double *)(iVar6 + param_1[2]);\n    pdVar9 = (double *)(*param_1 + iVar6);\n    pdVar10 = (double *)(param_1[1] + iVar6);\n    do {\n      dVar1 = (double)iVar5;\n      iVar5 = iVar5 + 1;\n      *pdVar9 = dVar1 * dVar4;\n      dVar3 = (double)DAT_0029f124;\n      pdVar9[1] = dVar1 * dVar3;\n      dVar2 = (double)DAT_002a9b58;\n      pdVar9[2] = dVar1 * dVar2;\n      *pdVar10 = DAT_002a9c68 * dVar1;\n      pdVar10[1] = dVar1 * (double)DAT_002a7fe8;\n      pdVar10[2] = dVar1 * dVar3;\n      *pdVar8 = dVar1 * dVar4;\n      pdVar8[1] = dVar1 * (double)DAT_002a9b54;\n      pdVar8[2] = dVar1 * dVar2;\n      pdVar8 = pdVar8 + 3;\n      pdVar9 = pdVar9 + 3;\n      pdVar10 = pdVar10 + 3;\n    } while (iVar7 != iVar5);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0005f760(int *param_1)" (identifier "FUN_0005f760") (parameter_list "(int *param_1)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  double dVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  double *pdVar8;\n  double *pdVar9;\n  double *pdVar10;\n  \n  iVar5 = omp_get_num_threads();\n  iVar6 = omp_get_thread_num();\n  dVar4 = DAT_002a9c60;\n  iVar7 = (int)(0x10000 / (longlong)iVar5);\n  iVar5 = (int)(0x10000 % (longlong)iVar5);\n  if (iVar6 < iVar5) {\n    iVar7 = iVar7 + 1;\n    iVar5 = 0;\n  }\n  iVar5 = iVar5 + iVar6 * iVar7;\n  iVar7 = iVar7 + iVar5;\n  if (iVar5 < iVar7) {\n    iVar6 = iVar5 * 0x18;\n    pdVar8 = (double *)(iVar6 + param_1[2]);\n    pdVar9 = (double *)(*param_1 + iVar6);\n    pdVar10 = (double *)(param_1[1] + iVar6);\n    do {\n      dVar1 = (double)iVar5;\n      iVar5 = iVar5 + 1;\n      *pdVar9 = dVar1 * dVar4;\n      dVar3 = (double)DAT_0029f124;\n      pdVar9[1] = dVar1 * dVar3;\n      dVar2 = (double)DAT_002a9b58;\n      pdVar9[2] = dVar1 * dVar2;\n      *pdVar10 = DAT_002a9c68 * dVar1;\n      pdVar10[1] = dVar1 * (double)DAT_002a7fe8;\n      pdVar10[2] = dVar1 * dVar3;\n      *pdVar8 = dVar1 * dVar4;\n      pdVar8[1] = dVar1 * (double)DAT_002a9b54;\n      pdVar8[2] = dVar1 * dVar2;\n      pdVar8 = pdVar8 + 3;\n      pdVar9 = pdVar9 + 3;\n      pdVar10 = pdVar10 + 3;\n    } while (iVar7 != iVar5);\n  }\n  return;\n}" ({ "{") (declaration "double dVar1;" (primitive_type "double") (identifier "dVar1") (; ";")) (declaration "double dVar2;" (primitive_type "double") (identifier "dVar2") (; ";")) (declaration "double dVar3;" (primitive_type "double") (identifier "dVar3") (; ";")) (declaration "double dVar4;" (primitive_type "double") (identifier "dVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "double *pdVar8;" (primitive_type "double") (pointer_declarator "*pdVar8" (* "*") (identifier "pdVar8")) (; ";")) (declaration "double *pdVar9;" (primitive_type "double") (pointer_declarator "*pdVar9" (* "*") (identifier "pdVar9")) (; ";")) (declaration "double *pdVar10;" (primitive_type "double") (pointer_declarator "*pdVar10" (* "*") (identifier "pdVar10")) (; ";")) (expression_statement "iVar5 = omp_get_num_threads();" (assignment_expression "iVar5 = omp_get_num_threads()" (identifier "iVar5") (= "=") (call_expression "omp_get_num_threads()" (identifier "omp_get_num_threads") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar6 = omp_get_thread_num();" (assignment_expression "iVar6 = omp_get_thread_num()" (identifier "iVar6") (= "=") (call_expression "omp_get_thread_num()" (identifier "omp_get_thread_num") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "dVar4 = DAT_002a9c60;" (assignment_expression "dVar4 = DAT_002a9c60" (identifier "dVar4") (= "=") (identifier "DAT_002a9c60")) (; ";")) (expression_statement "iVar7 = (int)(0x10000 / (longlong)iVar5);" (assignment_expression "iVar7 = (int)(0x10000 / (longlong)iVar5)" (identifier "iVar7") (= "=") (cast_expression "(int)(0x10000 / (longlong)iVar5)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(0x10000 / (longlong)iVar5)" (( "(") (binary_expression "0x10000 / (longlong)iVar5" (number_literal "0x10000") (/ "/") (cast_expression "(longlong)iVar5" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (identifier "iVar5"))) () ")")))) (; ";")) (expression_statement "iVar5 = (int)(0x10000 % (longlong)iVar5);" (assignment_expression "iVar5 = (int)(0x10000 % (longlong)iVar5)" (identifier "iVar5") (= "=") (cast_expression "(int)(0x10000 % (longlong)iVar5)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(0x10000 % (longlong)iVar5)" (( "(") (binary_expression "0x10000 % (longlong)iVar5" (number_literal "0x10000") (% "%") (cast_expression "(longlong)iVar5" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (identifier "iVar5"))) () ")")))) (; ";")) (if_statement "if (iVar6 < iVar5) {\n    iVar7 = iVar7 + 1;\n    iVar5 = 0;\n  }" (if "if") (parenthesized_expression "(iVar6 < iVar5)" (( "(") (binary_expression "iVar6 < iVar5" (identifier "iVar6") (< "<") (identifier "iVar5")) () ")")) (compound_statement "{\n    iVar7 = iVar7 + 1;\n    iVar5 = 0;\n  }" ({ "{") (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "iVar5 = iVar5 + iVar6 * iVar7;" (assignment_expression "iVar5 = iVar5 + iVar6 * iVar7" (identifier "iVar5") (= "=") (binary_expression "iVar5 + iVar6 * iVar7" (identifier "iVar5") (+ "+") (binary_expression "iVar6 * iVar7" (identifier "iVar6") (* "*") (identifier "iVar7")))) (; ";")) (expression_statement "iVar7 = iVar7 + iVar5;" (assignment_expression "iVar7 = iVar7 + iVar5" (identifier "iVar7") (= "=") (binary_expression "iVar7 + iVar5" (identifier "iVar7") (+ "+") (identifier "iVar5"))) (; ";")) (if_statement "if (iVar5 < iVar7) {\n    iVar6 = iVar5 * 0x18;\n    pdVar8 = (double *)(iVar6 + param_1[2]);\n    pdVar9 = (double *)(*param_1 + iVar6);\n    pdVar10 = (double *)(param_1[1] + iVar6);\n    do {\n      dVar1 = (double)iVar5;\n      iVar5 = iVar5 + 1;\n      *pdVar9 = dVar1 * dVar4;\n      dVar3 = (double)DAT_0029f124;\n      pdVar9[1] = dVar1 * dVar3;\n      dVar2 = (double)DAT_002a9b58;\n      pdVar9[2] = dVar1 * dVar2;\n      *pdVar10 = DAT_002a9c68 * dVar1;\n      pdVar10[1] = dVar1 * (double)DAT_002a7fe8;\n      pdVar10[2] = dVar1 * dVar3;\n      *pdVar8 = dVar1 * dVar4;\n      pdVar8[1] = dVar1 * (double)DAT_002a9b54;\n      pdVar8[2] = dVar1 * dVar2;\n      pdVar8 = pdVar8 + 3;\n      pdVar9 = pdVar9 + 3;\n      pdVar10 = pdVar10 + 3;\n    } while (iVar7 != iVar5);\n  }" (if "if") (parenthesized_expression "(iVar5 < iVar7)" (( "(") (binary_expression "iVar5 < iVar7" (identifier "iVar5") (< "<") (identifier "iVar7")) () ")")) (compound_statement "{\n    iVar6 = iVar5 * 0x18;\n    pdVar8 = (double *)(iVar6 + param_1[2]);\n    pdVar9 = (double *)(*param_1 + iVar6);\n    pdVar10 = (double *)(param_1[1] + iVar6);\n    do {\n      dVar1 = (double)iVar5;\n      iVar5 = iVar5 + 1;\n      *pdVar9 = dVar1 * dVar4;\n      dVar3 = (double)DAT_0029f124;\n      pdVar9[1] = dVar1 * dVar3;\n      dVar2 = (double)DAT_002a9b58;\n      pdVar9[2] = dVar1 * dVar2;\n      *pdVar10 = DAT_002a9c68 * dVar1;\n      pdVar10[1] = dVar1 * (double)DAT_002a7fe8;\n      pdVar10[2] = dVar1 * dVar3;\n      *pdVar8 = dVar1 * dVar4;\n      pdVar8[1] = dVar1 * (double)DAT_002a9b54;\n      pdVar8[2] = dVar1 * dVar2;\n      pdVar8 = pdVar8 + 3;\n      pdVar9 = pdVar9 + 3;\n      pdVar10 = pdVar10 + 3;\n    } while (iVar7 != iVar5);\n  }" ({ "{") (expression_statement "iVar6 = iVar5 * 0x18;" (assignment_expression "iVar6 = iVar5 * 0x18" (identifier "iVar6") (= "=") (binary_expression "iVar5 * 0x18" (identifier "iVar5") (* "*") (number_literal "0x18"))) (; ";")) (expression_statement "pdVar8 = (double *)(iVar6 + param_1[2]);" (assignment_expression "pdVar8 = (double *)(iVar6 + param_1[2])" (identifier "pdVar8") (= "=") (cast_expression "(double *)(iVar6 + param_1[2])" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + param_1[2])" (( "(") (binary_expression "iVar6 + param_1[2]" (identifier "iVar6") (+ "+") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) () ")")))) (; ";")) (expression_statement "pdVar9 = (double *)(*param_1 + iVar6);" (assignment_expression "pdVar9 = (double *)(*param_1 + iVar6)" (identifier "pdVar9") (= "=") (cast_expression "(double *)(*param_1 + iVar6)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + iVar6)" (( "(") (binary_expression "*param_1 + iVar6" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (identifier "iVar6")) () ")")))) (; ";")) (expression_statement "pdVar10 = (double *)(param_1[1] + iVar6);" (assignment_expression "pdVar10 = (double *)(param_1[1] + iVar6)" (identifier "pdVar10") (= "=") (cast_expression "(double *)(param_1[1] + iVar6)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[1] + iVar6)" (( "(") (binary_expression "param_1[1] + iVar6" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (identifier "iVar6")) () ")")))) (; ";")) (do_statement "do {\n      dVar1 = (double)iVar5;\n      iVar5 = iVar5 + 1;\n      *pdVar9 = dVar1 * dVar4;\n      dVar3 = (double)DAT_0029f124;\n      pdVar9[1] = dVar1 * dVar3;\n      dVar2 = (double)DAT_002a9b58;\n      pdVar9[2] = dVar1 * dVar2;\n      *pdVar10 = DAT_002a9c68 * dVar1;\n      pdVar10[1] = dVar1 * (double)DAT_002a7fe8;\n      pdVar10[2] = dVar1 * dVar3;\n      *pdVar8 = dVar1 * dVar4;\n      pdVar8[1] = dVar1 * (double)DAT_002a9b54;\n      pdVar8[2] = dVar1 * dVar2;\n      pdVar8 = pdVar8 + 3;\n      pdVar9 = pdVar9 + 3;\n      pdVar10 = pdVar10 + 3;\n    } while (iVar7 != iVar5);" (do "do") (compound_statement "{\n      dVar1 = (double)iVar5;\n      iVar5 = iVar5 + 1;\n      *pdVar9 = dVar1 * dVar4;\n      dVar3 = (double)DAT_0029f124;\n      pdVar9[1] = dVar1 * dVar3;\n      dVar2 = (double)DAT_002a9b58;\n      pdVar9[2] = dVar1 * dVar2;\n      *pdVar10 = DAT_002a9c68 * dVar1;\n      pdVar10[1] = dVar1 * (double)DAT_002a7fe8;\n      pdVar10[2] = dVar1 * dVar3;\n      *pdVar8 = dVar1 * dVar4;\n      pdVar8[1] = dVar1 * (double)DAT_002a9b54;\n      pdVar8[2] = dVar1 * dVar2;\n      pdVar8 = pdVar8 + 3;\n      pdVar9 = pdVar9 + 3;\n      pdVar10 = pdVar10 + 3;\n    }" ({ "{") (expression_statement "dVar1 = (double)iVar5;" (assignment_expression "dVar1 = (double)iVar5" (identifier "dVar1") (= "=") (cast_expression "(double)iVar5" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar5"))) (; ";")) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pdVar9 = dVar1 * dVar4;" (assignment_expression "*pdVar9 = dVar1 * dVar4" (pointer_expression "*pdVar9" (* "*") (identifier "pdVar9")) (= "=") (binary_expression "dVar1 * dVar4" (identifier "dVar1") (* "*") (identifier "dVar4"))) (; ";")) (expression_statement "dVar3 = (double)DAT_0029f124;" (assignment_expression "dVar3 = (double)DAT_0029f124" (identifier "dVar3") (= "=") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) (; ";")) (expression_statement "pdVar9[1] = dVar1 * dVar3;" (assignment_expression "pdVar9[1] = dVar1 * dVar3" (subscript_expression "pdVar9[1]" (identifier "pdVar9") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "dVar1 * dVar3" (identifier "dVar1") (* "*") (identifier "dVar3"))) (; ";")) (expression_statement "dVar2 = (double)DAT_002a9b58;" (assignment_expression "dVar2 = (double)DAT_002a9b58" (identifier "dVar2") (= "=") (cast_expression "(double)DAT_002a9b58" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002a9b58"))) (; ";")) (expression_statement "pdVar9[2] = dVar1 * dVar2;" (assignment_expression "pdVar9[2] = dVar1 * dVar2" (subscript_expression "pdVar9[2]" (identifier "pdVar9") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "dVar1 * dVar2" (identifier "dVar1") (* "*") (identifier "dVar2"))) (; ";")) (expression_statement "*pdVar10 = DAT_002a9c68 * dVar1;" (assignment_expression "*pdVar10 = DAT_002a9c68 * dVar1" (pointer_expression "*pdVar10" (* "*") (identifier "pdVar10")) (= "=") (binary_expression "DAT_002a9c68 * dVar1" (identifier "DAT_002a9c68") (* "*") (identifier "dVar1"))) (; ";")) (expression_statement "pdVar10[1] = dVar1 * (double)DAT_002a7fe8;" (assignment_expression "pdVar10[1] = dVar1 * (double)DAT_002a7fe8" (subscript_expression "pdVar10[1]" (identifier "pdVar10") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "dVar1 * (double)DAT_002a7fe8" (identifier "dVar1") (* "*") (cast_expression "(double)DAT_002a7fe8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002a7fe8")))) (; ";")) (expression_statement "pdVar10[2] = dVar1 * dVar3;" (assignment_expression "pdVar10[2] = dVar1 * dVar3" (subscript_expression "pdVar10[2]" (identifier "pdVar10") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "dVar1 * dVar3" (identifier "dVar1") (* "*") (identifier "dVar3"))) (; ";")) (expression_statement "*pdVar8 = dVar1 * dVar4;" (assignment_expression "*pdVar8 = dVar1 * dVar4" (pointer_expression "*pdVar8" (* "*") (identifier "pdVar8")) (= "=") (binary_expression "dVar1 * dVar4" (identifier "dVar1") (* "*") (identifier "dVar4"))) (; ";")) (expression_statement "pdVar8[1] = dVar1 * (double)DAT_002a9b54;" (assignment_expression "pdVar8[1] = dVar1 * (double)DAT_002a9b54" (subscript_expression "pdVar8[1]" (identifier "pdVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "dVar1 * (double)DAT_002a9b54" (identifier "dVar1") (* "*") (cast_expression "(double)DAT_002a9b54" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002a9b54")))) (; ";")) (expression_statement "pdVar8[2] = dVar1 * dVar2;" (assignment_expression "pdVar8[2] = dVar1 * dVar2" (subscript_expression "pdVar8[2]" (identifier "pdVar8") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "dVar1 * dVar2" (identifier "dVar1") (* "*") (identifier "dVar2"))) (; ";")) (expression_statement "pdVar8 = pdVar8 + 3;" (assignment_expression "pdVar8 = pdVar8 + 3" (identifier "pdVar8") (= "=") (binary_expression "pdVar8 + 3" (identifier "pdVar8") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "pdVar9 = pdVar9 + 3;" (assignment_expression "pdVar9 = pdVar9 + 3" (identifier "pdVar9") (= "=") (binary_expression "pdVar9 + 3" (identifier "pdVar9") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "pdVar10 = pdVar10 + 3;" (assignment_expression "pdVar10 = pdVar10 + 3" (identifier "pdVar10") (= "=") (binary_expression "pdVar10 + 3" (identifier "pdVar10") (+ "+") (number_literal "3"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar7 != iVar5)" (( "(") (binary_expression "iVar7 != iVar5" (identifier "iVar7") (!= "!=") (identifier "iVar5")) () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: void sRGBTransformImage._omp_fn.20(anon_struct_12_3_5c5126da * param_0)
    */

void __thiscall function_1(type_1 *this)

{
  double var_6;
  double var_9;
  double var_8;
  double var_7;
  int var_4;
  int var_3;
  int var_5;
  type_2 *var_11;
  type_2 *var_12;
  type_2 *var_13;
  
  var_4 = var_1();
  var_3 = var_2();
  var_7 = DAT_002a9c60;
  var_5 = (int)(0x10000 / (type_3)var_4);
  var_4 = (int)(0x10000 % (type_3)var_4);
  if (var_3 < var_4) {
    var_5 = var_5 + 1;
    var_4 = 0;
  }
  var_4 = var_4 + var_3 * var_5;
  var_5 = var_5 + var_4;
  if (var_4 < var_5) {
    var_11 = this->z_map + var_4;
    var_12 = this->x_map + var_4;
    var_13 = this->y_map + var_4;
    do {
      var_6 = (double)var_4;
      var_4 = var_4 + 1;
      var_12->x = var_6 * var_7;
      var_8 = (double)DAT_0029f124;
      var_12->y = var_6 * var_8;
      var_9 = (double)DAT_002a9b58;
      var_12->z = var_6 * var_9;
      var_13->x = var_10 * var_6;
      var_13->y = var_6 * (double)DAT_002a7fe8;
      var_13->z = var_6 * var_8;
      var_11->x = var_6 * var_7;
      var_11->y = var_6 * (double)DAT_002a9b54;
      var_11->z = var_6 * var_9;
      var_11 = var_11 + 1;
      var_12 = var_12 + 1;
      var_13 = var_13 + 1;
    } while (var_5 != var_4);
  }
  return;
}


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

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

void MASKED(int *param_1)

{
  double dVar1;
  double dVar2;
  double dVar3;
  double dVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  double *pdVar8;
  double *pdVar9;
  double *pdVar10;
  
  iVar5 = omp_get_num_threads();
  iVar6 = omp_get_thread_num();
  dVar4 = DAT_002a9c60;
  iVar7 = (int)(0x10000 / (longlong)iVar5);
  iVar5 = (int)(0x10000 % (longlong)iVar5);
  if (iVar6 < iVar5) {
    iVar7 = iVar7 + 1;
    iVar5 = 0;
  }
  iVar5 = iVar5 + iVar6 * iVar7;
  iVar7 = iVar7 + iVar5;
  if (iVar5 < iVar7) {
    iVar6 = iVar5 * 0x18;
    pdVar8 = (double *)(iVar6 + param_1[2]);
    pdVar9 = (double *)(*param_1 + iVar6);
    pdVar10 = (double *)(param_1[1] + iVar6);
    do {
      dVar1 = (double)iVar5;
      iVar5 = iVar5 + 1;
      *pdVar9 = dVar1 * dVar4;
      dVar3 = (double)DAT_0029f124;
      pdVar9[1] = dVar1 * dVar3;
      dVar2 = (double)DAT_002a9b58;
      pdVar9[2] = dVar1 * dVar2;
      *pdVar10 = DAT_002a9c68 * dVar1;
      pdVar10[1] = dVar1 * (double)DAT_002a7fe8;
      pdVar10[2] = dVar1 * dVar3;
      *pdVar8 = dVar1 * dVar4;
      pdVar8[1] = dVar1 * (double)DAT_002a9b54;
      pdVar8[2] = dVar1 * dVar2;
      pdVar8 = pdVar8 + 3;
      pdVar9 = pdVar9 + 3;
      pdVar10 = pdVar10 + 3;
    } while (iVar7 != iVar5);
  }
  return;
}

