
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Switch with 1 destination removed at 0x00031260 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* WARNING: Unknown calling convention */
/* WARNING: Enum "GravityType": Some values do not have unique names */
/* WARNING: Enum "DisposeType": Some values do not have unique names */
/* WARNING: Enum "ChannelType": Some values do not have unique names */
/* WARNING: Enum "PixelChannel": Some values do not have unique names */

MagickRealType EncodePixelGamma(MagickRealType pixel)

{
  double dVar1;
  double dVar2;
  double dVar3;
  double dVar4;
  double dVar5;
  double dVar6;
  double dVar7;
  int iVar8;
  undefined8 *puVar9;
  int in_GS_OFFSET;
  double dVar10;
  undefined4 uStack_30;
  undefined8 uStack_2c;
  int aiStack_24 [4];
  int iStack_14;
  undefined4 uStack_10;
  undefined4 uStack_8;
  undefined **ppuStack_4;
  
  ppuStack_4 = &_GLOBAL_OFFSET_TABLE_;
  uStack_8 = 0x37b66;
  puVar9 = &uStack_2c;
  uStack_10 = *(undefined4 *)(in_GS_OFFSET + 0x14);
  if (DAT_002bfc08 < pixel) {
    dVar10 = frexp(pixel * _DAT_0029f148,&iStack_14);
    dVar10 = dVar10 * (double)DAT_002a9b80 - (double)DAT_002a9b78;
    dVar1 = dVar10 + dVar10;
    dVar6 = dVar10 * dVar1 - (double)DAT_0029f718;
    dVar2 = dVar1 * dVar6 - dVar10;
    dVar5 = dVar1 * dVar2 - dVar6;
    dVar4 = dVar1 * dVar5 - dVar2;
    dVar7 = dVar1 * dVar4 - dVar5;
    dVar3 = dVar1 * dVar7 - dVar4;
    uStack_2c = (dVar1 * dVar3 - dVar7) * DAT_002bfc50 +
                DAT_002bfc48 * dVar3 +
                DAT_002bfc40 * dVar7 +
                dVar4 * DAT_002bfc38 +
                dVar5 * DAT_002bfc30 +
                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar10 * DAT_002bfc10 + DAT_002bfc18;
    div((int)aiStack_24,iStack_14 + -1);
    iVar8 = uStack_2c._4_4_;
    if (aiStack_24[0] < 0) {
      iVar8 = uStack_2c._4_4_ + -1;
      aiStack_24[0] = aiStack_24[0] + 0xc;
    }
    dVar10 = ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *
                   *(double *)(powers_of_two_15227 + aiStack_24[0] * 8),iVar8 * 5);
    puVar9 = (undefined8 *)&uStack_30;
    dVar10 = (dVar10 * DAT_002bfbb8 - DAT_002bfbb0) * (double)DAT_0029f710;
  }
  else {
    dVar10 = pixel * (double)DAT_002bfb9c;
  }
  if (*(int *)((int)puVar9 + 0x1c) != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    *(code **)((int)puVar9 + -4) = GetPixelInfoIntensity;
    __stack_chk_fail_local();
  }
  return dVar10;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Switch with 1 destination removed at 0x00031260 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

longdouble EncodePixelGamma(double param_1)

{
  double dVar1;
  double dVar2;
  double dVar3;
  double dVar4;
  double dVar5;
  double dVar6;
  double dVar7;
  int iVar8;
  undefined8 *puVar9;
  int in_GS_OFFSET;
  longdouble lVar10;
  double dVar11;
  undefined4 uStack_30;
  undefined8 uStack_2c;
  int aiStack_24 [4];
  int iStack_14;
  undefined4 uStack_10;
  undefined4 uStack_8;
  undefined **ppuStack_4;
  
  ppuStack_4 = &__DT_PLTGOT;
  uStack_8 = 0x37b66;
  puVar9 = &uStack_2c;
  uStack_10 = *(undefined4 *)(in_GS_OFFSET + 0x14);
  lVar10 = (longdouble)param_1;
  if ((longdouble)DAT_002bfc08 < lVar10) {
    dVar11 = frexp((double)(lVar10 * (longdouble)_DAT_0029f148),&iStack_14);
    dVar11 = dVar11 * (double)DAT_002a9b80 - (double)DAT_002a9b78;
    dVar1 = dVar11 + dVar11;
    dVar6 = dVar11 * dVar1 - (double)DAT_0029f718;
    dVar2 = dVar1 * dVar6 - dVar11;
    dVar5 = dVar1 * dVar2 - dVar6;
    dVar4 = dVar1 * dVar5 - dVar2;
    dVar7 = dVar1 * dVar4 - dVar5;
    dVar3 = dVar1 * dVar7 - dVar4;
    uStack_2c = (dVar1 * dVar3 - dVar7) * DAT_002bfc50 +
                DAT_002bfc48 * dVar3 +
                DAT_002bfc40 * dVar7 +
                dVar4 * DAT_002bfc38 +
                dVar5 * DAT_002bfc30 +
                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar11 * DAT_002bfc10 + DAT_002bfc18;
    div((int)aiStack_24,iStack_14 + -1);
    iVar8 = uStack_2c._4_4_;
    if (aiStack_24[0] < 0) {
      iVar8 = uStack_2c._4_4_ + -1;
      aiStack_24[0] = aiStack_24[0] + 0xc;
    }
    dVar11 = ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *
                   *(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8),iVar8 * 5);
    puVar9 = (undefined8 *)&uStack_30;
    lVar10 = ((longdouble)dVar11 * (longdouble)DAT_002bfbb8 - (longdouble)DAT_002bfbb0) *
             (longdouble)DAT_0029f710;
  }
  else {
    lVar10 = lVar10 * (longdouble)DAT_002bfb9c;
  }
  if (*(int *)((int)puVar9 + 0x1c) != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    *(code **)((int)puVar9 + -4) = GetPixelInfoIntensity;
    FUN_0029eab0();
  }
  return lVar10;
}


JMP dword ptr [EBX + 0x348]
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Switch with 1 destination removed at 0x00031260 */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nlongdouble EncodePixelGamma(double param_1)\n\n{\n  double dVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  double dVar5;\n  double dVar6;\n  double dVar7;\n  int iVar8;\n  undefined8 *puVar9;\n  int in_GS_OFFSET;\n  longdouble lVar10;\n  double dVar11;\n  undefined4 uStack_30;\n  undefined8 uStack_2c;\n  int aiStack_24 [4];\n  int iStack_14;\n  undefined4 uStack_10;\n  undefined4 uStack_8;\n  undefined **ppuStack_4;\n  \n  ppuStack_4 = &__DT_PLTGOT;\n  uStack_8 = 0x37b66;\n  puVar9 = &uStack_2c;\n  uStack_10 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  lVar10 = (longdouble)param_1;\n  if ((longdouble)DAT_002bfc08 < lVar10) {\n    dVar11 = frexp((double)(lVar10 * (longdouble)_DAT_0029f148),&iStack_14);\n    dVar11 = dVar11 * (double)DAT_002a9b80 - (double)DAT_002a9b78;\n    dVar1 = dVar11 + dVar11;\n    dVar6 = dVar11 * dVar1 - (double)DAT_0029f718;\n    dVar2 = dVar1 * dVar6 - dVar11;\n    dVar5 = dVar1 * dVar2 - dVar6;\n    dVar4 = dVar1 * dVar5 - dVar2;\n    dVar7 = dVar1 * dVar4 - dVar5;\n    dVar3 = dVar1 * dVar7 - dVar4;\n    uStack_2c = (dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar11 * DAT_002bfc10 + DAT_002bfc18;\n    div((int)aiStack_24,iStack_14 + -1);\n    iVar8 = uStack_2c._4_4_;\n    if (aiStack_24[0] < 0) {\n      iVar8 = uStack_2c._4_4_ + -1;\n      aiStack_24[0] = aiStack_24[0] + 0xc;\n    }\n    dVar11 = ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8),iVar8 * 5);\n    puVar9 = (undefined8 *)&uStack_30;\n    lVar10 = ((longdouble)dVar11 * (longdouble)DAT_002bfbb8 - (longdouble)DAT_002bfbb0) *\n             (longdouble)DAT_0029f710;\n  }\n  else {\n    lVar10 = lVar10 * (longdouble)DAT_002bfb9c;\n  }\n  if (*(int *)((int)puVar9 + 0x1c) != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    *(code **)((int)puVar9 + -4) = GetPixelInfoIntensity;\n    FUN_0029eab0();\n  }\n  return lVar10;\n}\n\n" comment comment comment (function_definition "longdouble EncodePixelGamma(double param_1)\n\n{\n  double dVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  double dVar5;\n  double dVar6;\n  double dVar7;\n  int iVar8;\n  undefined8 *puVar9;\n  int in_GS_OFFSET;\n  longdouble lVar10;\n  double dVar11;\n  undefined4 uStack_30;\n  undefined8 uStack_2c;\n  int aiStack_24 [4];\n  int iStack_14;\n  undefined4 uStack_10;\n  undefined4 uStack_8;\n  undefined **ppuStack_4;\n  \n  ppuStack_4 = &__DT_PLTGOT;\n  uStack_8 = 0x37b66;\n  puVar9 = &uStack_2c;\n  uStack_10 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  lVar10 = (longdouble)param_1;\n  if ((longdouble)DAT_002bfc08 < lVar10) {\n    dVar11 = frexp((double)(lVar10 * (longdouble)_DAT_0029f148),&iStack_14);\n    dVar11 = dVar11 * (double)DAT_002a9b80 - (double)DAT_002a9b78;\n    dVar1 = dVar11 + dVar11;\n    dVar6 = dVar11 * dVar1 - (double)DAT_0029f718;\n    dVar2 = dVar1 * dVar6 - dVar11;\n    dVar5 = dVar1 * dVar2 - dVar6;\n    dVar4 = dVar1 * dVar5 - dVar2;\n    dVar7 = dVar1 * dVar4 - dVar5;\n    dVar3 = dVar1 * dVar7 - dVar4;\n    uStack_2c = (dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar11 * DAT_002bfc10 + DAT_002bfc18;\n    div((int)aiStack_24,iStack_14 + -1);\n    iVar8 = uStack_2c._4_4_;\n    if (aiStack_24[0] < 0) {\n      iVar8 = uStack_2c._4_4_ + -1;\n      aiStack_24[0] = aiStack_24[0] + 0xc;\n    }\n    dVar11 = ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8),iVar8 * 5);\n    puVar9 = (undefined8 *)&uStack_30;\n    lVar10 = ((longdouble)dVar11 * (longdouble)DAT_002bfbb8 - (longdouble)DAT_002bfbb0) *\n             (longdouble)DAT_0029f710;\n  }\n  else {\n    lVar10 = lVar10 * (longdouble)DAT_002bfb9c;\n  }\n  if (*(int *)((int)puVar9 + 0x1c) != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    *(code **)((int)puVar9 + -4) = GetPixelInfoIntensity;\n    FUN_0029eab0();\n  }\n  return lVar10;\n}" type_identifier (function_declarator "EncodePixelGamma(double param_1)" identifier (parameter_list "(double param_1)" ( (parameter_declaration "double param_1" primitive_type identifier) ))) (compound_statement "{\n  double dVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  double dVar5;\n  double dVar6;\n  double dVar7;\n  int iVar8;\n  undefined8 *puVar9;\n  int in_GS_OFFSET;\n  longdouble lVar10;\n  double dVar11;\n  undefined4 uStack_30;\n  undefined8 uStack_2c;\n  int aiStack_24 [4];\n  int iStack_14;\n  undefined4 uStack_10;\n  undefined4 uStack_8;\n  undefined **ppuStack_4;\n  \n  ppuStack_4 = &__DT_PLTGOT;\n  uStack_8 = 0x37b66;\n  puVar9 = &uStack_2c;\n  uStack_10 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  lVar10 = (longdouble)param_1;\n  if ((longdouble)DAT_002bfc08 < lVar10) {\n    dVar11 = frexp((double)(lVar10 * (longdouble)_DAT_0029f148),&iStack_14);\n    dVar11 = dVar11 * (double)DAT_002a9b80 - (double)DAT_002a9b78;\n    dVar1 = dVar11 + dVar11;\n    dVar6 = dVar11 * dVar1 - (double)DAT_0029f718;\n    dVar2 = dVar1 * dVar6 - dVar11;\n    dVar5 = dVar1 * dVar2 - dVar6;\n    dVar4 = dVar1 * dVar5 - dVar2;\n    dVar7 = dVar1 * dVar4 - dVar5;\n    dVar3 = dVar1 * dVar7 - dVar4;\n    uStack_2c = (dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar11 * DAT_002bfc10 + DAT_002bfc18;\n    div((int)aiStack_24,iStack_14 + -1);\n    iVar8 = uStack_2c._4_4_;\n    if (aiStack_24[0] < 0) {\n      iVar8 = uStack_2c._4_4_ + -1;\n      aiStack_24[0] = aiStack_24[0] + 0xc;\n    }\n    dVar11 = ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8),iVar8 * 5);\n    puVar9 = (undefined8 *)&uStack_30;\n    lVar10 = ((longdouble)dVar11 * (longdouble)DAT_002bfbb8 - (longdouble)DAT_002bfbb0) *\n             (longdouble)DAT_0029f710;\n  }\n  else {\n    lVar10 = lVar10 * (longdouble)DAT_002bfb9c;\n  }\n  if (*(int *)((int)puVar9 + 0x1c) != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    *(code **)((int)puVar9 + -4) = GetPixelInfoIntensity;\n    FUN_0029eab0();\n  }\n  return lVar10;\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 "double dVar5;" primitive_type identifier ;) (declaration "double dVar6;" primitive_type identifier ;) (declaration "double dVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined8 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "longdouble lVar10;" type_identifier identifier ;) (declaration "double dVar11;" primitive_type identifier ;) (declaration "undefined4 uStack_30;" type_identifier identifier ;) (declaration "undefined8 uStack_2c;" type_identifier identifier ;) (declaration "int aiStack_24 [4];" primitive_type (array_declarator "aiStack_24 [4]" identifier [ number_literal ]) ;) (declaration "int iStack_14;" primitive_type identifier ;) (declaration "undefined4 uStack_10;" type_identifier identifier ;) (declaration "undefined4 uStack_8;" type_identifier identifier ;) (declaration "undefined **ppuStack_4;" type_identifier (pointer_declarator "**ppuStack_4" * (pointer_declarator "*ppuStack_4" * identifier)) ;) (expression_statement "ppuStack_4 = &__DT_PLTGOT;" (assignment_expression "ppuStack_4 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "uStack_8 = 0x37b66;" (assignment_expression "uStack_8 = 0x37b66" identifier = number_literal) ;) (expression_statement "puVar9 = &uStack_2c;" (assignment_expression "puVar9 = &uStack_2c" identifier = (pointer_expression "&uStack_2c" & identifier)) ;) (expression_statement "uStack_10 = *(undefined4 *)(in_GS_OFFSET + 0x14);" (assignment_expression "uStack_10 = *(undefined4 *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(undefined4 *)(in_GS_OFFSET + 0x14)" * (cast_expression "(undefined4 *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "lVar10 = (longdouble)param_1;" (assignment_expression "lVar10 = (longdouble)param_1" identifier = (cast_expression "(longdouble)param_1" ( (type_descriptor "longdouble" type_identifier) ) identifier)) ;) (if_statement "if ((longdouble)DAT_002bfc08 < lVar10) {\n    dVar11 = frexp((double)(lVar10 * (longdouble)_DAT_0029f148),&iStack_14);\n    dVar11 = dVar11 * (double)DAT_002a9b80 - (double)DAT_002a9b78;\n    dVar1 = dVar11 + dVar11;\n    dVar6 = dVar11 * dVar1 - (double)DAT_0029f718;\n    dVar2 = dVar1 * dVar6 - dVar11;\n    dVar5 = dVar1 * dVar2 - dVar6;\n    dVar4 = dVar1 * dVar5 - dVar2;\n    dVar7 = dVar1 * dVar4 - dVar5;\n    dVar3 = dVar1 * dVar7 - dVar4;\n    uStack_2c = (dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar11 * DAT_002bfc10 + DAT_002bfc18;\n    div((int)aiStack_24,iStack_14 + -1);\n    iVar8 = uStack_2c._4_4_;\n    if (aiStack_24[0] < 0) {\n      iVar8 = uStack_2c._4_4_ + -1;\n      aiStack_24[0] = aiStack_24[0] + 0xc;\n    }\n    dVar11 = ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8),iVar8 * 5);\n    puVar9 = (undefined8 *)&uStack_30;\n    lVar10 = ((longdouble)dVar11 * (longdouble)DAT_002bfbb8 - (longdouble)DAT_002bfbb0) *\n             (longdouble)DAT_0029f710;\n  }\n  else {\n    lVar10 = lVar10 * (longdouble)DAT_002bfb9c;\n  }" if (parenthesized_expression "((longdouble)DAT_002bfc08 < lVar10)" ( (binary_expression "(longdouble)DAT_002bfc08 < lVar10" (cast_expression "(longdouble)DAT_002bfc08" ( (type_descriptor "longdouble" type_identifier) ) identifier) < identifier) )) (compound_statement "{\n    dVar11 = frexp((double)(lVar10 * (longdouble)_DAT_0029f148),&iStack_14);\n    dVar11 = dVar11 * (double)DAT_002a9b80 - (double)DAT_002a9b78;\n    dVar1 = dVar11 + dVar11;\n    dVar6 = dVar11 * dVar1 - (double)DAT_0029f718;\n    dVar2 = dVar1 * dVar6 - dVar11;\n    dVar5 = dVar1 * dVar2 - dVar6;\n    dVar4 = dVar1 * dVar5 - dVar2;\n    dVar7 = dVar1 * dVar4 - dVar5;\n    dVar3 = dVar1 * dVar7 - dVar4;\n    uStack_2c = (dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar11 * DAT_002bfc10 + DAT_002bfc18;\n    div((int)aiStack_24,iStack_14 + -1);\n    iVar8 = uStack_2c._4_4_;\n    if (aiStack_24[0] < 0) {\n      iVar8 = uStack_2c._4_4_ + -1;\n      aiStack_24[0] = aiStack_24[0] + 0xc;\n    }\n    dVar11 = ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8),iVar8 * 5);\n    puVar9 = (undefined8 *)&uStack_30;\n    lVar10 = ((longdouble)dVar11 * (longdouble)DAT_002bfbb8 - (longdouble)DAT_002bfbb0) *\n             (longdouble)DAT_0029f710;\n  }" { (expression_statement "dVar11 = frexp((double)(lVar10 * (longdouble)_DAT_0029f148),&iStack_14);" (assignment_expression "dVar11 = frexp((double)(lVar10 * (longdouble)_DAT_0029f148),&iStack_14)" identifier = (call_expression "frexp((double)(lVar10 * (longdouble)_DAT_0029f148),&iStack_14)" identifier (argument_list "((double)(lVar10 * (longdouble)_DAT_0029f148),&iStack_14)" ( (cast_expression "(double)(lVar10 * (longdouble)_DAT_0029f148)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(lVar10 * (longdouble)_DAT_0029f148)" ( (binary_expression "lVar10 * (longdouble)_DAT_0029f148" identifier * (cast_expression "(longdouble)_DAT_0029f148" ( (type_descriptor "longdouble" type_identifier) ) identifier)) ))) , (pointer_expression "&iStack_14" & identifier) )))) ;) (expression_statement "dVar11 = dVar11 * (double)DAT_002a9b80 - (double)DAT_002a9b78;" (assignment_expression "dVar11 = dVar11 * (double)DAT_002a9b80 - (double)DAT_002a9b78" identifier = (binary_expression "dVar11 * (double)DAT_002a9b80 - (double)DAT_002a9b78" (binary_expression "dVar11 * (double)DAT_002a9b80" identifier * (cast_expression "(double)DAT_002a9b80" ( (type_descriptor "double" primitive_type) ) identifier)) - (cast_expression "(double)DAT_002a9b78" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "dVar1 = dVar11 + dVar11;" (assignment_expression "dVar1 = dVar11 + dVar11" identifier = (binary_expression "dVar11 + dVar11" identifier + identifier)) ;) (expression_statement "dVar6 = dVar11 * dVar1 - (double)DAT_0029f718;" (assignment_expression "dVar6 = dVar11 * dVar1 - (double)DAT_0029f718" identifier = (binary_expression "dVar11 * dVar1 - (double)DAT_0029f718" (binary_expression "dVar11 * dVar1" identifier * identifier) - (cast_expression "(double)DAT_0029f718" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "dVar2 = dVar1 * dVar6 - dVar11;" (assignment_expression "dVar2 = dVar1 * dVar6 - dVar11" identifier = (binary_expression "dVar1 * dVar6 - dVar11" (binary_expression "dVar1 * dVar6" identifier * identifier) - identifier)) ;) (expression_statement "dVar5 = dVar1 * dVar2 - dVar6;" (assignment_expression "dVar5 = dVar1 * dVar2 - dVar6" identifier = (binary_expression "dVar1 * dVar2 - dVar6" (binary_expression "dVar1 * dVar2" identifier * identifier) - identifier)) ;) (expression_statement "dVar4 = dVar1 * dVar5 - dVar2;" (assignment_expression "dVar4 = dVar1 * dVar5 - dVar2" identifier = (binary_expression "dVar1 * dVar5 - dVar2" (binary_expression "dVar1 * dVar5" identifier * identifier) - identifier)) ;) (expression_statement "dVar7 = dVar1 * dVar4 - dVar5;" (assignment_expression "dVar7 = dVar1 * dVar4 - dVar5" identifier = (binary_expression "dVar1 * dVar4 - dVar5" (binary_expression "dVar1 * dVar4" identifier * identifier) - identifier)) ;) (expression_statement "dVar3 = dVar1 * dVar7 - dVar4;" (assignment_expression "dVar3 = dVar1 * dVar7 - dVar4" identifier = (binary_expression "dVar1 * dVar7 - dVar4" (binary_expression "dVar1 * dVar7" identifier * identifier) - identifier)) ;) (expression_statement "uStack_2c = (dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar11 * DAT_002bfc10 + DAT_002bfc18;" (assignment_expression "uStack_2c = (dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar11 * DAT_002bfc10 + DAT_002bfc18" identifier = (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar11 * DAT_002bfc10 + DAT_002bfc18" (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar11 * DAT_002bfc10" (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20" (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28" (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30" (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38" (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7" (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3" (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50" (parenthesized_expression "(dVar1 * dVar3 - dVar7)" ( (binary_expression "dVar1 * dVar3 - dVar7" (binary_expression "dVar1 * dVar3" identifier * identifier) - identifier) )) * identifier) + (binary_expression "DAT_002bfc48 * dVar3" identifier * identifier)) + (binary_expression "DAT_002bfc40 * dVar7" identifier * identifier)) + (binary_expression "dVar4 * DAT_002bfc38" identifier * identifier)) + (binary_expression "dVar5 * DAT_002bfc30" identifier * identifier)) + (binary_expression "dVar2 * DAT_002bfc28" identifier * identifier)) + (binary_expression "dVar6 * DAT_002bfc20" identifier * identifier)) + (binary_expression "dVar11 * DAT_002bfc10" identifier * identifier)) + identifier)) ;) (expression_statement "div((int)aiStack_24,iStack_14 + -1);" (call_expression "div((int)aiStack_24,iStack_14 + -1)" identifier (argument_list "((int)aiStack_24,iStack_14 + -1)" ( (cast_expression "(int)aiStack_24" ( (type_descriptor "int" primitive_type) ) identifier) , (binary_expression "iStack_14 + -1" identifier + number_literal) ))) ;) (expression_statement "iVar8 = uStack_2c._4_4_;" (assignment_expression "iVar8 = uStack_2c._4_4_" identifier = (field_expression "uStack_2c._4_4_" identifier . field_identifier)) ;) (if_statement "if (aiStack_24[0] < 0) {\n      iVar8 = uStack_2c._4_4_ + -1;\n      aiStack_24[0] = aiStack_24[0] + 0xc;\n    }" if (parenthesized_expression "(aiStack_24[0] < 0)" ( (binary_expression "aiStack_24[0] < 0" (subscript_expression "aiStack_24[0]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n      iVar8 = uStack_2c._4_4_ + -1;\n      aiStack_24[0] = aiStack_24[0] + 0xc;\n    }" { (expression_statement "iVar8 = uStack_2c._4_4_ + -1;" (assignment_expression "iVar8 = uStack_2c._4_4_ + -1" identifier = (binary_expression "uStack_2c._4_4_ + -1" (field_expression "uStack_2c._4_4_" identifier . field_identifier) + number_literal)) ;) (expression_statement "aiStack_24[0] = aiStack_24[0] + 0xc;" (assignment_expression "aiStack_24[0] = aiStack_24[0] + 0xc" (subscript_expression "aiStack_24[0]" identifier [ number_literal ]) = (binary_expression "aiStack_24[0] + 0xc" (subscript_expression "aiStack_24[0]" identifier [ number_literal ]) + number_literal)) ;) })) (expression_statement "dVar11 = ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8),iVar8 * 5);" (assignment_expression "dVar11 = ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8),iVar8 * 5)" identifier = (call_expression "ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8),iVar8 * 5)" identifier (argument_list "((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8),iVar8 * 5)" ( (binary_expression "(double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8)" (cast_expression "(double)CONCAT44((undefined4)uStack_2c,uStack_30)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44((undefined4)uStack_2c,uStack_30)" identifier (argument_list "((undefined4)uStack_2c,uStack_30)" ( (cast_expression "(undefined4)uStack_2c" ( (type_descriptor "undefined4" type_identifier) ) identifier) , identifier )))) * (pointer_expression "*(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8)" * (cast_expression "(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_002bf9e0 + aiStack_24[0] * 8)" ( (binary_expression "&DAT_002bf9e0 + aiStack_24[0] * 8" (pointer_expression "&DAT_002bf9e0" & identifier) + (binary_expression "aiStack_24[0] * 8" (subscript_expression "aiStack_24[0]" identifier [ number_literal ]) * number_literal)) ))))) , (binary_expression "iVar8 * 5" identifier * number_literal) )))) ;) (expression_statement "puVar9 = (undefined8 *)&uStack_30;" (assignment_expression "puVar9 = (undefined8 *)&uStack_30" identifier = (cast_expression "(undefined8 *)&uStack_30" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_30" & identifier))) ;) (expression_statement "lVar10 = ((longdouble)dVar11 * (longdouble)DAT_002bfbb8 - (longdouble)DAT_002bfbb0) *\n             (longdouble)DAT_0029f710;" (assignment_expression "lVar10 = ((longdouble)dVar11 * (longdouble)DAT_002bfbb8 - (longdouble)DAT_002bfbb0) *\n             (longdouble)DAT_0029f710" identifier = (binary_expression "((longdouble)dVar11 * (longdouble)DAT_002bfbb8 - (longdouble)DAT_002bfbb0) *\n             (longdouble)DAT_0029f710" (parenthesized_expression "((longdouble)dVar11 * (longdouble)DAT_002bfbb8 - (longdouble)DAT_002bfbb0)" ( (binary_expression "(longdouble)dVar11 * (longdouble)DAT_002bfbb8 - (longdouble)DAT_002bfbb0" (binary_expression "(longdouble)dVar11 * (longdouble)DAT_002bfbb8" (cast_expression "(longdouble)dVar11" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (cast_expression "(longdouble)DAT_002bfbb8" ( (type_descriptor "longdouble" type_identifier) ) identifier)) - (cast_expression "(longdouble)DAT_002bfbb0" ( (type_descriptor "longdouble" type_identifier) ) identifier)) )) * (cast_expression "(longdouble)DAT_0029f710" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) }) (else_clause "else {\n    lVar10 = lVar10 * (longdouble)DAT_002bfb9c;\n  }" else (compound_statement "{\n    lVar10 = lVar10 * (longdouble)DAT_002bfb9c;\n  }" { (expression_statement "lVar10 = lVar10 * (longdouble)DAT_002bfb9c;" (assignment_expression "lVar10 = lVar10 * (longdouble)DAT_002bfb9c" identifier = (binary_expression "lVar10 * (longdouble)DAT_002bfb9c" identifier * (cast_expression "(longdouble)DAT_002bfb9c" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) }))) (if_statement "if (*(int *)((int)puVar9 + 0x1c) != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    *(code **)((int)puVar9 + -4) = GetPixelInfoIntensity;\n    FUN_0029eab0();\n  }" if (parenthesized_expression "(*(int *)((int)puVar9 + 0x1c) != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "*(int *)((int)puVar9 + 0x1c) != *(int *)(in_GS_OFFSET + 0x14)" (pointer_expression "*(int *)((int)puVar9 + 0x1c)" * (cast_expression "(int *)((int)puVar9 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + 0x1c)" ( (binary_expression "(int)puVar9 + 0x1c" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    *(code **)((int)puVar9 + -4) = GetPixelInfoIntensity;\n    FUN_0029eab0();\n  }" { comment (expression_statement "*(code **)((int)puVar9 + -4) = GetPixelInfoIntensity;" (assignment_expression "*(code **)((int)puVar9 + -4) = GetPixelInfoIntensity" (pointer_expression "*(code **)((int)puVar9 + -4)" * (cast_expression "(code **)((int)puVar9 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar9 + -4)" ( (binary_expression "(int)puVar9 + -4" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "FUN_0029eab0();" (call_expression "FUN_0029eab0()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return lVar10;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Switch with 1 destination removed at 0x00031260 */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n/* WARNING: Unknown calling convention */\n/* WARNING: Enum "GravityType": Some values do not have unique names */\n/* WARNING: Enum "DisposeType": Some values do not have unique names */\n/* WARNING: Enum "ChannelType": Some values do not have unique names */\n/* WARNING: Enum "PixelChannel": Some values do not have unique names */\n\nMagickRealType EncodePixelGamma(MagickRealType pixel)\n\n{\n  double dVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  double dVar5;\n  double dVar6;\n  double dVar7;\n  int iVar8;\n  undefined8 *puVar9;\n  int in_GS_OFFSET;\n  double dVar10;\n  undefined4 uStack_30;\n  undefined8 uStack_2c;\n  int aiStack_24 [4];\n  int iStack_14;\n  undefined4 uStack_10;\n  undefined4 uStack_8;\n  undefined **ppuStack_4;\n  \n  ppuStack_4 = &_GLOBAL_OFFSET_TABLE_;\n  uStack_8 = 0x37b66;\n  puVar9 = &uStack_2c;\n  uStack_10 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  if (DAT_002bfc08 < pixel) {\n    dVar10 = frexp(pixel * _DAT_0029f148,&iStack_14);\n    dVar10 = dVar10 * (double)DAT_002a9b80 - (double)DAT_002a9b78;\n    dVar1 = dVar10 + dVar10;\n    dVar6 = dVar10 * dVar1 - (double)DAT_0029f718;\n    dVar2 = dVar1 * dVar6 - dVar10;\n    dVar5 = dVar1 * dVar2 - dVar6;\n    dVar4 = dVar1 * dVar5 - dVar2;\n    dVar7 = dVar1 * dVar4 - dVar5;\n    dVar3 = dVar1 * dVar7 - dVar4;\n    uStack_2c = (dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar10 * DAT_002bfc10 + DAT_002bfc18;\n    div((int)aiStack_24,iStack_14 + -1);\n    iVar8 = uStack_2c._4_4_;\n    if (aiStack_24[0] < 0) {\n      iVar8 = uStack_2c._4_4_ + -1;\n      aiStack_24[0] = aiStack_24[0] + 0xc;\n    }\n    dVar10 = ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(powers_of_two_15227 + aiStack_24[0] * 8),iVar8 * 5);\n    puVar9 = (undefined8 *)&uStack_30;\n    dVar10 = (dVar10 * DAT_002bfbb8 - DAT_002bfbb0) * (double)DAT_0029f710;\n  }\n  else {\n    dVar10 = pixel * (double)DAT_002bfb9c;\n  }\n  if (*(int *)((int)puVar9 + 0x1c) != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    *(code **)((int)puVar9 + -4) = GetPixelInfoIntensity;\n    __stack_chk_fail_local();\n  }\n  return dVar10;\n}\n\n" comment comment comment comment comment comment comment comment (function_definition "MagickRealType EncodePixelGamma(MagickRealType pixel)\n\n{\n  double dVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  double dVar5;\n  double dVar6;\n  double dVar7;\n  int iVar8;\n  undefined8 *puVar9;\n  int in_GS_OFFSET;\n  double dVar10;\n  undefined4 uStack_30;\n  undefined8 uStack_2c;\n  int aiStack_24 [4];\n  int iStack_14;\n  undefined4 uStack_10;\n  undefined4 uStack_8;\n  undefined **ppuStack_4;\n  \n  ppuStack_4 = &_GLOBAL_OFFSET_TABLE_;\n  uStack_8 = 0x37b66;\n  puVar9 = &uStack_2c;\n  uStack_10 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  if (DAT_002bfc08 < pixel) {\n    dVar10 = frexp(pixel * _DAT_0029f148,&iStack_14);\n    dVar10 = dVar10 * (double)DAT_002a9b80 - (double)DAT_002a9b78;\n    dVar1 = dVar10 + dVar10;\n    dVar6 = dVar10 * dVar1 - (double)DAT_0029f718;\n    dVar2 = dVar1 * dVar6 - dVar10;\n    dVar5 = dVar1 * dVar2 - dVar6;\n    dVar4 = dVar1 * dVar5 - dVar2;\n    dVar7 = dVar1 * dVar4 - dVar5;\n    dVar3 = dVar1 * dVar7 - dVar4;\n    uStack_2c = (dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar10 * DAT_002bfc10 + DAT_002bfc18;\n    div((int)aiStack_24,iStack_14 + -1);\n    iVar8 = uStack_2c._4_4_;\n    if (aiStack_24[0] < 0) {\n      iVar8 = uStack_2c._4_4_ + -1;\n      aiStack_24[0] = aiStack_24[0] + 0xc;\n    }\n    dVar10 = ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(powers_of_two_15227 + aiStack_24[0] * 8),iVar8 * 5);\n    puVar9 = (undefined8 *)&uStack_30;\n    dVar10 = (dVar10 * DAT_002bfbb8 - DAT_002bfbb0) * (double)DAT_0029f710;\n  }\n  else {\n    dVar10 = pixel * (double)DAT_002bfb9c;\n  }\n  if (*(int *)((int)puVar9 + 0x1c) != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    *(code **)((int)puVar9 + -4) = GetPixelInfoIntensity;\n    __stack_chk_fail_local();\n  }\n  return dVar10;\n}" type_identifier (function_declarator "EncodePixelGamma(MagickRealType pixel)" identifier (parameter_list "(MagickRealType pixel)" ( (parameter_declaration "MagickRealType pixel" type_identifier identifier) ))) (compound_statement "{\n  double dVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  double dVar5;\n  double dVar6;\n  double dVar7;\n  int iVar8;\n  undefined8 *puVar9;\n  int in_GS_OFFSET;\n  double dVar10;\n  undefined4 uStack_30;\n  undefined8 uStack_2c;\n  int aiStack_24 [4];\n  int iStack_14;\n  undefined4 uStack_10;\n  undefined4 uStack_8;\n  undefined **ppuStack_4;\n  \n  ppuStack_4 = &_GLOBAL_OFFSET_TABLE_;\n  uStack_8 = 0x37b66;\n  puVar9 = &uStack_2c;\n  uStack_10 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  if (DAT_002bfc08 < pixel) {\n    dVar10 = frexp(pixel * _DAT_0029f148,&iStack_14);\n    dVar10 = dVar10 * (double)DAT_002a9b80 - (double)DAT_002a9b78;\n    dVar1 = dVar10 + dVar10;\n    dVar6 = dVar10 * dVar1 - (double)DAT_0029f718;\n    dVar2 = dVar1 * dVar6 - dVar10;\n    dVar5 = dVar1 * dVar2 - dVar6;\n    dVar4 = dVar1 * dVar5 - dVar2;\n    dVar7 = dVar1 * dVar4 - dVar5;\n    dVar3 = dVar1 * dVar7 - dVar4;\n    uStack_2c = (dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar10 * DAT_002bfc10 + DAT_002bfc18;\n    div((int)aiStack_24,iStack_14 + -1);\n    iVar8 = uStack_2c._4_4_;\n    if (aiStack_24[0] < 0) {\n      iVar8 = uStack_2c._4_4_ + -1;\n      aiStack_24[0] = aiStack_24[0] + 0xc;\n    }\n    dVar10 = ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(powers_of_two_15227 + aiStack_24[0] * 8),iVar8 * 5);\n    puVar9 = (undefined8 *)&uStack_30;\n    dVar10 = (dVar10 * DAT_002bfbb8 - DAT_002bfbb0) * (double)DAT_0029f710;\n  }\n  else {\n    dVar10 = pixel * (double)DAT_002bfb9c;\n  }\n  if (*(int *)((int)puVar9 + 0x1c) != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    *(code **)((int)puVar9 + -4) = GetPixelInfoIntensity;\n    __stack_chk_fail_local();\n  }\n  return dVar10;\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 "double dVar5;" primitive_type identifier ;) (declaration "double dVar6;" primitive_type identifier ;) (declaration "double dVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined8 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "double dVar10;" primitive_type identifier ;) (declaration "undefined4 uStack_30;" type_identifier identifier ;) (declaration "undefined8 uStack_2c;" type_identifier identifier ;) (declaration "int aiStack_24 [4];" primitive_type (array_declarator "aiStack_24 [4]" identifier [ number_literal ]) ;) (declaration "int iStack_14;" primitive_type identifier ;) (declaration "undefined4 uStack_10;" type_identifier identifier ;) (declaration "undefined4 uStack_8;" type_identifier identifier ;) (declaration "undefined **ppuStack_4;" type_identifier (pointer_declarator "**ppuStack_4" * (pointer_declarator "*ppuStack_4" * identifier)) ;) (expression_statement "ppuStack_4 = &_GLOBAL_OFFSET_TABLE_;" (assignment_expression "ppuStack_4 = &_GLOBAL_OFFSET_TABLE_" identifier = (pointer_expression "&_GLOBAL_OFFSET_TABLE_" & identifier)) ;) (expression_statement "uStack_8 = 0x37b66;" (assignment_expression "uStack_8 = 0x37b66" identifier = number_literal) ;) (expression_statement "puVar9 = &uStack_2c;" (assignment_expression "puVar9 = &uStack_2c" identifier = (pointer_expression "&uStack_2c" & identifier)) ;) (expression_statement "uStack_10 = *(undefined4 *)(in_GS_OFFSET + 0x14);" (assignment_expression "uStack_10 = *(undefined4 *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(undefined4 *)(in_GS_OFFSET + 0x14)" * (cast_expression "(undefined4 *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (DAT_002bfc08 < pixel) {\n    dVar10 = frexp(pixel * _DAT_0029f148,&iStack_14);\n    dVar10 = dVar10 * (double)DAT_002a9b80 - (double)DAT_002a9b78;\n    dVar1 = dVar10 + dVar10;\n    dVar6 = dVar10 * dVar1 - (double)DAT_0029f718;\n    dVar2 = dVar1 * dVar6 - dVar10;\n    dVar5 = dVar1 * dVar2 - dVar6;\n    dVar4 = dVar1 * dVar5 - dVar2;\n    dVar7 = dVar1 * dVar4 - dVar5;\n    dVar3 = dVar1 * dVar7 - dVar4;\n    uStack_2c = (dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar10 * DAT_002bfc10 + DAT_002bfc18;\n    div((int)aiStack_24,iStack_14 + -1);\n    iVar8 = uStack_2c._4_4_;\n    if (aiStack_24[0] < 0) {\n      iVar8 = uStack_2c._4_4_ + -1;\n      aiStack_24[0] = aiStack_24[0] + 0xc;\n    }\n    dVar10 = ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(powers_of_two_15227 + aiStack_24[0] * 8),iVar8 * 5);\n    puVar9 = (undefined8 *)&uStack_30;\n    dVar10 = (dVar10 * DAT_002bfbb8 - DAT_002bfbb0) * (double)DAT_0029f710;\n  }\n  else {\n    dVar10 = pixel * (double)DAT_002bfb9c;\n  }" if (parenthesized_expression "(DAT_002bfc08 < pixel)" ( (binary_expression "DAT_002bfc08 < pixel" identifier < identifier) )) (compound_statement "{\n    dVar10 = frexp(pixel * _DAT_0029f148,&iStack_14);\n    dVar10 = dVar10 * (double)DAT_002a9b80 - (double)DAT_002a9b78;\n    dVar1 = dVar10 + dVar10;\n    dVar6 = dVar10 * dVar1 - (double)DAT_0029f718;\n    dVar2 = dVar1 * dVar6 - dVar10;\n    dVar5 = dVar1 * dVar2 - dVar6;\n    dVar4 = dVar1 * dVar5 - dVar2;\n    dVar7 = dVar1 * dVar4 - dVar5;\n    dVar3 = dVar1 * dVar7 - dVar4;\n    uStack_2c = (dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar10 * DAT_002bfc10 + DAT_002bfc18;\n    div((int)aiStack_24,iStack_14 + -1);\n    iVar8 = uStack_2c._4_4_;\n    if (aiStack_24[0] < 0) {\n      iVar8 = uStack_2c._4_4_ + -1;\n      aiStack_24[0] = aiStack_24[0] + 0xc;\n    }\n    dVar10 = ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(powers_of_two_15227 + aiStack_24[0] * 8),iVar8 * 5);\n    puVar9 = (undefined8 *)&uStack_30;\n    dVar10 = (dVar10 * DAT_002bfbb8 - DAT_002bfbb0) * (double)DAT_0029f710;\n  }" { (expression_statement "dVar10 = frexp(pixel * _DAT_0029f148,&iStack_14);" (assignment_expression "dVar10 = frexp(pixel * _DAT_0029f148,&iStack_14)" identifier = (call_expression "frexp(pixel * _DAT_0029f148,&iStack_14)" identifier (argument_list "(pixel * _DAT_0029f148,&iStack_14)" ( (binary_expression "pixel * _DAT_0029f148" identifier * identifier) , (pointer_expression "&iStack_14" & identifier) )))) ;) (expression_statement "dVar10 = dVar10 * (double)DAT_002a9b80 - (double)DAT_002a9b78;" (assignment_expression "dVar10 = dVar10 * (double)DAT_002a9b80 - (double)DAT_002a9b78" identifier = (binary_expression "dVar10 * (double)DAT_002a9b80 - (double)DAT_002a9b78" (binary_expression "dVar10 * (double)DAT_002a9b80" identifier * (cast_expression "(double)DAT_002a9b80" ( (type_descriptor "double" primitive_type) ) identifier)) - (cast_expression "(double)DAT_002a9b78" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "dVar1 = dVar10 + dVar10;" (assignment_expression "dVar1 = dVar10 + dVar10" identifier = (binary_expression "dVar10 + dVar10" identifier + identifier)) ;) (expression_statement "dVar6 = dVar10 * dVar1 - (double)DAT_0029f718;" (assignment_expression "dVar6 = dVar10 * dVar1 - (double)DAT_0029f718" identifier = (binary_expression "dVar10 * dVar1 - (double)DAT_0029f718" (binary_expression "dVar10 * dVar1" identifier * identifier) - (cast_expression "(double)DAT_0029f718" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "dVar2 = dVar1 * dVar6 - dVar10;" (assignment_expression "dVar2 = dVar1 * dVar6 - dVar10" identifier = (binary_expression "dVar1 * dVar6 - dVar10" (binary_expression "dVar1 * dVar6" identifier * identifier) - identifier)) ;) (expression_statement "dVar5 = dVar1 * dVar2 - dVar6;" (assignment_expression "dVar5 = dVar1 * dVar2 - dVar6" identifier = (binary_expression "dVar1 * dVar2 - dVar6" (binary_expression "dVar1 * dVar2" identifier * identifier) - identifier)) ;) (expression_statement "dVar4 = dVar1 * dVar5 - dVar2;" (assignment_expression "dVar4 = dVar1 * dVar5 - dVar2" identifier = (binary_expression "dVar1 * dVar5 - dVar2" (binary_expression "dVar1 * dVar5" identifier * identifier) - identifier)) ;) (expression_statement "dVar7 = dVar1 * dVar4 - dVar5;" (assignment_expression "dVar7 = dVar1 * dVar4 - dVar5" identifier = (binary_expression "dVar1 * dVar4 - dVar5" (binary_expression "dVar1 * dVar4" identifier * identifier) - identifier)) ;) (expression_statement "dVar3 = dVar1 * dVar7 - dVar4;" (assignment_expression "dVar3 = dVar1 * dVar7 - dVar4" identifier = (binary_expression "dVar1 * dVar7 - dVar4" (binary_expression "dVar1 * dVar7" identifier * identifier) - identifier)) ;) (expression_statement "uStack_2c = (dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar10 * DAT_002bfc10 + DAT_002bfc18;" (assignment_expression "uStack_2c = (dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar10 * DAT_002bfc10 + DAT_002bfc18" identifier = (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar10 * DAT_002bfc10 + DAT_002bfc18" (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar10 * DAT_002bfc10" (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20" (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28" (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30" (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38" (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7" (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3" (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50" (parenthesized_expression "(dVar1 * dVar3 - dVar7)" ( (binary_expression "dVar1 * dVar3 - dVar7" (binary_expression "dVar1 * dVar3" identifier * identifier) - identifier) )) * identifier) + (binary_expression "DAT_002bfc48 * dVar3" identifier * identifier)) + (binary_expression "DAT_002bfc40 * dVar7" identifier * identifier)) + (binary_expression "dVar4 * DAT_002bfc38" identifier * identifier)) + (binary_expression "dVar5 * DAT_002bfc30" identifier * identifier)) + (binary_expression "dVar2 * DAT_002bfc28" identifier * identifier)) + (binary_expression "dVar6 * DAT_002bfc20" identifier * identifier)) + (binary_expression "dVar10 * DAT_002bfc10" identifier * identifier)) + identifier)) ;) (expression_statement "div((int)aiStack_24,iStack_14 + -1);" (call_expression "div((int)aiStack_24,iStack_14 + -1)" identifier (argument_list "((int)aiStack_24,iStack_14 + -1)" ( (cast_expression "(int)aiStack_24" ( (type_descriptor "int" primitive_type) ) identifier) , (binary_expression "iStack_14 + -1" identifier + number_literal) ))) ;) (expression_statement "iVar8 = uStack_2c._4_4_;" (assignment_expression "iVar8 = uStack_2c._4_4_" identifier = (field_expression "uStack_2c._4_4_" identifier . field_identifier)) ;) (if_statement "if (aiStack_24[0] < 0) {\n      iVar8 = uStack_2c._4_4_ + -1;\n      aiStack_24[0] = aiStack_24[0] + 0xc;\n    }" if (parenthesized_expression "(aiStack_24[0] < 0)" ( (binary_expression "aiStack_24[0] < 0" (subscript_expression "aiStack_24[0]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n      iVar8 = uStack_2c._4_4_ + -1;\n      aiStack_24[0] = aiStack_24[0] + 0xc;\n    }" { (expression_statement "iVar8 = uStack_2c._4_4_ + -1;" (assignment_expression "iVar8 = uStack_2c._4_4_ + -1" identifier = (binary_expression "uStack_2c._4_4_ + -1" (field_expression "uStack_2c._4_4_" identifier . field_identifier) + number_literal)) ;) (expression_statement "aiStack_24[0] = aiStack_24[0] + 0xc;" (assignment_expression "aiStack_24[0] = aiStack_24[0] + 0xc" (subscript_expression "aiStack_24[0]" identifier [ number_literal ]) = (binary_expression "aiStack_24[0] + 0xc" (subscript_expression "aiStack_24[0]" identifier [ number_literal ]) + number_literal)) ;) })) (expression_statement "dVar10 = ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(powers_of_two_15227 + aiStack_24[0] * 8),iVar8 * 5);" (assignment_expression "dVar10 = ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(powers_of_two_15227 + aiStack_24[0] * 8),iVar8 * 5)" identifier = (call_expression "ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(powers_of_two_15227 + aiStack_24[0] * 8),iVar8 * 5)" identifier (argument_list "((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(powers_of_two_15227 + aiStack_24[0] * 8),iVar8 * 5)" ( (binary_expression "(double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(powers_of_two_15227 + aiStack_24[0] * 8)" (cast_expression "(double)CONCAT44((undefined4)uStack_2c,uStack_30)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44((undefined4)uStack_2c,uStack_30)" identifier (argument_list "((undefined4)uStack_2c,uStack_30)" ( (cast_expression "(undefined4)uStack_2c" ( (type_descriptor "undefined4" type_identifier) ) identifier) , identifier )))) * (pointer_expression "*(double *)(powers_of_two_15227 + aiStack_24[0] * 8)" * (cast_expression "(double *)(powers_of_two_15227 + aiStack_24[0] * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(powers_of_two_15227 + aiStack_24[0] * 8)" ( (binary_expression "powers_of_two_15227 + aiStack_24[0] * 8" identifier + (binary_expression "aiStack_24[0] * 8" (subscript_expression "aiStack_24[0]" identifier [ number_literal ]) * number_literal)) ))))) , (binary_expression "iVar8 * 5" identifier * number_literal) )))) ;) (expression_statement "puVar9 = (undefined8 *)&uStack_30;" (assignment_expression "puVar9 = (undefined8 *)&uStack_30" identifier = (cast_expression "(undefined8 *)&uStack_30" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_30" & identifier))) ;) (expression_statement "dVar10 = (dVar10 * DAT_002bfbb8 - DAT_002bfbb0) * (double)DAT_0029f710;" (assignment_expression "dVar10 = (dVar10 * DAT_002bfbb8 - DAT_002bfbb0) * (double)DAT_0029f710" identifier = (binary_expression "(dVar10 * DAT_002bfbb8 - DAT_002bfbb0) * (double)DAT_0029f710" (parenthesized_expression "(dVar10 * DAT_002bfbb8 - DAT_002bfbb0)" ( (binary_expression "dVar10 * DAT_002bfbb8 - DAT_002bfbb0" (binary_expression "dVar10 * DAT_002bfbb8" identifier * identifier) - identifier) )) * (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) }) (else_clause "else {\n    dVar10 = pixel * (double)DAT_002bfb9c;\n  }" else (compound_statement "{\n    dVar10 = pixel * (double)DAT_002bfb9c;\n  }" { (expression_statement "dVar10 = pixel * (double)DAT_002bfb9c;" (assignment_expression "dVar10 = pixel * (double)DAT_002bfb9c" identifier = (binary_expression "pixel * (double)DAT_002bfb9c" identifier * (cast_expression "(double)DAT_002bfb9c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) }))) (if_statement "if (*(int *)((int)puVar9 + 0x1c) != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    *(code **)((int)puVar9 + -4) = GetPixelInfoIntensity;\n    __stack_chk_fail_local();\n  }" if (parenthesized_expression "(*(int *)((int)puVar9 + 0x1c) != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "*(int *)((int)puVar9 + 0x1c) != *(int *)(in_GS_OFFSET + 0x14)" (pointer_expression "*(int *)((int)puVar9 + 0x1c)" * (cast_expression "(int *)((int)puVar9 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + 0x1c)" ( (binary_expression "(int)puVar9 + 0x1c" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    *(code **)((int)puVar9 + -4) = GetPixelInfoIntensity;\n    __stack_chk_fail_local();\n  }" { comment (expression_statement "*(code **)((int)puVar9 + -4) = GetPixelInfoIntensity;" (assignment_expression "*(code **)((int)puVar9 + -4) = GetPixelInfoIntensity" (pointer_expression "*(code **)((int)puVar9 + -4)" * (cast_expression "(code **)((int)puVar9 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar9 + -4)" ( (binary_expression "(int)puVar9 + -4" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return dVar10;" return identifier ;) })))
(translation_unit "longdouble EncodePixelGamma(double param_1)\n\n{\n  double dVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  double dVar5;\n  double dVar6;\n  double dVar7;\n  int iVar8;\n  undefined8 *puVar9;\n  int in_GS_OFFSET;\n  longdouble lVar10;\n  double dVar11;\n  undefined4 uStack_30;\n  undefined8 uStack_2c;\n  int aiStack_24 [4];\n  int iStack_14;\n  undefined4 uStack_10;\n  undefined4 uStack_8;\n  undefined **ppuStack_4;\n  \n  ppuStack_4 = &__DT_PLTGOT;\n  uStack_8 = 0x37b66;\n  puVar9 = &uStack_2c;\n  uStack_10 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  lVar10 = (longdouble)param_1;\n  if ((longdouble)DAT_002bfc08 < lVar10) {\n    dVar11 = frexp((double)(lVar10 * (longdouble)_DAT_0029f148),&iStack_14);\n    dVar11 = dVar11 * (double)DAT_002a9b80 - (double)DAT_002a9b78;\n    dVar1 = dVar11 + dVar11;\n    dVar6 = dVar11 * dVar1 - (double)DAT_0029f718;\n    dVar2 = dVar1 * dVar6 - dVar11;\n    dVar5 = dVar1 * dVar2 - dVar6;\n    dVar4 = dVar1 * dVar5 - dVar2;\n    dVar7 = dVar1 * dVar4 - dVar5;\n    dVar3 = dVar1 * dVar7 - dVar4;\n    uStack_2c = (dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar11 * DAT_002bfc10 + DAT_002bfc18;\n    div((int)aiStack_24,iStack_14 + -1);\n    iVar8 = uStack_2c._4_4_;\n    if (aiStack_24[0] < 0) {\n      iVar8 = uStack_2c._4_4_ + -1;\n      aiStack_24[0] = aiStack_24[0] + 0xc;\n    }\n    dVar11 = ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8),iVar8 * 5);\n    puVar9 = (undefined8 *)&uStack_30;\n    lVar10 = ((longdouble)dVar11 * (longdouble)DAT_002bfbb8 - (longdouble)DAT_002bfbb0) *\n             (longdouble)DAT_0029f710;\n  }\n  else {\n    lVar10 = lVar10 * (longdouble)DAT_002bfb9c;\n  }\n  if (*(int *)((int)puVar9 + 0x1c) != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    *(code **)((int)puVar9 + -4) = GetPixelInfoIntensity;\n    FUN_0029eab0();\n  }\n  return lVar10;\n}\n\n" (function_definition "longdouble EncodePixelGamma(double param_1)\n\n{\n  double dVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  double dVar5;\n  double dVar6;\n  double dVar7;\n  int iVar8;\n  undefined8 *puVar9;\n  int in_GS_OFFSET;\n  longdouble lVar10;\n  double dVar11;\n  undefined4 uStack_30;\n  undefined8 uStack_2c;\n  int aiStack_24 [4];\n  int iStack_14;\n  undefined4 uStack_10;\n  undefined4 uStack_8;\n  undefined **ppuStack_4;\n  \n  ppuStack_4 = &__DT_PLTGOT;\n  uStack_8 = 0x37b66;\n  puVar9 = &uStack_2c;\n  uStack_10 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  lVar10 = (longdouble)param_1;\n  if ((longdouble)DAT_002bfc08 < lVar10) {\n    dVar11 = frexp((double)(lVar10 * (longdouble)_DAT_0029f148),&iStack_14);\n    dVar11 = dVar11 * (double)DAT_002a9b80 - (double)DAT_002a9b78;\n    dVar1 = dVar11 + dVar11;\n    dVar6 = dVar11 * dVar1 - (double)DAT_0029f718;\n    dVar2 = dVar1 * dVar6 - dVar11;\n    dVar5 = dVar1 * dVar2 - dVar6;\n    dVar4 = dVar1 * dVar5 - dVar2;\n    dVar7 = dVar1 * dVar4 - dVar5;\n    dVar3 = dVar1 * dVar7 - dVar4;\n    uStack_2c = (dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar11 * DAT_002bfc10 + DAT_002bfc18;\n    div((int)aiStack_24,iStack_14 + -1);\n    iVar8 = uStack_2c._4_4_;\n    if (aiStack_24[0] < 0) {\n      iVar8 = uStack_2c._4_4_ + -1;\n      aiStack_24[0] = aiStack_24[0] + 0xc;\n    }\n    dVar11 = ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8),iVar8 * 5);\n    puVar9 = (undefined8 *)&uStack_30;\n    lVar10 = ((longdouble)dVar11 * (longdouble)DAT_002bfbb8 - (longdouble)DAT_002bfbb0) *\n             (longdouble)DAT_0029f710;\n  }\n  else {\n    lVar10 = lVar10 * (longdouble)DAT_002bfb9c;\n  }\n  if (*(int *)((int)puVar9 + 0x1c) != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    *(code **)((int)puVar9 + -4) = GetPixelInfoIntensity;\n    FUN_0029eab0();\n  }\n  return lVar10;\n}" type_identifier (function_declarator "EncodePixelGamma(double param_1)" identifier (parameter_list "(double param_1)" ( (parameter_declaration "double param_1" primitive_type identifier) ))) (compound_statement "{\n  double dVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  double dVar5;\n  double dVar6;\n  double dVar7;\n  int iVar8;\n  undefined8 *puVar9;\n  int in_GS_OFFSET;\n  longdouble lVar10;\n  double dVar11;\n  undefined4 uStack_30;\n  undefined8 uStack_2c;\n  int aiStack_24 [4];\n  int iStack_14;\n  undefined4 uStack_10;\n  undefined4 uStack_8;\n  undefined **ppuStack_4;\n  \n  ppuStack_4 = &__DT_PLTGOT;\n  uStack_8 = 0x37b66;\n  puVar9 = &uStack_2c;\n  uStack_10 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  lVar10 = (longdouble)param_1;\n  if ((longdouble)DAT_002bfc08 < lVar10) {\n    dVar11 = frexp((double)(lVar10 * (longdouble)_DAT_0029f148),&iStack_14);\n    dVar11 = dVar11 * (double)DAT_002a9b80 - (double)DAT_002a9b78;\n    dVar1 = dVar11 + dVar11;\n    dVar6 = dVar11 * dVar1 - (double)DAT_0029f718;\n    dVar2 = dVar1 * dVar6 - dVar11;\n    dVar5 = dVar1 * dVar2 - dVar6;\n    dVar4 = dVar1 * dVar5 - dVar2;\n    dVar7 = dVar1 * dVar4 - dVar5;\n    dVar3 = dVar1 * dVar7 - dVar4;\n    uStack_2c = (dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar11 * DAT_002bfc10 + DAT_002bfc18;\n    div((int)aiStack_24,iStack_14 + -1);\n    iVar8 = uStack_2c._4_4_;\n    if (aiStack_24[0] < 0) {\n      iVar8 = uStack_2c._4_4_ + -1;\n      aiStack_24[0] = aiStack_24[0] + 0xc;\n    }\n    dVar11 = ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8),iVar8 * 5);\n    puVar9 = (undefined8 *)&uStack_30;\n    lVar10 = ((longdouble)dVar11 * (longdouble)DAT_002bfbb8 - (longdouble)DAT_002bfbb0) *\n             (longdouble)DAT_0029f710;\n  }\n  else {\n    lVar10 = lVar10 * (longdouble)DAT_002bfb9c;\n  }\n  if (*(int *)((int)puVar9 + 0x1c) != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    *(code **)((int)puVar9 + -4) = GetPixelInfoIntensity;\n    FUN_0029eab0();\n  }\n  return lVar10;\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 "double dVar5;" primitive_type identifier ;) (declaration "double dVar6;" primitive_type identifier ;) (declaration "double dVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined8 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "longdouble lVar10;" type_identifier identifier ;) (declaration "double dVar11;" primitive_type identifier ;) (declaration "undefined4 uStack_30;" type_identifier identifier ;) (declaration "undefined8 uStack_2c;" type_identifier identifier ;) (declaration "int aiStack_24 [4];" primitive_type (array_declarator "aiStack_24 [4]" identifier [ number_literal ]) ;) (declaration "int iStack_14;" primitive_type identifier ;) (declaration "undefined4 uStack_10;" type_identifier identifier ;) (declaration "undefined4 uStack_8;" type_identifier identifier ;) (declaration "undefined **ppuStack_4;" type_identifier (pointer_declarator "**ppuStack_4" * (pointer_declarator "*ppuStack_4" * identifier)) ;) (expression_statement "ppuStack_4 = &__DT_PLTGOT;" (assignment_expression "ppuStack_4 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "uStack_8 = 0x37b66;" (assignment_expression "uStack_8 = 0x37b66" identifier = number_literal) ;) (expression_statement "puVar9 = &uStack_2c;" (assignment_expression "puVar9 = &uStack_2c" identifier = (pointer_expression "&uStack_2c" & identifier)) ;) (expression_statement "uStack_10 = *(undefined4 *)(in_GS_OFFSET + 0x14);" (assignment_expression "uStack_10 = *(undefined4 *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(undefined4 *)(in_GS_OFFSET + 0x14)" * (cast_expression "(undefined4 *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "lVar10 = (longdouble)param_1;" (assignment_expression "lVar10 = (longdouble)param_1" identifier = (cast_expression "(longdouble)param_1" ( (type_descriptor "longdouble" type_identifier) ) identifier)) ;) (if_statement "if ((longdouble)DAT_002bfc08 < lVar10) {\n    dVar11 = frexp((double)(lVar10 * (longdouble)_DAT_0029f148),&iStack_14);\n    dVar11 = dVar11 * (double)DAT_002a9b80 - (double)DAT_002a9b78;\n    dVar1 = dVar11 + dVar11;\n    dVar6 = dVar11 * dVar1 - (double)DAT_0029f718;\n    dVar2 = dVar1 * dVar6 - dVar11;\n    dVar5 = dVar1 * dVar2 - dVar6;\n    dVar4 = dVar1 * dVar5 - dVar2;\n    dVar7 = dVar1 * dVar4 - dVar5;\n    dVar3 = dVar1 * dVar7 - dVar4;\n    uStack_2c = (dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar11 * DAT_002bfc10 + DAT_002bfc18;\n    div((int)aiStack_24,iStack_14 + -1);\n    iVar8 = uStack_2c._4_4_;\n    if (aiStack_24[0] < 0) {\n      iVar8 = uStack_2c._4_4_ + -1;\n      aiStack_24[0] = aiStack_24[0] + 0xc;\n    }\n    dVar11 = ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8),iVar8 * 5);\n    puVar9 = (undefined8 *)&uStack_30;\n    lVar10 = ((longdouble)dVar11 * (longdouble)DAT_002bfbb8 - (longdouble)DAT_002bfbb0) *\n             (longdouble)DAT_0029f710;\n  }\n  else {\n    lVar10 = lVar10 * (longdouble)DAT_002bfb9c;\n  }" if (parenthesized_expression "((longdouble)DAT_002bfc08 < lVar10)" ( (binary_expression "(longdouble)DAT_002bfc08 < lVar10" (cast_expression "(longdouble)DAT_002bfc08" ( (type_descriptor "longdouble" type_identifier) ) identifier) < identifier) )) (compound_statement "{\n    dVar11 = frexp((double)(lVar10 * (longdouble)_DAT_0029f148),&iStack_14);\n    dVar11 = dVar11 * (double)DAT_002a9b80 - (double)DAT_002a9b78;\n    dVar1 = dVar11 + dVar11;\n    dVar6 = dVar11 * dVar1 - (double)DAT_0029f718;\n    dVar2 = dVar1 * dVar6 - dVar11;\n    dVar5 = dVar1 * dVar2 - dVar6;\n    dVar4 = dVar1 * dVar5 - dVar2;\n    dVar7 = dVar1 * dVar4 - dVar5;\n    dVar3 = dVar1 * dVar7 - dVar4;\n    uStack_2c = (dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar11 * DAT_002bfc10 + DAT_002bfc18;\n    div((int)aiStack_24,iStack_14 + -1);\n    iVar8 = uStack_2c._4_4_;\n    if (aiStack_24[0] < 0) {\n      iVar8 = uStack_2c._4_4_ + -1;\n      aiStack_24[0] = aiStack_24[0] + 0xc;\n    }\n    dVar11 = ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8),iVar8 * 5);\n    puVar9 = (undefined8 *)&uStack_30;\n    lVar10 = ((longdouble)dVar11 * (longdouble)DAT_002bfbb8 - (longdouble)DAT_002bfbb0) *\n             (longdouble)DAT_0029f710;\n  }" { (expression_statement "dVar11 = frexp((double)(lVar10 * (longdouble)_DAT_0029f148),&iStack_14);" (assignment_expression "dVar11 = frexp((double)(lVar10 * (longdouble)_DAT_0029f148),&iStack_14)" identifier = (call_expression "frexp((double)(lVar10 * (longdouble)_DAT_0029f148),&iStack_14)" identifier (argument_list "((double)(lVar10 * (longdouble)_DAT_0029f148),&iStack_14)" ( (cast_expression "(double)(lVar10 * (longdouble)_DAT_0029f148)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(lVar10 * (longdouble)_DAT_0029f148)" ( (binary_expression "lVar10 * (longdouble)_DAT_0029f148" identifier * (cast_expression "(longdouble)_DAT_0029f148" ( (type_descriptor "longdouble" type_identifier) ) identifier)) ))) , (pointer_expression "&iStack_14" & identifier) )))) ;) (expression_statement "dVar11 = dVar11 * (double)DAT_002a9b80 - (double)DAT_002a9b78;" (assignment_expression "dVar11 = dVar11 * (double)DAT_002a9b80 - (double)DAT_002a9b78" identifier = (binary_expression "dVar11 * (double)DAT_002a9b80 - (double)DAT_002a9b78" (binary_expression "dVar11 * (double)DAT_002a9b80" identifier * (cast_expression "(double)DAT_002a9b80" ( (type_descriptor "double" primitive_type) ) identifier)) - (cast_expression "(double)DAT_002a9b78" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "dVar1 = dVar11 + dVar11;" (assignment_expression "dVar1 = dVar11 + dVar11" identifier = (binary_expression "dVar11 + dVar11" identifier + identifier)) ;) (expression_statement "dVar6 = dVar11 * dVar1 - (double)DAT_0029f718;" (assignment_expression "dVar6 = dVar11 * dVar1 - (double)DAT_0029f718" identifier = (binary_expression "dVar11 * dVar1 - (double)DAT_0029f718" (binary_expression "dVar11 * dVar1" identifier * identifier) - (cast_expression "(double)DAT_0029f718" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "dVar2 = dVar1 * dVar6 - dVar11;" (assignment_expression "dVar2 = dVar1 * dVar6 - dVar11" identifier = (binary_expression "dVar1 * dVar6 - dVar11" (binary_expression "dVar1 * dVar6" identifier * identifier) - identifier)) ;) (expression_statement "dVar5 = dVar1 * dVar2 - dVar6;" (assignment_expression "dVar5 = dVar1 * dVar2 - dVar6" identifier = (binary_expression "dVar1 * dVar2 - dVar6" (binary_expression "dVar1 * dVar2" identifier * identifier) - identifier)) ;) (expression_statement "dVar4 = dVar1 * dVar5 - dVar2;" (assignment_expression "dVar4 = dVar1 * dVar5 - dVar2" identifier = (binary_expression "dVar1 * dVar5 - dVar2" (binary_expression "dVar1 * dVar5" identifier * identifier) - identifier)) ;) (expression_statement "dVar7 = dVar1 * dVar4 - dVar5;" (assignment_expression "dVar7 = dVar1 * dVar4 - dVar5" identifier = (binary_expression "dVar1 * dVar4 - dVar5" (binary_expression "dVar1 * dVar4" identifier * identifier) - identifier)) ;) (expression_statement "dVar3 = dVar1 * dVar7 - dVar4;" (assignment_expression "dVar3 = dVar1 * dVar7 - dVar4" identifier = (binary_expression "dVar1 * dVar7 - dVar4" (binary_expression "dVar1 * dVar7" identifier * identifier) - identifier)) ;) (expression_statement "uStack_2c = (dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar11 * DAT_002bfc10 + DAT_002bfc18;" (assignment_expression "uStack_2c = (dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar11 * DAT_002bfc10 + DAT_002bfc18" identifier = (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar11 * DAT_002bfc10 + DAT_002bfc18" (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar11 * DAT_002bfc10" (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20" (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28" (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30" (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38" (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7" (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3" (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50" (parenthesized_expression "(dVar1 * dVar3 - dVar7)" ( (binary_expression "dVar1 * dVar3 - dVar7" (binary_expression "dVar1 * dVar3" identifier * identifier) - identifier) )) * identifier) + (binary_expression "DAT_002bfc48 * dVar3" identifier * identifier)) + (binary_expression "DAT_002bfc40 * dVar7" identifier * identifier)) + (binary_expression "dVar4 * DAT_002bfc38" identifier * identifier)) + (binary_expression "dVar5 * DAT_002bfc30" identifier * identifier)) + (binary_expression "dVar2 * DAT_002bfc28" identifier * identifier)) + (binary_expression "dVar6 * DAT_002bfc20" identifier * identifier)) + (binary_expression "dVar11 * DAT_002bfc10" identifier * identifier)) + identifier)) ;) (expression_statement "div((int)aiStack_24,iStack_14 + -1);" (call_expression "div((int)aiStack_24,iStack_14 + -1)" identifier (argument_list "((int)aiStack_24,iStack_14 + -1)" ( (cast_expression "(int)aiStack_24" ( (type_descriptor "int" primitive_type) ) identifier) , (binary_expression "iStack_14 + -1" identifier + number_literal) ))) ;) (expression_statement "iVar8 = uStack_2c._4_4_;" (assignment_expression "iVar8 = uStack_2c._4_4_" identifier = (field_expression "uStack_2c._4_4_" identifier . field_identifier)) ;) (if_statement "if (aiStack_24[0] < 0) {\n      iVar8 = uStack_2c._4_4_ + -1;\n      aiStack_24[0] = aiStack_24[0] + 0xc;\n    }" if (parenthesized_expression "(aiStack_24[0] < 0)" ( (binary_expression "aiStack_24[0] < 0" (subscript_expression "aiStack_24[0]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n      iVar8 = uStack_2c._4_4_ + -1;\n      aiStack_24[0] = aiStack_24[0] + 0xc;\n    }" { (expression_statement "iVar8 = uStack_2c._4_4_ + -1;" (assignment_expression "iVar8 = uStack_2c._4_4_ + -1" identifier = (binary_expression "uStack_2c._4_4_ + -1" (field_expression "uStack_2c._4_4_" identifier . field_identifier) + number_literal)) ;) (expression_statement "aiStack_24[0] = aiStack_24[0] + 0xc;" (assignment_expression "aiStack_24[0] = aiStack_24[0] + 0xc" (subscript_expression "aiStack_24[0]" identifier [ number_literal ]) = (binary_expression "aiStack_24[0] + 0xc" (subscript_expression "aiStack_24[0]" identifier [ number_literal ]) + number_literal)) ;) })) (expression_statement "dVar11 = ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8),iVar8 * 5);" (assignment_expression "dVar11 = ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8),iVar8 * 5)" identifier = (call_expression "ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8),iVar8 * 5)" identifier (argument_list "((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8),iVar8 * 5)" ( (binary_expression "(double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8)" (cast_expression "(double)CONCAT44((undefined4)uStack_2c,uStack_30)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44((undefined4)uStack_2c,uStack_30)" identifier (argument_list "((undefined4)uStack_2c,uStack_30)" ( (cast_expression "(undefined4)uStack_2c" ( (type_descriptor "undefined4" type_identifier) ) identifier) , identifier )))) * (pointer_expression "*(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8)" * (cast_expression "(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_002bf9e0 + aiStack_24[0] * 8)" ( (binary_expression "&DAT_002bf9e0 + aiStack_24[0] * 8" (pointer_expression "&DAT_002bf9e0" & identifier) + (binary_expression "aiStack_24[0] * 8" (subscript_expression "aiStack_24[0]" identifier [ number_literal ]) * number_literal)) ))))) , (binary_expression "iVar8 * 5" identifier * number_literal) )))) ;) (expression_statement "puVar9 = (undefined8 *)&uStack_30;" (assignment_expression "puVar9 = (undefined8 *)&uStack_30" identifier = (cast_expression "(undefined8 *)&uStack_30" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_30" & identifier))) ;) (expression_statement "lVar10 = ((longdouble)dVar11 * (longdouble)DAT_002bfbb8 - (longdouble)DAT_002bfbb0) *\n             (longdouble)DAT_0029f710;" (assignment_expression "lVar10 = ((longdouble)dVar11 * (longdouble)DAT_002bfbb8 - (longdouble)DAT_002bfbb0) *\n             (longdouble)DAT_0029f710" identifier = (binary_expression "((longdouble)dVar11 * (longdouble)DAT_002bfbb8 - (longdouble)DAT_002bfbb0) *\n             (longdouble)DAT_0029f710" (parenthesized_expression "((longdouble)dVar11 * (longdouble)DAT_002bfbb8 - (longdouble)DAT_002bfbb0)" ( (binary_expression "(longdouble)dVar11 * (longdouble)DAT_002bfbb8 - (longdouble)DAT_002bfbb0" (binary_expression "(longdouble)dVar11 * (longdouble)DAT_002bfbb8" (cast_expression "(longdouble)dVar11" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (cast_expression "(longdouble)DAT_002bfbb8" ( (type_descriptor "longdouble" type_identifier) ) identifier)) - (cast_expression "(longdouble)DAT_002bfbb0" ( (type_descriptor "longdouble" type_identifier) ) identifier)) )) * (cast_expression "(longdouble)DAT_0029f710" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) }) (else_clause "else {\n    lVar10 = lVar10 * (longdouble)DAT_002bfb9c;\n  }" else (compound_statement "{\n    lVar10 = lVar10 * (longdouble)DAT_002bfb9c;\n  }" { (expression_statement "lVar10 = lVar10 * (longdouble)DAT_002bfb9c;" (assignment_expression "lVar10 = lVar10 * (longdouble)DAT_002bfb9c" identifier = (binary_expression "lVar10 * (longdouble)DAT_002bfb9c" identifier * (cast_expression "(longdouble)DAT_002bfb9c" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) }))) (if_statement "if (*(int *)((int)puVar9 + 0x1c) != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    *(code **)((int)puVar9 + -4) = GetPixelInfoIntensity;\n    FUN_0029eab0();\n  }" if (parenthesized_expression "(*(int *)((int)puVar9 + 0x1c) != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "*(int *)((int)puVar9 + 0x1c) != *(int *)(in_GS_OFFSET + 0x14)" (pointer_expression "*(int *)((int)puVar9 + 0x1c)" * (cast_expression "(int *)((int)puVar9 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + 0x1c)" ( (binary_expression "(int)puVar9 + 0x1c" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    *(code **)((int)puVar9 + -4) = GetPixelInfoIntensity;\n    FUN_0029eab0();\n  }" { (expression_statement "*(code **)((int)puVar9 + -4) = GetPixelInfoIntensity;" (assignment_expression "*(code **)((int)puVar9 + -4) = GetPixelInfoIntensity" (pointer_expression "*(code **)((int)puVar9 + -4)" * (cast_expression "(code **)((int)puVar9 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar9 + -4)" ( (binary_expression "(int)puVar9 + -4" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "FUN_0029eab0();" (call_expression "FUN_0029eab0()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return lVar10;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE 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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & 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 IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT)) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * IDENT) - IDENT) )) * IDENT) + (binary_expression IDENT * IDENT)) + (binary_expression IDENT * IDENT)) + (binary_expression IDENT * IDENT)) + (binary_expression IDENT * IDENT)) + (binary_expression IDENT * IDENT)) + (binary_expression IDENT * IDENT)) + (binary_expression IDENT * IDENT)) + IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_identifier)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (field_expression IDENT . field_identifier) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , IDENT )))) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT)) ))))) , (binary_expression IDENT * LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) IDENT)) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return IDENT ;) })))
(function_definition "longdouble EncodePixelGamma(double param_1)\n\n{\n  double dVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  double dVar5;\n  double dVar6;\n  double dVar7;\n  int iVar8;\n  undefined8 *puVar9;\n  int in_GS_OFFSET;\n  longdouble lVar10;\n  double dVar11;\n  undefined4 uStack_30;\n  undefined8 uStack_2c;\n  int aiStack_24 [4];\n  int iStack_14;\n  undefined4 uStack_10;\n  undefined4 uStack_8;\n  undefined **ppuStack_4;\n  \n  ppuStack_4 = &__DT_PLTGOT;\n  uStack_8 = 0x37b66;\n  puVar9 = &uStack_2c;\n  uStack_10 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  lVar10 = (longdouble)param_1;\n  if ((longdouble)DAT_002bfc08 < lVar10) {\n    dVar11 = frexp((double)(lVar10 * (longdouble)_DAT_0029f148),&iStack_14);\n    dVar11 = dVar11 * (double)DAT_002a9b80 - (double)DAT_002a9b78;\n    dVar1 = dVar11 + dVar11;\n    dVar6 = dVar11 * dVar1 - (double)DAT_0029f718;\n    dVar2 = dVar1 * dVar6 - dVar11;\n    dVar5 = dVar1 * dVar2 - dVar6;\n    dVar4 = dVar1 * dVar5 - dVar2;\n    dVar7 = dVar1 * dVar4 - dVar5;\n    dVar3 = dVar1 * dVar7 - dVar4;\n    uStack_2c = (dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar11 * DAT_002bfc10 + DAT_002bfc18;\n    div((int)aiStack_24,iStack_14 + -1);\n    iVar8 = uStack_2c._4_4_;\n    if (aiStack_24[0] < 0) {\n      iVar8 = uStack_2c._4_4_ + -1;\n      aiStack_24[0] = aiStack_24[0] + 0xc;\n    }\n    dVar11 = ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8),iVar8 * 5);\n    puVar9 = (undefined8 *)&uStack_30;\n    lVar10 = ((longdouble)dVar11 * (longdouble)DAT_002bfbb8 - (longdouble)DAT_002bfbb0) *\n             (longdouble)DAT_0029f710;\n  }\n  else {\n    lVar10 = lVar10 * (longdouble)DAT_002bfb9c;\n  }\n  if (*(int *)((int)puVar9 + 0x1c) != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    *(code **)((int)puVar9 + -4) = GetPixelInfoIntensity;\n    FUN_0029eab0();\n  }\n  return lVar10;\n}" (type_identifier "longdouble") (function_declarator "EncodePixelGamma(double param_1)" (identifier "EncodePixelGamma") (parameter_list "(double param_1)" (( "(") (parameter_declaration "double param_1" (primitive_type "double") (identifier "param_1")) () ")"))) (compound_statement "{\n  double dVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  double dVar5;\n  double dVar6;\n  double dVar7;\n  int iVar8;\n  undefined8 *puVar9;\n  int in_GS_OFFSET;\n  longdouble lVar10;\n  double dVar11;\n  undefined4 uStack_30;\n  undefined8 uStack_2c;\n  int aiStack_24 [4];\n  int iStack_14;\n  undefined4 uStack_10;\n  undefined4 uStack_8;\n  undefined **ppuStack_4;\n  \n  ppuStack_4 = &__DT_PLTGOT;\n  uStack_8 = 0x37b66;\n  puVar9 = &uStack_2c;\n  uStack_10 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  lVar10 = (longdouble)param_1;\n  if ((longdouble)DAT_002bfc08 < lVar10) {\n    dVar11 = frexp((double)(lVar10 * (longdouble)_DAT_0029f148),&iStack_14);\n    dVar11 = dVar11 * (double)DAT_002a9b80 - (double)DAT_002a9b78;\n    dVar1 = dVar11 + dVar11;\n    dVar6 = dVar11 * dVar1 - (double)DAT_0029f718;\n    dVar2 = dVar1 * dVar6 - dVar11;\n    dVar5 = dVar1 * dVar2 - dVar6;\n    dVar4 = dVar1 * dVar5 - dVar2;\n    dVar7 = dVar1 * dVar4 - dVar5;\n    dVar3 = dVar1 * dVar7 - dVar4;\n    uStack_2c = (dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar11 * DAT_002bfc10 + DAT_002bfc18;\n    div((int)aiStack_24,iStack_14 + -1);\n    iVar8 = uStack_2c._4_4_;\n    if (aiStack_24[0] < 0) {\n      iVar8 = uStack_2c._4_4_ + -1;\n      aiStack_24[0] = aiStack_24[0] + 0xc;\n    }\n    dVar11 = ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8),iVar8 * 5);\n    puVar9 = (undefined8 *)&uStack_30;\n    lVar10 = ((longdouble)dVar11 * (longdouble)DAT_002bfbb8 - (longdouble)DAT_002bfbb0) *\n             (longdouble)DAT_0029f710;\n  }\n  else {\n    lVar10 = lVar10 * (longdouble)DAT_002bfb9c;\n  }\n  if (*(int *)((int)puVar9 + 0x1c) != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    *(code **)((int)puVar9 + -4) = GetPixelInfoIntensity;\n    FUN_0029eab0();\n  }\n  return lVar10;\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 "double dVar5;" (primitive_type "double") (identifier "dVar5") (; ";")) (declaration "double dVar6;" (primitive_type "double") (identifier "dVar6") (; ";")) (declaration "double dVar7;" (primitive_type "double") (identifier "dVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "undefined8 *puVar9;" (type_identifier "undefined8") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "longdouble lVar10;" (type_identifier "longdouble") (identifier "lVar10") (; ";")) (declaration "double dVar11;" (primitive_type "double") (identifier "dVar11") (; ";")) (declaration "undefined4 uStack_30;" (type_identifier "undefined4") (identifier "uStack_30") (; ";")) (declaration "undefined8 uStack_2c;" (type_identifier "undefined8") (identifier "uStack_2c") (; ";")) (declaration "int aiStack_24 [4];" (primitive_type "int") (array_declarator "aiStack_24 [4]" (identifier "aiStack_24") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int iStack_14;" (primitive_type "int") (identifier "iStack_14") (; ";")) (declaration "undefined4 uStack_10;" (type_identifier "undefined4") (identifier "uStack_10") (; ";")) (declaration "undefined4 uStack_8;" (type_identifier "undefined4") (identifier "uStack_8") (; ";")) (declaration "undefined **ppuStack_4;" (type_identifier "undefined") (pointer_declarator "**ppuStack_4" (* "*") (pointer_declarator "*ppuStack_4" (* "*") (identifier "ppuStack_4"))) (; ";")) (expression_statement "ppuStack_4 = &__DT_PLTGOT;" (assignment_expression "ppuStack_4 = &__DT_PLTGOT" (identifier "ppuStack_4") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (expression_statement "uStack_8 = 0x37b66;" (assignment_expression "uStack_8 = 0x37b66" (identifier "uStack_8") (= "=") (number_literal "0x37b66")) (; ";")) (expression_statement "puVar9 = &uStack_2c;" (assignment_expression "puVar9 = &uStack_2c" (identifier "puVar9") (= "=") (pointer_expression "&uStack_2c" (& "&") (identifier "uStack_2c"))) (; ";")) (expression_statement "uStack_10 = *(undefined4 *)(in_GS_OFFSET + 0x14);" (assignment_expression "uStack_10 = *(undefined4 *)(in_GS_OFFSET + 0x14)" (identifier "uStack_10") (= "=") (pointer_expression "*(undefined4 *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(undefined4 *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "lVar10 = (longdouble)param_1;" (assignment_expression "lVar10 = (longdouble)param_1" (identifier "lVar10") (= "=") (cast_expression "(longdouble)param_1" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "param_1"))) (; ";")) (if_statement "if ((longdouble)DAT_002bfc08 < lVar10) {\n    dVar11 = frexp((double)(lVar10 * (longdouble)_DAT_0029f148),&iStack_14);\n    dVar11 = dVar11 * (double)DAT_002a9b80 - (double)DAT_002a9b78;\n    dVar1 = dVar11 + dVar11;\n    dVar6 = dVar11 * dVar1 - (double)DAT_0029f718;\n    dVar2 = dVar1 * dVar6 - dVar11;\n    dVar5 = dVar1 * dVar2 - dVar6;\n    dVar4 = dVar1 * dVar5 - dVar2;\n    dVar7 = dVar1 * dVar4 - dVar5;\n    dVar3 = dVar1 * dVar7 - dVar4;\n    uStack_2c = (dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar11 * DAT_002bfc10 + DAT_002bfc18;\n    div((int)aiStack_24,iStack_14 + -1);\n    iVar8 = uStack_2c._4_4_;\n    if (aiStack_24[0] < 0) {\n      iVar8 = uStack_2c._4_4_ + -1;\n      aiStack_24[0] = aiStack_24[0] + 0xc;\n    }\n    dVar11 = ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8),iVar8 * 5);\n    puVar9 = (undefined8 *)&uStack_30;\n    lVar10 = ((longdouble)dVar11 * (longdouble)DAT_002bfbb8 - (longdouble)DAT_002bfbb0) *\n             (longdouble)DAT_0029f710;\n  }\n  else {\n    lVar10 = lVar10 * (longdouble)DAT_002bfb9c;\n  }" (if "if") (parenthesized_expression "((longdouble)DAT_002bfc08 < lVar10)" (( "(") (binary_expression "(longdouble)DAT_002bfc08 < lVar10" (cast_expression "(longdouble)DAT_002bfc08" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_002bfc08")) (< "<") (identifier "lVar10")) () ")")) (compound_statement "{\n    dVar11 = frexp((double)(lVar10 * (longdouble)_DAT_0029f148),&iStack_14);\n    dVar11 = dVar11 * (double)DAT_002a9b80 - (double)DAT_002a9b78;\n    dVar1 = dVar11 + dVar11;\n    dVar6 = dVar11 * dVar1 - (double)DAT_0029f718;\n    dVar2 = dVar1 * dVar6 - dVar11;\n    dVar5 = dVar1 * dVar2 - dVar6;\n    dVar4 = dVar1 * dVar5 - dVar2;\n    dVar7 = dVar1 * dVar4 - dVar5;\n    dVar3 = dVar1 * dVar7 - dVar4;\n    uStack_2c = (dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar11 * DAT_002bfc10 + DAT_002bfc18;\n    div((int)aiStack_24,iStack_14 + -1);\n    iVar8 = uStack_2c._4_4_;\n    if (aiStack_24[0] < 0) {\n      iVar8 = uStack_2c._4_4_ + -1;\n      aiStack_24[0] = aiStack_24[0] + 0xc;\n    }\n    dVar11 = ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8),iVar8 * 5);\n    puVar9 = (undefined8 *)&uStack_30;\n    lVar10 = ((longdouble)dVar11 * (longdouble)DAT_002bfbb8 - (longdouble)DAT_002bfbb0) *\n             (longdouble)DAT_0029f710;\n  }" ({ "{") (expression_statement "dVar11 = frexp((double)(lVar10 * (longdouble)_DAT_0029f148),&iStack_14);" (assignment_expression "dVar11 = frexp((double)(lVar10 * (longdouble)_DAT_0029f148),&iStack_14)" (identifier "dVar11") (= "=") (call_expression "frexp((double)(lVar10 * (longdouble)_DAT_0029f148),&iStack_14)" (identifier "frexp") (argument_list "((double)(lVar10 * (longdouble)_DAT_0029f148),&iStack_14)" (( "(") (cast_expression "(double)(lVar10 * (longdouble)_DAT_0029f148)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "(lVar10 * (longdouble)_DAT_0029f148)" (( "(") (binary_expression "lVar10 * (longdouble)_DAT_0029f148" (identifier "lVar10") (* "*") (cast_expression "(longdouble)_DAT_0029f148" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "_DAT_0029f148"))) () ")"))) (, ",") (pointer_expression "&iStack_14" (& "&") (identifier "iStack_14")) () ")")))) (; ";")) (expression_statement "dVar11 = dVar11 * (double)DAT_002a9b80 - (double)DAT_002a9b78;" (assignment_expression "dVar11 = dVar11 * (double)DAT_002a9b80 - (double)DAT_002a9b78" (identifier "dVar11") (= "=") (binary_expression "dVar11 * (double)DAT_002a9b80 - (double)DAT_002a9b78" (binary_expression "dVar11 * (double)DAT_002a9b80" (identifier "dVar11") (* "*") (cast_expression "(double)DAT_002a9b80" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002a9b80"))) (- "-") (cast_expression "(double)DAT_002a9b78" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002a9b78")))) (; ";")) (expression_statement "dVar1 = dVar11 + dVar11;" (assignment_expression "dVar1 = dVar11 + dVar11" (identifier "dVar1") (= "=") (binary_expression "dVar11 + dVar11" (identifier "dVar11") (+ "+") (identifier "dVar11"))) (; ";")) (expression_statement "dVar6 = dVar11 * dVar1 - (double)DAT_0029f718;" (assignment_expression "dVar6 = dVar11 * dVar1 - (double)DAT_0029f718" (identifier "dVar6") (= "=") (binary_expression "dVar11 * dVar1 - (double)DAT_0029f718" (binary_expression "dVar11 * dVar1" (identifier "dVar11") (* "*") (identifier "dVar1")) (- "-") (cast_expression "(double)DAT_0029f718" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f718")))) (; ";")) (expression_statement "dVar2 = dVar1 * dVar6 - dVar11;" (assignment_expression "dVar2 = dVar1 * dVar6 - dVar11" (identifier "dVar2") (= "=") (binary_expression "dVar1 * dVar6 - dVar11" (binary_expression "dVar1 * dVar6" (identifier "dVar1") (* "*") (identifier "dVar6")) (- "-") (identifier "dVar11"))) (; ";")) (expression_statement "dVar5 = dVar1 * dVar2 - dVar6;" (assignment_expression "dVar5 = dVar1 * dVar2 - dVar6" (identifier "dVar5") (= "=") (binary_expression "dVar1 * dVar2 - dVar6" (binary_expression "dVar1 * dVar2" (identifier "dVar1") (* "*") (identifier "dVar2")) (- "-") (identifier "dVar6"))) (; ";")) (expression_statement "dVar4 = dVar1 * dVar5 - dVar2;" (assignment_expression "dVar4 = dVar1 * dVar5 - dVar2" (identifier "dVar4") (= "=") (binary_expression "dVar1 * dVar5 - dVar2" (binary_expression "dVar1 * dVar5" (identifier "dVar1") (* "*") (identifier "dVar5")) (- "-") (identifier "dVar2"))) (; ";")) (expression_statement "dVar7 = dVar1 * dVar4 - dVar5;" (assignment_expression "dVar7 = dVar1 * dVar4 - dVar5" (identifier "dVar7") (= "=") (binary_expression "dVar1 * dVar4 - dVar5" (binary_expression "dVar1 * dVar4" (identifier "dVar1") (* "*") (identifier "dVar4")) (- "-") (identifier "dVar5"))) (; ";")) (expression_statement "dVar3 = dVar1 * dVar7 - dVar4;" (assignment_expression "dVar3 = dVar1 * dVar7 - dVar4" (identifier "dVar3") (= "=") (binary_expression "dVar1 * dVar7 - dVar4" (binary_expression "dVar1 * dVar7" (identifier "dVar1") (* "*") (identifier "dVar7")) (- "-") (identifier "dVar4"))) (; ";")) (expression_statement "uStack_2c = (dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar11 * DAT_002bfc10 + DAT_002bfc18;" (assignment_expression "uStack_2c = (dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar11 * DAT_002bfc10 + DAT_002bfc18" (identifier "uStack_2c") (= "=") (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar11 * DAT_002bfc10 + DAT_002bfc18" (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar11 * DAT_002bfc10" (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20" (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30 +\n                dVar2 * DAT_002bfc28" (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38 +\n                dVar5 * DAT_002bfc30" (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7 +\n                dVar4 * DAT_002bfc38" (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3 +\n                DAT_002bfc40 * dVar7" (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50 +\n                DAT_002bfc48 * dVar3" (binary_expression "(dVar1 * dVar3 - dVar7) * DAT_002bfc50" (parenthesized_expression "(dVar1 * dVar3 - dVar7)" (( "(") (binary_expression "dVar1 * dVar3 - dVar7" (binary_expression "dVar1 * dVar3" (identifier "dVar1") (* "*") (identifier "dVar3")) (- "-") (identifier "dVar7")) () ")")) (* "*") (identifier "DAT_002bfc50")) (+ "+") (binary_expression "DAT_002bfc48 * dVar3" (identifier "DAT_002bfc48") (* "*") (identifier "dVar3"))) (+ "+") (binary_expression "DAT_002bfc40 * dVar7" (identifier "DAT_002bfc40") (* "*") (identifier "dVar7"))) (+ "+") (binary_expression "dVar4 * DAT_002bfc38" (identifier "dVar4") (* "*") (identifier "DAT_002bfc38"))) (+ "+") (binary_expression "dVar5 * DAT_002bfc30" (identifier "dVar5") (* "*") (identifier "DAT_002bfc30"))) (+ "+") (binary_expression "dVar2 * DAT_002bfc28" (identifier "dVar2") (* "*") (identifier "DAT_002bfc28"))) (+ "+") (binary_expression "dVar6 * DAT_002bfc20" (identifier "dVar6") (* "*") (identifier "DAT_002bfc20"))) (+ "+") (binary_expression "dVar11 * DAT_002bfc10" (identifier "dVar11") (* "*") (identifier "DAT_002bfc10"))) (+ "+") (identifier "DAT_002bfc18"))) (; ";")) (expression_statement "div((int)aiStack_24,iStack_14 + -1);" (call_expression "div((int)aiStack_24,iStack_14 + -1)" (identifier "div") (argument_list "((int)aiStack_24,iStack_14 + -1)" (( "(") (cast_expression "(int)aiStack_24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_24")) (, ",") (binary_expression "iStack_14 + -1" (identifier "iStack_14") (+ "+") (number_literal "-1")) () ")"))) (; ";")) (expression_statement "iVar8 = uStack_2c._4_4_;" (assignment_expression "iVar8 = uStack_2c._4_4_" (identifier "iVar8") (= "=") (field_expression "uStack_2c._4_4_" (identifier "uStack_2c") (. ".") (field_identifier "_4_4_"))) (; ";")) (if_statement "if (aiStack_24[0] < 0) {\n      iVar8 = uStack_2c._4_4_ + -1;\n      aiStack_24[0] = aiStack_24[0] + 0xc;\n    }" (if "if") (parenthesized_expression "(aiStack_24[0] < 0)" (( "(") (binary_expression "aiStack_24[0] < 0" (subscript_expression "aiStack_24[0]" (identifier "aiStack_24") ([ "[") (number_literal "0") (] "]")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      iVar8 = uStack_2c._4_4_ + -1;\n      aiStack_24[0] = aiStack_24[0] + 0xc;\n    }" ({ "{") (expression_statement "iVar8 = uStack_2c._4_4_ + -1;" (assignment_expression "iVar8 = uStack_2c._4_4_ + -1" (identifier "iVar8") (= "=") (binary_expression "uStack_2c._4_4_ + -1" (field_expression "uStack_2c._4_4_" (identifier "uStack_2c") (. ".") (field_identifier "_4_4_")) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "aiStack_24[0] = aiStack_24[0] + 0xc;" (assignment_expression "aiStack_24[0] = aiStack_24[0] + 0xc" (subscript_expression "aiStack_24[0]" (identifier "aiStack_24") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "aiStack_24[0] + 0xc" (subscript_expression "aiStack_24[0]" (identifier "aiStack_24") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "0xc"))) (; ";")) (} "}"))) (expression_statement "dVar11 = ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8),iVar8 * 5);" (assignment_expression "dVar11 = ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8),iVar8 * 5)" (identifier "dVar11") (= "=") (call_expression "ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8),iVar8 * 5)" (identifier "ldexp") (argument_list "((double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8),iVar8 * 5)" (( "(") (binary_expression "(double)CONCAT44((undefined4)uStack_2c,uStack_30) *\n                   *(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8)" (cast_expression "(double)CONCAT44((undefined4)uStack_2c,uStack_30)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44((undefined4)uStack_2c,uStack_30)" (identifier "CONCAT44") (argument_list "((undefined4)uStack_2c,uStack_30)" (( "(") (cast_expression "(undefined4)uStack_2c" (( "(") (type_descriptor "undefined4" (type_identifier "undefined4")) () ")") (identifier "uStack_2c")) (, ",") (identifier "uStack_30") () ")")))) (* "*") (pointer_expression "*(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8)" (* "*") (cast_expression "(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_002bf9e0 + aiStack_24[0] * 8)" (( "(") (binary_expression "&DAT_002bf9e0 + aiStack_24[0] * 8" (pointer_expression "&DAT_002bf9e0" (& "&") (identifier "DAT_002bf9e0")) (+ "+") (binary_expression "aiStack_24[0] * 8" (subscript_expression "aiStack_24[0]" (identifier "aiStack_24") ([ "[") (number_literal "0") (] "]")) (* "*") (number_literal "8"))) () ")"))))) (, ",") (binary_expression "iVar8 * 5" (identifier "iVar8") (* "*") (number_literal "5")) () ")")))) (; ";")) (expression_statement "puVar9 = (undefined8 *)&uStack_30;" (assignment_expression "puVar9 = (undefined8 *)&uStack_30" (identifier "puVar9") (= "=") (cast_expression "(undefined8 *)&uStack_30" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&uStack_30" (& "&") (identifier "uStack_30")))) (; ";")) (expression_statement "lVar10 = ((longdouble)dVar11 * (longdouble)DAT_002bfbb8 - (longdouble)DAT_002bfbb0) *\n             (longdouble)DAT_0029f710;" (assignment_expression "lVar10 = ((longdouble)dVar11 * (longdouble)DAT_002bfbb8 - (longdouble)DAT_002bfbb0) *\n             (longdouble)DAT_0029f710" (identifier "lVar10") (= "=") (binary_expression "((longdouble)dVar11 * (longdouble)DAT_002bfbb8 - (longdouble)DAT_002bfbb0) *\n             (longdouble)DAT_0029f710" (parenthesized_expression "((longdouble)dVar11 * (longdouble)DAT_002bfbb8 - (longdouble)DAT_002bfbb0)" (( "(") (binary_expression "(longdouble)dVar11 * (longdouble)DAT_002bfbb8 - (longdouble)DAT_002bfbb0" (binary_expression "(longdouble)dVar11 * (longdouble)DAT_002bfbb8" (cast_expression "(longdouble)dVar11" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "dVar11")) (* "*") (cast_expression "(longdouble)DAT_002bfbb8" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_002bfbb8"))) (- "-") (cast_expression "(longdouble)DAT_002bfbb0" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_002bfbb0"))) () ")")) (* "*") (cast_expression "(longdouble)DAT_0029f710" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0029f710")))) (; ";")) (} "}")) (else_clause "else {\n    lVar10 = lVar10 * (longdouble)DAT_002bfb9c;\n  }" (else "else") (compound_statement "{\n    lVar10 = lVar10 * (longdouble)DAT_002bfb9c;\n  }" ({ "{") (expression_statement "lVar10 = lVar10 * (longdouble)DAT_002bfb9c;" (assignment_expression "lVar10 = lVar10 * (longdouble)DAT_002bfb9c" (identifier "lVar10") (= "=") (binary_expression "lVar10 * (longdouble)DAT_002bfb9c" (identifier "lVar10") (* "*") (cast_expression "(longdouble)DAT_002bfb9c" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_002bfb9c")))) (; ";")) (} "}")))) (if_statement "if (*(int *)((int)puVar9 + 0x1c) != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    *(code **)((int)puVar9 + -4) = GetPixelInfoIntensity;\n    FUN_0029eab0();\n  }" (if "if") (parenthesized_expression "(*(int *)((int)puVar9 + 0x1c) != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "*(int *)((int)puVar9 + 0x1c) != *(int *)(in_GS_OFFSET + 0x14)" (pointer_expression "*(int *)((int)puVar9 + 0x1c)" (* "*") (cast_expression "(int *)((int)puVar9 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar9 + 0x1c)" (( "(") (binary_expression "(int)puVar9 + 0x1c" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (+ "+") (number_literal "0x1c")) () ")")))) (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n                    \n    *(code **)((int)puVar9 + -4) = GetPixelInfoIntensity;\n    FUN_0029eab0();\n  }" ({ "{") (expression_statement "*(code **)((int)puVar9 + -4) = GetPixelInfoIntensity;" (assignment_expression "*(code **)((int)puVar9 + -4) = GetPixelInfoIntensity" (pointer_expression "*(code **)((int)puVar9 + -4)" (* "*") (cast_expression "(code **)((int)puVar9 + -4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)puVar9 + -4)" (( "(") (binary_expression "(int)puVar9 + -4" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "GetPixelInfoIntensity")) (; ";")) (expression_statement "FUN_0029eab0();" (call_expression "FUN_0029eab0()" (identifier "FUN_0029eab0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return lVar10;" (return "return") (identifier "lVar10") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Switch with 1 destination removed at 0x00031260 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* WARNING: Unknown calling convention */
/* WARNING: Enum "GravityType": Some values do not have unique names */
/* WARNING: Enum "DisposeType": Some values do not have unique names */
/* WARNING: Enum "ChannelType": Some values do not have unique names */
/* WARNING: Enum "PixelChannel": Some values do not have unique names */

type_1 function_1(type_1 var_3)

{
  double var_7;
  double var_9;
  double var_13;
  double var_11;
  double var_10;
  double var_8;
  double var_12;
  int var_28;
  type_2 *puVar9;
  int var_1;
  double var_6;
  type_3 uStack_30;
  type_2 uStack_2c;
  int aiStack_24 [4];
  int var_24;
  type_3 uStack_10;
  type_3 uStack_8;
  type_4 **ppuStack_4;
  
  ppuStack_4 = &_GLOBAL_OFFSET_TABLE_;
  uStack_8 = 0x37b66;
  puVar9 = &uStack_2c;
  uStack_10 = *(type_3 *)(var_1 + 0x14);
  if (var_2 < var_3) {
    var_6 = var_4(var_3 * var_5,&var_24);
    var_6 = var_6 * (double)DAT_002a9b80 - (double)DAT_002a9b78;
    var_7 = var_6 + var_6;
    var_8 = var_6 * var_7 - (double)DAT_0029f718;
    var_9 = var_7 * var_8 - var_6;
    var_10 = var_7 * var_9 - var_8;
    var_11 = var_7 * var_10 - var_9;
    var_12 = var_7 * var_11 - var_10;
    var_13 = var_7 * var_12 - var_11;
    uStack_2c = (var_7 * var_13 - var_12) * var_14 +
                var_15 * var_13 +
                var_16 * var_12 +
                var_11 * var_17 +
                var_10 * var_18 +
                var_9 * var_19 + var_8 * var_20 + var_6 * var_21 + var_22;
    var_23((int)aiStack_24,var_24 + -1);
    var_28 = uStack_2c._4_4_;
    if (aiStack_24[0] < 0) {
      var_28 = uStack_2c._4_4_ + -1;
      aiStack_24[0] = aiStack_24[0] + 0xc;
    }
    var_6 = var_25((double)var_26((type_3)uStack_2c,uStack_30) *
                   *(double *)(var_27 + aiStack_24[0] * 8),var_28 * 5);
    puVar9 = (type_2 *)&uStack_30;
    var_6 = (var_6 * var_29 - var_30) * (double)DAT_0029f710;
  }
  else {
    var_6 = var_3 * (double)DAT_002bfb9c;
  }
  if (*(int *)((int)puVar9 + 0x1c) != *(int *)(var_1 + 0x14)) {
                    /* WARNING: Subroutine does not return */
    *(type_5 **)((int)puVar9 + -4) = GetPixelInfoIntensity;
    var_31();
  }
  return var_6;
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Switch with 1 destination removed at 0x00031260 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

longdouble MASKED(double param_1)

{
  double dVar1;
  double dVar2;
  double dVar3;
  double dVar4;
  double dVar5;
  double dVar6;
  double dVar7;
  int iVar8;
  undefined8 *puVar9;
  int in_GS_OFFSET;
  longdouble lVar10;
  double dVar11;
  undefined4 uStack_30;
  undefined8 uStack_2c;
  int aiStack_24 [4];
  int iStack_14;
  undefined4 uStack_10;
  undefined4 uStack_8;
  undefined **ppuStack_4;
  
  ppuStack_4 = &__DT_PLTGOT;
  uStack_8 = 0x37b66;
  puVar9 = &uStack_2c;
  uStack_10 = *(undefined4 *)(in_GS_OFFSET + 0x14);
  lVar10 = (longdouble)param_1;
  if ((longdouble)DAT_002bfc08 < lVar10) {
    dVar11 = frexp((double)(lVar10 * (longdouble)_DAT_0029f148),&iStack_14);
    dVar11 = dVar11 * (double)DAT_002a9b80 - (double)DAT_002a9b78;
    dVar1 = dVar11 + dVar11;
    dVar6 = dVar11 * dVar1 - (double)DAT_0029f718;
    dVar2 = dVar1 * dVar6 - dVar11;
    dVar5 = dVar1 * dVar2 - dVar6;
    dVar4 = dVar1 * dVar5 - dVar2;
    dVar7 = dVar1 * dVar4 - dVar5;
    dVar3 = dVar1 * dVar7 - dVar4;
    uStack_2c = (dVar1 * dVar3 - dVar7) * DAT_002bfc50 +
                DAT_002bfc48 * dVar3 +
                DAT_002bfc40 * dVar7 +
                dVar4 * DAT_002bfc38 +
                dVar5 * DAT_002bfc30 +
                dVar2 * DAT_002bfc28 + dVar6 * DAT_002bfc20 + dVar11 * DAT_002bfc10 + DAT_002bfc18;
    div((int)aiStack_24,iStack_14 + -1);
    iVar8 = uStack_2c._4_4_;
    if (aiStack_24[0] < 0) {
      iVar8 = uStack_2c._4_4_ + -1;
      aiStack_24[0] = aiStack_24[0] + 0xc;
    }
    dVar11 = ldexp((double)CONCAT44((undefined4)uStack_2c,uStack_30) *
                   *(double *)(&DAT_002bf9e0 + aiStack_24[0] * 8),iVar8 * 5);
    puVar9 = (undefined8 *)&uStack_30;
    lVar10 = ((longdouble)dVar11 * (longdouble)DAT_002bfbb8 - (longdouble)DAT_002bfbb0) *
             (longdouble)DAT_0029f710;
  }
  else {
    lVar10 = lVar10 * (longdouble)DAT_002bfb9c;
  }
  if (*(int *)((int)puVar9 + 0x1c) != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    *(code **)((int)puVar9 + -4) = GetPixelInfoIntensity;
    FUN_0029eab0();
  }
  return lVar10;
}

