
void DerivativeHistogram(double *histogram,double *derivative)

{
  double *pdVar1;
  double *pdVar3;
  double dVar4;
  double *pdVar2;
  
  dVar4 = *(double *)(PTR_LAB_003a88e0 + 0x1400);
  *derivative = (*histogram * *(double *)(PTR_s_courses_003a88ec + -0x49c0) +
                histogram[1] + histogram[1]) - histogram[2] * dVar4;
  derivative[0xff] =
       histogram[0xff] * *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540) +
       (histogram[0xfd] * dVar4 - (histogram[0xfe] + histogram[0xfe]));
  pdVar1 = histogram;
  pdVar3 = derivative + 1;
  do {
    pdVar2 = pdVar1 + 1;
    *pdVar3 = (pdVar1[2] - *pdVar1) * dVar4;
    pdVar1 = pdVar2;
    pdVar3 = pdVar3 + 1;
  } while (histogram + 0xfe != pdVar2);
  return;
}



void FUN_0019c1c0(double *param_1,double *param_2)

{
  double *pdVar1;
  double *pdVar3;
  double dVar4;
  double *pdVar2;
  
  dVar4 = *(double *)(PTR_LAB_003a88e0 + 0x1400);
  *param_2 = (*param_1 * *(double *)(PTR_s_courses_003a88ec + -0x49c0) + param_1[1] + param_1[1]) -
             param_1[2] * dVar4;
  param_2[0xff] =
       param_1[0xff] * *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540) +
       (param_1[0xfd] * dVar4 - (param_1[0xfe] + param_1[0xfe]));
  pdVar1 = param_1;
  pdVar3 = param_2 + 1;
  do {
    pdVar2 = pdVar1 + 1;
    *pdVar3 = (pdVar1[2] - *pdVar1) * dVar4;
    pdVar1 = pdVar2;
    pdVar3 = pdVar3 + 1;
  } while (param_1 + 0xfe != pdVar2);
  return;
}


lui gp,0x21
addiu gp,gp,0x46f0
addu gp,gp,t9
ldc1 f2,0x8(a0)
or v0,a0,zero
lw a3,-0x7fd0(gp)
addiu a2,a0,0x7f0
ldc1 f0,0x0(a0)
addiu v1,a1,0x8
ldc1 f8,0x1400(a3)
lw a3,-0x7fc4(gp)
ldc1 f6,0x10(a0)
add.D f2,f2,f2
ldc1 f4,-0x49c0(a3)
mul.D f6,f6,f8
madd.D f0,f2,f0,f4
mov.D f4,f8
sub.D D f0,f0,f6
sdc1 f0,0x0(a1)
ldc1 f0,0x7f0(a0)
ldc1 f6,0x7e8(a0)
ldc1 f2,0x7f8(a0)
lw a0,-0x7fc8(gp)
add.D f0,f0,f0
msub.D f0,f0,f6,f8
ldc1 f6,-0x3540(a0)
madd.D f0,f0,f2,f6
sdc1 f0,0x7f8(a1)
addiu v0,v0,0x8
ldc1 f0,0x8(v0)
addiu v1,v1,0x8
ldc1 f2,-0x8(v0)
sub.D D f0,f0,f2
mul.D f0,f0,f4
bne a2,v0,0x0019c230
_sdc1 f0,-0x8(v1)
jr ra
_nop
(translation_unit "void FUN_0019c1c0(double *param_1,double *param_2)\n\n{\n  double *pdVar1;\n  double *pdVar3;\n  double dVar4;\n  double *pdVar2;\n  \n  dVar4 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n  *param_2 = (*param_1 * *(double *)(PTR_s_courses_003a88ec + -0x49c0) + param_1[1] + param_1[1]) -\n             param_1[2] * dVar4;\n  param_2[0xff] =\n       param_1[0xff] * *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540) +\n       (param_1[0xfd] * dVar4 - (param_1[0xfe] + param_1[0xfe]));\n  pdVar1 = param_1;\n  pdVar3 = param_2 + 1;\n  do {\n    pdVar2 = pdVar1 + 1;\n    *pdVar3 = (pdVar1[2] - *pdVar1) * dVar4;\n    pdVar1 = pdVar2;\n    pdVar3 = pdVar3 + 1;\n  } while (param_1 + 0xfe != pdVar2);\n  return;\n}\n\n" (function_definition "void FUN_0019c1c0(double *param_1,double *param_2)\n\n{\n  double *pdVar1;\n  double *pdVar3;\n  double dVar4;\n  double *pdVar2;\n  \n  dVar4 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n  *param_2 = (*param_1 * *(double *)(PTR_s_courses_003a88ec + -0x49c0) + param_1[1] + param_1[1]) -\n             param_1[2] * dVar4;\n  param_2[0xff] =\n       param_1[0xff] * *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540) +\n       (param_1[0xfd] * dVar4 - (param_1[0xfe] + param_1[0xfe]));\n  pdVar1 = param_1;\n  pdVar3 = param_2 + 1;\n  do {\n    pdVar2 = pdVar1 + 1;\n    *pdVar3 = (pdVar1[2] - *pdVar1) * dVar4;\n    pdVar1 = pdVar2;\n    pdVar3 = pdVar3 + 1;\n  } while (param_1 + 0xfe != pdVar2);\n  return;\n}" primitive_type (function_declarator "FUN_0019c1c0(double *param_1,double *param_2)" identifier (parameter_list "(double *param_1,double *param_2)" ( (parameter_declaration "double *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "double *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  double *pdVar1;\n  double *pdVar3;\n  double dVar4;\n  double *pdVar2;\n  \n  dVar4 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n  *param_2 = (*param_1 * *(double *)(PTR_s_courses_003a88ec + -0x49c0) + param_1[1] + param_1[1]) -\n             param_1[2] * dVar4;\n  param_2[0xff] =\n       param_1[0xff] * *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540) +\n       (param_1[0xfd] * dVar4 - (param_1[0xfe] + param_1[0xfe]));\n  pdVar1 = param_1;\n  pdVar3 = param_2 + 1;\n  do {\n    pdVar2 = pdVar1 + 1;\n    *pdVar3 = (pdVar1[2] - *pdVar1) * dVar4;\n    pdVar1 = pdVar2;\n    pdVar3 = pdVar3 + 1;\n  } while (param_1 + 0xfe != pdVar2);\n  return;\n}" { (declaration "double *pdVar1;" primitive_type (pointer_declarator "*pdVar1" * identifier) ;) (declaration "double *pdVar3;" primitive_type (pointer_declarator "*pdVar3" * identifier) ;) (declaration "double dVar4;" primitive_type identifier ;) (declaration "double *pdVar2;" primitive_type (pointer_declarator "*pdVar2" * identifier) ;) (expression_statement "dVar4 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar4 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "*param_2 = (*param_1 * *(double *)(PTR_s_courses_003a88ec + -0x49c0) + param_1[1] + param_1[1]) -\n             param_1[2] * dVar4;" (assignment_expression "*param_2 = (*param_1 * *(double *)(PTR_s_courses_003a88ec + -0x49c0) + param_1[1] + param_1[1]) -\n             param_1[2] * dVar4" (pointer_expression "*param_2" * identifier) = (binary_expression "(*param_1 * *(double *)(PTR_s_courses_003a88ec + -0x49c0) + param_1[1] + param_1[1]) -\n             param_1[2] * dVar4" (parenthesized_expression "(*param_1 * *(double *)(PTR_s_courses_003a88ec + -0x49c0) + param_1[1] + param_1[1])" ( (binary_expression "*param_1 * *(double *)(PTR_s_courses_003a88ec + -0x49c0) + param_1[1] + param_1[1]" (binary_expression "*param_1 * *(double *)(PTR_s_courses_003a88ec + -0x49c0) + param_1[1]" (binary_expression "*param_1 * *(double *)(PTR_s_courses_003a88ec + -0x49c0)" (pointer_expression "*param_1" * identifier) * (pointer_expression "*(double *)(PTR_s_courses_003a88ec + -0x49c0)" * (cast_expression "(double *)(PTR_s_courses_003a88ec + -0x49c0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0x49c0)" ( (binary_expression "PTR_s_courses_003a88ec + -0x49c0" identifier + number_literal) ))))) + (subscript_expression "param_1[1]" identifier [ number_literal ])) + (subscript_expression "param_1[1]" identifier [ number_literal ])) )) - (binary_expression "param_1[2] * dVar4" (subscript_expression "param_1[2]" identifier [ number_literal ]) * identifier))) ;) (expression_statement "param_2[0xff] =\n       param_1[0xff] * *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540) +\n       (param_1[0xfd] * dVar4 - (param_1[0xfe] + param_1[0xfe]));" (assignment_expression "param_2[0xff] =\n       param_1[0xff] * *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540) +\n       (param_1[0xfd] * dVar4 - (param_1[0xfe] + param_1[0xfe]))" (subscript_expression "param_2[0xff]" identifier [ number_literal ]) = (binary_expression "param_1[0xff] * *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540) +\n       (param_1[0xfd] * dVar4 - (param_1[0xfe] + param_1[0xfe]))" (binary_expression "param_1[0xff] * *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540)" (subscript_expression "param_1[0xff]" identifier [ number_literal ]) * (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540" identifier + number_literal) ))))) + (parenthesized_expression "(param_1[0xfd] * dVar4 - (param_1[0xfe] + param_1[0xfe]))" ( (binary_expression "param_1[0xfd] * dVar4 - (param_1[0xfe] + param_1[0xfe])" (binary_expression "param_1[0xfd] * dVar4" (subscript_expression "param_1[0xfd]" identifier [ number_literal ]) * identifier) - (parenthesized_expression "(param_1[0xfe] + param_1[0xfe])" ( (binary_expression "param_1[0xfe] + param_1[0xfe]" (subscript_expression "param_1[0xfe]" identifier [ number_literal ]) + (subscript_expression "param_1[0xfe]" identifier [ number_literal ])) ))) )))) ;) (expression_statement "pdVar1 = param_1;" (assignment_expression "pdVar1 = param_1" identifier = identifier) ;) (expression_statement "pdVar3 = param_2 + 1;" (assignment_expression "pdVar3 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (do_statement "do {\n    pdVar2 = pdVar1 + 1;\n    *pdVar3 = (pdVar1[2] - *pdVar1) * dVar4;\n    pdVar1 = pdVar2;\n    pdVar3 = pdVar3 + 1;\n  } while (param_1 + 0xfe != pdVar2);" do (compound_statement "{\n    pdVar2 = pdVar1 + 1;\n    *pdVar3 = (pdVar1[2] - *pdVar1) * dVar4;\n    pdVar1 = pdVar2;\n    pdVar3 = pdVar3 + 1;\n  }" { (expression_statement "pdVar2 = pdVar1 + 1;" (assignment_expression "pdVar2 = pdVar1 + 1" identifier = (binary_expression "pdVar1 + 1" identifier + number_literal)) ;) (expression_statement "*pdVar3 = (pdVar1[2] - *pdVar1) * dVar4;" (assignment_expression "*pdVar3 = (pdVar1[2] - *pdVar1) * dVar4" (pointer_expression "*pdVar3" * identifier) = (binary_expression "(pdVar1[2] - *pdVar1) * dVar4" (parenthesized_expression "(pdVar1[2] - *pdVar1)" ( (binary_expression "pdVar1[2] - *pdVar1" (subscript_expression "pdVar1[2]" identifier [ number_literal ]) - (pointer_expression "*pdVar1" * identifier)) )) * identifier)) ;) (expression_statement "pdVar1 = pdVar2;" (assignment_expression "pdVar1 = pdVar2" identifier = identifier) ;) (expression_statement "pdVar3 = pdVar3 + 1;" (assignment_expression "pdVar3 = pdVar3 + 1" identifier = (binary_expression "pdVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(param_1 + 0xfe != pdVar2)" ( (binary_expression "param_1 + 0xfe != pdVar2" (binary_expression "param_1 + 0xfe" identifier + number_literal) != identifier) )) ;) (return_statement "return;" return ;) })))
(translation_unit "void DerivativeHistogram(double *histogram,double *derivative)\n\n{\n  double *pdVar1;\n  double *pdVar3;\n  double dVar4;\n  double *pdVar2;\n  \n  dVar4 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n  *derivative = (*histogram * *(double *)(PTR_s_courses_003a88ec + -0x49c0) +\n                histogram[1] + histogram[1]) - histogram[2] * dVar4;\n  derivative[0xff] =\n       histogram[0xff] * *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540) +\n       (histogram[0xfd] * dVar4 - (histogram[0xfe] + histogram[0xfe]));\n  pdVar1 = histogram;\n  pdVar3 = derivative + 1;\n  do {\n    pdVar2 = pdVar1 + 1;\n    *pdVar3 = (pdVar1[2] - *pdVar1) * dVar4;\n    pdVar1 = pdVar2;\n    pdVar3 = pdVar3 + 1;\n  } while (histogram + 0xfe != pdVar2);\n  return;\n}\n\n" (function_definition "void DerivativeHistogram(double *histogram,double *derivative)\n\n{\n  double *pdVar1;\n  double *pdVar3;\n  double dVar4;\n  double *pdVar2;\n  \n  dVar4 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n  *derivative = (*histogram * *(double *)(PTR_s_courses_003a88ec + -0x49c0) +\n                histogram[1] + histogram[1]) - histogram[2] * dVar4;\n  derivative[0xff] =\n       histogram[0xff] * *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540) +\n       (histogram[0xfd] * dVar4 - (histogram[0xfe] + histogram[0xfe]));\n  pdVar1 = histogram;\n  pdVar3 = derivative + 1;\n  do {\n    pdVar2 = pdVar1 + 1;\n    *pdVar3 = (pdVar1[2] - *pdVar1) * dVar4;\n    pdVar1 = pdVar2;\n    pdVar3 = pdVar3 + 1;\n  } while (histogram + 0xfe != pdVar2);\n  return;\n}" primitive_type (function_declarator "DerivativeHistogram(double *histogram,double *derivative)" identifier (parameter_list "(double *histogram,double *derivative)" ( (parameter_declaration "double *histogram" primitive_type (pointer_declarator "*histogram" * identifier)) , (parameter_declaration "double *derivative" primitive_type (pointer_declarator "*derivative" * identifier)) ))) (compound_statement "{\n  double *pdVar1;\n  double *pdVar3;\n  double dVar4;\n  double *pdVar2;\n  \n  dVar4 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n  *derivative = (*histogram * *(double *)(PTR_s_courses_003a88ec + -0x49c0) +\n                histogram[1] + histogram[1]) - histogram[2] * dVar4;\n  derivative[0xff] =\n       histogram[0xff] * *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540) +\n       (histogram[0xfd] * dVar4 - (histogram[0xfe] + histogram[0xfe]));\n  pdVar1 = histogram;\n  pdVar3 = derivative + 1;\n  do {\n    pdVar2 = pdVar1 + 1;\n    *pdVar3 = (pdVar1[2] - *pdVar1) * dVar4;\n    pdVar1 = pdVar2;\n    pdVar3 = pdVar3 + 1;\n  } while (histogram + 0xfe != pdVar2);\n  return;\n}" { (declaration "double *pdVar1;" primitive_type (pointer_declarator "*pdVar1" * identifier) ;) (declaration "double *pdVar3;" primitive_type (pointer_declarator "*pdVar3" * identifier) ;) (declaration "double dVar4;" primitive_type identifier ;) (declaration "double *pdVar2;" primitive_type (pointer_declarator "*pdVar2" * identifier) ;) (expression_statement "dVar4 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar4 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "*derivative = (*histogram * *(double *)(PTR_s_courses_003a88ec + -0x49c0) +\n                histogram[1] + histogram[1]) - histogram[2] * dVar4;" (assignment_expression "*derivative = (*histogram * *(double *)(PTR_s_courses_003a88ec + -0x49c0) +\n                histogram[1] + histogram[1]) - histogram[2] * dVar4" (pointer_expression "*derivative" * identifier) = (binary_expression "(*histogram * *(double *)(PTR_s_courses_003a88ec + -0x49c0) +\n                histogram[1] + histogram[1]) - histogram[2] * dVar4" (parenthesized_expression "(*histogram * *(double *)(PTR_s_courses_003a88ec + -0x49c0) +\n                histogram[1] + histogram[1])" ( (binary_expression "*histogram * *(double *)(PTR_s_courses_003a88ec + -0x49c0) +\n                histogram[1] + histogram[1]" (binary_expression "*histogram * *(double *)(PTR_s_courses_003a88ec + -0x49c0) +\n                histogram[1]" (binary_expression "*histogram * *(double *)(PTR_s_courses_003a88ec + -0x49c0)" (pointer_expression "*histogram" * identifier) * (pointer_expression "*(double *)(PTR_s_courses_003a88ec + -0x49c0)" * (cast_expression "(double *)(PTR_s_courses_003a88ec + -0x49c0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0x49c0)" ( (binary_expression "PTR_s_courses_003a88ec + -0x49c0" identifier + number_literal) ))))) + (subscript_expression "histogram[1]" identifier [ number_literal ])) + (subscript_expression "histogram[1]" identifier [ number_literal ])) )) - (binary_expression "histogram[2] * dVar4" (subscript_expression "histogram[2]" identifier [ number_literal ]) * identifier))) ;) (expression_statement "derivative[0xff] =\n       histogram[0xff] * *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540) +\n       (histogram[0xfd] * dVar4 - (histogram[0xfe] + histogram[0xfe]));" (assignment_expression "derivative[0xff] =\n       histogram[0xff] * *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540) +\n       (histogram[0xfd] * dVar4 - (histogram[0xfe] + histogram[0xfe]))" (subscript_expression "derivative[0xff]" identifier [ number_literal ]) = (binary_expression "histogram[0xff] * *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540) +\n       (histogram[0xfd] * dVar4 - (histogram[0xfe] + histogram[0xfe]))" (binary_expression "histogram[0xff] * *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540)" (subscript_expression "histogram[0xff]" identifier [ number_literal ]) * (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540" identifier + number_literal) ))))) + (parenthesized_expression "(histogram[0xfd] * dVar4 - (histogram[0xfe] + histogram[0xfe]))" ( (binary_expression "histogram[0xfd] * dVar4 - (histogram[0xfe] + histogram[0xfe])" (binary_expression "histogram[0xfd] * dVar4" (subscript_expression "histogram[0xfd]" identifier [ number_literal ]) * identifier) - (parenthesized_expression "(histogram[0xfe] + histogram[0xfe])" ( (binary_expression "histogram[0xfe] + histogram[0xfe]" (subscript_expression "histogram[0xfe]" identifier [ number_literal ]) + (subscript_expression "histogram[0xfe]" identifier [ number_literal ])) ))) )))) ;) (expression_statement "pdVar1 = histogram;" (assignment_expression "pdVar1 = histogram" identifier = identifier) ;) (expression_statement "pdVar3 = derivative + 1;" (assignment_expression "pdVar3 = derivative + 1" identifier = (binary_expression "derivative + 1" identifier + number_literal)) ;) (do_statement "do {\n    pdVar2 = pdVar1 + 1;\n    *pdVar3 = (pdVar1[2] - *pdVar1) * dVar4;\n    pdVar1 = pdVar2;\n    pdVar3 = pdVar3 + 1;\n  } while (histogram + 0xfe != pdVar2);" do (compound_statement "{\n    pdVar2 = pdVar1 + 1;\n    *pdVar3 = (pdVar1[2] - *pdVar1) * dVar4;\n    pdVar1 = pdVar2;\n    pdVar3 = pdVar3 + 1;\n  }" { (expression_statement "pdVar2 = pdVar1 + 1;" (assignment_expression "pdVar2 = pdVar1 + 1" identifier = (binary_expression "pdVar1 + 1" identifier + number_literal)) ;) (expression_statement "*pdVar3 = (pdVar1[2] - *pdVar1) * dVar4;" (assignment_expression "*pdVar3 = (pdVar1[2] - *pdVar1) * dVar4" (pointer_expression "*pdVar3" * identifier) = (binary_expression "(pdVar1[2] - *pdVar1) * dVar4" (parenthesized_expression "(pdVar1[2] - *pdVar1)" ( (binary_expression "pdVar1[2] - *pdVar1" (subscript_expression "pdVar1[2]" identifier [ number_literal ]) - (pointer_expression "*pdVar1" * identifier)) )) * identifier)) ;) (expression_statement "pdVar1 = pdVar2;" (assignment_expression "pdVar1 = pdVar2" identifier = identifier) ;) (expression_statement "pdVar3 = pdVar3 + 1;" (assignment_expression "pdVar3 = pdVar3 + 1" identifier = (binary_expression "pdVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(histogram + 0xfe != pdVar2)" ( (binary_expression "histogram + 0xfe != pdVar2" (binary_expression "histogram + 0xfe" identifier + number_literal) != identifier) )) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0019c1c0(double *param_1,double *param_2)\n\n{\n  double *pdVar1;\n  double *pdVar3;\n  double dVar4;\n  double *pdVar2;\n  \n  dVar4 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n  *param_2 = (*param_1 * *(double *)(PTR_s_courses_003a88ec + -0x49c0) + param_1[1] + param_1[1]) -\n             param_1[2] * dVar4;\n  param_2[0xff] =\n       param_1[0xff] * *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540) +\n       (param_1[0xfd] * dVar4 - (param_1[0xfe] + param_1[0xfe]));\n  pdVar1 = param_1;\n  pdVar3 = param_2 + 1;\n  do {\n    pdVar2 = pdVar1 + 1;\n    *pdVar3 = (pdVar1[2] - *pdVar1) * dVar4;\n    pdVar1 = pdVar2;\n    pdVar3 = pdVar3 + 1;\n  } while (param_1 + 0xfe != pdVar2);\n  return;\n}\n\n" (function_definition "void FUN_0019c1c0(double *param_1,double *param_2)\n\n{\n  double *pdVar1;\n  double *pdVar3;\n  double dVar4;\n  double *pdVar2;\n  \n  dVar4 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n  *param_2 = (*param_1 * *(double *)(PTR_s_courses_003a88ec + -0x49c0) + param_1[1] + param_1[1]) -\n             param_1[2] * dVar4;\n  param_2[0xff] =\n       param_1[0xff] * *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540) +\n       (param_1[0xfd] * dVar4 - (param_1[0xfe] + param_1[0xfe]));\n  pdVar1 = param_1;\n  pdVar3 = param_2 + 1;\n  do {\n    pdVar2 = pdVar1 + 1;\n    *pdVar3 = (pdVar1[2] - *pdVar1) * dVar4;\n    pdVar1 = pdVar2;\n    pdVar3 = pdVar3 + 1;\n  } while (param_1 + 0xfe != pdVar2);\n  return;\n}" primitive_type (function_declarator "FUN_0019c1c0(double *param_1,double *param_2)" identifier (parameter_list "(double *param_1,double *param_2)" ( (parameter_declaration "double *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "double *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  double *pdVar1;\n  double *pdVar3;\n  double dVar4;\n  double *pdVar2;\n  \n  dVar4 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n  *param_2 = (*param_1 * *(double *)(PTR_s_courses_003a88ec + -0x49c0) + param_1[1] + param_1[1]) -\n             param_1[2] * dVar4;\n  param_2[0xff] =\n       param_1[0xff] * *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540) +\n       (param_1[0xfd] * dVar4 - (param_1[0xfe] + param_1[0xfe]));\n  pdVar1 = param_1;\n  pdVar3 = param_2 + 1;\n  do {\n    pdVar2 = pdVar1 + 1;\n    *pdVar3 = (pdVar1[2] - *pdVar1) * dVar4;\n    pdVar1 = pdVar2;\n    pdVar3 = pdVar3 + 1;\n  } while (param_1 + 0xfe != pdVar2);\n  return;\n}" { (declaration "double *pdVar1;" primitive_type (pointer_declarator "*pdVar1" * identifier) ;) (declaration "double *pdVar3;" primitive_type (pointer_declarator "*pdVar3" * identifier) ;) (declaration "double dVar4;" primitive_type identifier ;) (declaration "double *pdVar2;" primitive_type (pointer_declarator "*pdVar2" * identifier) ;) (expression_statement "dVar4 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar4 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "*param_2 = (*param_1 * *(double *)(PTR_s_courses_003a88ec + -0x49c0) + param_1[1] + param_1[1]) -\n             param_1[2] * dVar4;" (assignment_expression "*param_2 = (*param_1 * *(double *)(PTR_s_courses_003a88ec + -0x49c0) + param_1[1] + param_1[1]) -\n             param_1[2] * dVar4" (pointer_expression "*param_2" * identifier) = (binary_expression "(*param_1 * *(double *)(PTR_s_courses_003a88ec + -0x49c0) + param_1[1] + param_1[1]) -\n             param_1[2] * dVar4" (parenthesized_expression "(*param_1 * *(double *)(PTR_s_courses_003a88ec + -0x49c0) + param_1[1] + param_1[1])" ( (binary_expression "*param_1 * *(double *)(PTR_s_courses_003a88ec + -0x49c0) + param_1[1] + param_1[1]" (binary_expression "*param_1 * *(double *)(PTR_s_courses_003a88ec + -0x49c0) + param_1[1]" (binary_expression "*param_1 * *(double *)(PTR_s_courses_003a88ec + -0x49c0)" (pointer_expression "*param_1" * identifier) * (pointer_expression "*(double *)(PTR_s_courses_003a88ec + -0x49c0)" * (cast_expression "(double *)(PTR_s_courses_003a88ec + -0x49c0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0x49c0)" ( (binary_expression "PTR_s_courses_003a88ec + -0x49c0" identifier + number_literal) ))))) + (subscript_expression "param_1[1]" identifier [ number_literal ])) + (subscript_expression "param_1[1]" identifier [ number_literal ])) )) - (binary_expression "param_1[2] * dVar4" (subscript_expression "param_1[2]" identifier [ number_literal ]) * identifier))) ;) (expression_statement "param_2[0xff] =\n       param_1[0xff] * *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540) +\n       (param_1[0xfd] * dVar4 - (param_1[0xfe] + param_1[0xfe]));" (assignment_expression "param_2[0xff] =\n       param_1[0xff] * *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540) +\n       (param_1[0xfd] * dVar4 - (param_1[0xfe] + param_1[0xfe]))" (subscript_expression "param_2[0xff]" identifier [ number_literal ]) = (binary_expression "param_1[0xff] * *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540) +\n       (param_1[0xfd] * dVar4 - (param_1[0xfe] + param_1[0xfe]))" (binary_expression "param_1[0xff] * *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540)" (subscript_expression "param_1[0xff]" identifier [ number_literal ]) * (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540" identifier + number_literal) ))))) + (parenthesized_expression "(param_1[0xfd] * dVar4 - (param_1[0xfe] + param_1[0xfe]))" ( (binary_expression "param_1[0xfd] * dVar4 - (param_1[0xfe] + param_1[0xfe])" (binary_expression "param_1[0xfd] * dVar4" (subscript_expression "param_1[0xfd]" identifier [ number_literal ]) * identifier) - (parenthesized_expression "(param_1[0xfe] + param_1[0xfe])" ( (binary_expression "param_1[0xfe] + param_1[0xfe]" (subscript_expression "param_1[0xfe]" identifier [ number_literal ]) + (subscript_expression "param_1[0xfe]" identifier [ number_literal ])) ))) )))) ;) (expression_statement "pdVar1 = param_1;" (assignment_expression "pdVar1 = param_1" identifier = identifier) ;) (expression_statement "pdVar3 = param_2 + 1;" (assignment_expression "pdVar3 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (do_statement "do {\n    pdVar2 = pdVar1 + 1;\n    *pdVar3 = (pdVar1[2] - *pdVar1) * dVar4;\n    pdVar1 = pdVar2;\n    pdVar3 = pdVar3 + 1;\n  } while (param_1 + 0xfe != pdVar2);" do (compound_statement "{\n    pdVar2 = pdVar1 + 1;\n    *pdVar3 = (pdVar1[2] - *pdVar1) * dVar4;\n    pdVar1 = pdVar2;\n    pdVar3 = pdVar3 + 1;\n  }" { (expression_statement "pdVar2 = pdVar1 + 1;" (assignment_expression "pdVar2 = pdVar1 + 1" identifier = (binary_expression "pdVar1 + 1" identifier + number_literal)) ;) (expression_statement "*pdVar3 = (pdVar1[2] - *pdVar1) * dVar4;" (assignment_expression "*pdVar3 = (pdVar1[2] - *pdVar1) * dVar4" (pointer_expression "*pdVar3" * identifier) = (binary_expression "(pdVar1[2] - *pdVar1) * dVar4" (parenthesized_expression "(pdVar1[2] - *pdVar1)" ( (binary_expression "pdVar1[2] - *pdVar1" (subscript_expression "pdVar1[2]" identifier [ number_literal ]) - (pointer_expression "*pdVar1" * identifier)) )) * identifier)) ;) (expression_statement "pdVar1 = pdVar2;" (assignment_expression "pdVar1 = pdVar2" identifier = identifier) ;) (expression_statement "pdVar3 = pdVar3 + 1;" (assignment_expression "pdVar3 = pdVar3 + 1" identifier = (binary_expression "pdVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(param_1 + 0xfe != pdVar2)" ( (binary_expression "param_1 + 0xfe != pdVar2" (binary_expression "param_1 + 0xfe" identifier + number_literal) != identifier) )) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (pointer_expression * IDENT) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (subscript_expression IDENT [ LIT ])) + (subscript_expression IDENT [ LIT ])) )) - (binary_expression (subscript_expression IDENT [ LIT ]) * IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) * IDENT) - (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (subscript_expression IDENT [ LIT ])) ))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - (pointer_expression * IDENT)) )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) != IDENT) )) ;) (return_statement return ;) })))
(function_definition "void FUN_0019c1c0(double *param_1,double *param_2)\n\n{\n  double *pdVar1;\n  double *pdVar3;\n  double dVar4;\n  double *pdVar2;\n  \n  dVar4 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n  *param_2 = (*param_1 * *(double *)(PTR_s_courses_003a88ec + -0x49c0) + param_1[1] + param_1[1]) -\n             param_1[2] * dVar4;\n  param_2[0xff] =\n       param_1[0xff] * *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540) +\n       (param_1[0xfd] * dVar4 - (param_1[0xfe] + param_1[0xfe]));\n  pdVar1 = param_1;\n  pdVar3 = param_2 + 1;\n  do {\n    pdVar2 = pdVar1 + 1;\n    *pdVar3 = (pdVar1[2] - *pdVar1) * dVar4;\n    pdVar1 = pdVar2;\n    pdVar3 = pdVar3 + 1;\n  } while (param_1 + 0xfe != pdVar2);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0019c1c0(double *param_1,double *param_2)" (identifier "FUN_0019c1c0") (parameter_list "(double *param_1,double *param_2)" (( "(") (parameter_declaration "double *param_1" (primitive_type "double") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "double *param_2" (primitive_type "double") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  double *pdVar1;\n  double *pdVar3;\n  double dVar4;\n  double *pdVar2;\n  \n  dVar4 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n  *param_2 = (*param_1 * *(double *)(PTR_s_courses_003a88ec + -0x49c0) + param_1[1] + param_1[1]) -\n             param_1[2] * dVar4;\n  param_2[0xff] =\n       param_1[0xff] * *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540) +\n       (param_1[0xfd] * dVar4 - (param_1[0xfe] + param_1[0xfe]));\n  pdVar1 = param_1;\n  pdVar3 = param_2 + 1;\n  do {\n    pdVar2 = pdVar1 + 1;\n    *pdVar3 = (pdVar1[2] - *pdVar1) * dVar4;\n    pdVar1 = pdVar2;\n    pdVar3 = pdVar3 + 1;\n  } while (param_1 + 0xfe != pdVar2);\n  return;\n}" ({ "{") (declaration "double *pdVar1;" (primitive_type "double") (pointer_declarator "*pdVar1" (* "*") (identifier "pdVar1")) (; ";")) (declaration "double *pdVar3;" (primitive_type "double") (pointer_declarator "*pdVar3" (* "*") (identifier "pdVar3")) (; ";")) (declaration "double dVar4;" (primitive_type "double") (identifier "dVar4") (; ";")) (declaration "double *pdVar2;" (primitive_type "double") (pointer_declarator "*pdVar2" (* "*") (identifier "pdVar2")) (; ";")) (expression_statement "dVar4 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar4 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" (identifier "dVar4") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1400" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1400")) () ")"))))) (; ";")) (expression_statement "*param_2 = (*param_1 * *(double *)(PTR_s_courses_003a88ec + -0x49c0) + param_1[1] + param_1[1]) -\n             param_1[2] * dVar4;" (assignment_expression "*param_2 = (*param_1 * *(double *)(PTR_s_courses_003a88ec + -0x49c0) + param_1[1] + param_1[1]) -\n             param_1[2] * dVar4" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (binary_expression "(*param_1 * *(double *)(PTR_s_courses_003a88ec + -0x49c0) + param_1[1] + param_1[1]) -\n             param_1[2] * dVar4" (parenthesized_expression "(*param_1 * *(double *)(PTR_s_courses_003a88ec + -0x49c0) + param_1[1] + param_1[1])" (( "(") (binary_expression "*param_1 * *(double *)(PTR_s_courses_003a88ec + -0x49c0) + param_1[1] + param_1[1]" (binary_expression "*param_1 * *(double *)(PTR_s_courses_003a88ec + -0x49c0) + param_1[1]" (binary_expression "*param_1 * *(double *)(PTR_s_courses_003a88ec + -0x49c0)" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (* "*") (pointer_expression "*(double *)(PTR_s_courses_003a88ec + -0x49c0)" (* "*") (cast_expression "(double *)(PTR_s_courses_003a88ec + -0x49c0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_courses_003a88ec + -0x49c0)" (( "(") (binary_expression "PTR_s_courses_003a88ec + -0x49c0" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0x49c0")) () ")"))))) (+ "+") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (+ "+") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) () ")")) (- "-") (binary_expression "param_1[2] * dVar4" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (* "*") (identifier "dVar4")))) (; ";")) (expression_statement "param_2[0xff] =\n       param_1[0xff] * *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540) +\n       (param_1[0xfd] * dVar4 - (param_1[0xfe] + param_1[0xfe]));" (assignment_expression "param_2[0xff] =\n       param_1[0xff] * *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540) +\n       (param_1[0xfd] * dVar4 - (param_1[0xfe] + param_1[0xfe]))" (subscript_expression "param_2[0xff]" (identifier "param_2") ([ "[") (number_literal "0xff") (] "]")) (= "=") (binary_expression "param_1[0xff] * *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540) +\n       (param_1[0xfd] * dVar4 - (param_1[0xfe] + param_1[0xfe]))" (binary_expression "param_1[0xff] * *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540)" (subscript_expression "param_1[0xff]" (identifier "param_1") ([ "[") (number_literal "0xff") (] "]")) (* "*") (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540)" (* "*") (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540)" (( "(") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x3540")) () ")"))))) (+ "+") (parenthesized_expression "(param_1[0xfd] * dVar4 - (param_1[0xfe] + param_1[0xfe]))" (( "(") (binary_expression "param_1[0xfd] * dVar4 - (param_1[0xfe] + param_1[0xfe])" (binary_expression "param_1[0xfd] * dVar4" (subscript_expression "param_1[0xfd]" (identifier "param_1") ([ "[") (number_literal "0xfd") (] "]")) (* "*") (identifier "dVar4")) (- "-") (parenthesized_expression "(param_1[0xfe] + param_1[0xfe])" (( "(") (binary_expression "param_1[0xfe] + param_1[0xfe]" (subscript_expression "param_1[0xfe]" (identifier "param_1") ([ "[") (number_literal "0xfe") (] "]")) (+ "+") (subscript_expression "param_1[0xfe]" (identifier "param_1") ([ "[") (number_literal "0xfe") (] "]"))) () ")"))) () ")")))) (; ";")) (expression_statement "pdVar1 = param_1;" (assignment_expression "pdVar1 = param_1" (identifier "pdVar1") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pdVar3 = param_2 + 1;" (assignment_expression "pdVar3 = param_2 + 1" (identifier "pdVar3") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (do_statement "do {\n    pdVar2 = pdVar1 + 1;\n    *pdVar3 = (pdVar1[2] - *pdVar1) * dVar4;\n    pdVar1 = pdVar2;\n    pdVar3 = pdVar3 + 1;\n  } while (param_1 + 0xfe != pdVar2);" (do "do") (compound_statement "{\n    pdVar2 = pdVar1 + 1;\n    *pdVar3 = (pdVar1[2] - *pdVar1) * dVar4;\n    pdVar1 = pdVar2;\n    pdVar3 = pdVar3 + 1;\n  }" ({ "{") (expression_statement "pdVar2 = pdVar1 + 1;" (assignment_expression "pdVar2 = pdVar1 + 1" (identifier "pdVar2") (= "=") (binary_expression "pdVar1 + 1" (identifier "pdVar1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pdVar3 = (pdVar1[2] - *pdVar1) * dVar4;" (assignment_expression "*pdVar3 = (pdVar1[2] - *pdVar1) * dVar4" (pointer_expression "*pdVar3" (* "*") (identifier "pdVar3")) (= "=") (binary_expression "(pdVar1[2] - *pdVar1) * dVar4" (parenthesized_expression "(pdVar1[2] - *pdVar1)" (( "(") (binary_expression "pdVar1[2] - *pdVar1" (subscript_expression "pdVar1[2]" (identifier "pdVar1") ([ "[") (number_literal "2") (] "]")) (- "-") (pointer_expression "*pdVar1" (* "*") (identifier "pdVar1"))) () ")")) (* "*") (identifier "dVar4"))) (; ";")) (expression_statement "pdVar1 = pdVar2;" (assignment_expression "pdVar1 = pdVar2" (identifier "pdVar1") (= "=") (identifier "pdVar2")) (; ";")) (expression_statement "pdVar3 = pdVar3 + 1;" (assignment_expression "pdVar3 = pdVar3 + 1" (identifier "pdVar3") (= "=") (binary_expression "pdVar3 + 1" (identifier "pdVar3") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_1 + 0xfe != pdVar2)" (( "(") (binary_expression "param_1 + 0xfe != pdVar2" (binary_expression "param_1 + 0xfe" (identifier "param_1") (+ "+") (number_literal "0xfe")) (!= "!=") (identifier "pdVar2")) () ")")) (; ";")) (return_statement "return;" (return "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))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (pointer_expression argument: (identifier)) right: (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: (subscript_expression argument: (identifier) index: (number_literal))) right: (subscript_expression argument: (identifier) index: (number_literal)))) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (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: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (identifier)))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) (return_statement))))

void MASKED(double *param_1,double *param_2)

{
  double *pdVar1;
  double *pdVar3;
  double dVar4;
  double *pdVar2;
  
  dVar4 = *(double *)(PTR_LAB_003a88e0 + 0x1400);
  *param_2 = (*param_1 * *(double *)(PTR_s_courses_003a88ec + -0x49c0) + param_1[1] + param_1[1]) -
             param_1[2] * dVar4;
  param_2[0xff] =
       param_1[0xff] * *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3540) +
       (param_1[0xfd] * dVar4 - (param_1[0xfe] + param_1[0xfe]));
  pdVar1 = param_1;
  pdVar3 = param_2 + 1;
  do {
    pdVar2 = pdVar1 + 1;
    *pdVar3 = (pdVar1[2] - *pdVar1) * dVar4;
    pdVar1 = pdVar2;
    pdVar3 = pdVar3 + 1;
  } while (param_1 + 0xfe != pdVar2);
  return;
}

