
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Switch with 1 destination removed at 0x00014330 */
/* WARNING: Unknown calling convention */

void png_set_background_fixed
               (png_structrp png_ptr,png_const_color_16p background_color,int background_gamma_code,
               int need_expand,png_fixed_point background_gamma)

{
  uint uVar1;
  png_byte pVar2;
  undefined1 uVar3;
  png_uint_16 pVar4;
  png_uint_16 pVar5;
  int iVar6;
  uint uVar7;
  
  iVar6 = png_rtran_ok(png_ptr,0);
  if ((background_color != (png_const_color_16p)0x0) && (iVar6 != 0)) {
    if (background_gamma_code == 0) {
      png_warning(png_ptr,"Application must supply a known background gamma");
      return;
    }
    pVar2 = background_color->index;
    uVar3 = background_color->field_0x1;
    pVar4 = background_color->red;
    uVar1 = png_ptr->transformations;
    png_ptr->flags = png_ptr->flags & 0xffffdfff;
    (png_ptr->background).index = pVar2;
    (png_ptr->background).field_0x1 = uVar3;
    (png_ptr->background).red = pVar4;
    pVar4 = background_color->green;
    pVar5 = background_color->blue;
    png_ptr->background_gamma_type = (png_byte)background_gamma_code;
    (png_ptr->background).green = pVar4;
    (png_ptr->background).blue = pVar5;
    (png_ptr->background).gray = background_color->gray;
    png_ptr->background_gamma = background_gamma;
    uVar7 = uVar1 & 0xff7ffeff | 0x40080;
    if (need_expand != 0) {
      uVar7 = uVar1 & 0xff7fffff | 0x40180;
    }
    png_ptr->transformations = uVar7;
  }
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Switch with 1 destination removed at 0x00014330 */

void png_set_background_fixed
               (int param_1,undefined4 *param_2,int param_3,int param_4,undefined4 param_5)

{
  undefined4 uVar1;
  int iVar2;
  uint uVar3;
  
  iVar2 = FUN_00023e90(&__DT_PLTGOT);
  if ((param_2 != (undefined4 *)0x0) && (iVar2 != 0)) {
    if (param_3 == 0) {
      png_warning(param_1,"Application must supply a known background gamma");
      return;
    }
    uVar1 = *param_2;
    *(uint *)(param_1 + 0xd4) = *(uint *)(param_1 + 0xd4) & 0xffffdfff;
    *(undefined4 *)(param_1 + 0x1c0) = uVar1;
    uVar1 = param_2[1];
    *(undefined1 *)(param_1 + 0x1b8) = (undefined1)param_3;
    *(undefined4 *)(param_1 + 0x1c4) = uVar1;
    *(undefined2 *)(param_1 + 0x1c8) = *(undefined2 *)(param_2 + 2);
    *(undefined4 *)(param_1 + 0x1bc) = param_5;
    uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7ffeff | 0x40080;
    if (param_4 != 0) {
      uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7fffff | 0x40180;
    }
    *(uint *)(param_1 + 0xd8) = uVar3;
  }
  return;
}


JMP dword ptr [EBX + 0xc8]
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Switch with 1 destination removed at 0x00014330 */\n\nvoid png_set_background_fixed\n               (int param_1,undefined4 *param_2,int param_3,int param_4,undefined4 param_5)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  uint uVar3;\n  \n  iVar2 = FUN_00023e90(&__DT_PLTGOT);\n  if ((param_2 != (undefined4 *)0x0) && (iVar2 != 0)) {\n    if (param_3 == 0) {\n      png_warning(param_1,"Application must supply a known background gamma");\n      return;\n    }\n    uVar1 = *param_2;\n    *(uint *)(param_1 + 0xd4) = *(uint *)(param_1 + 0xd4) & 0xffffdfff;\n    *(undefined4 *)(param_1 + 0x1c0) = uVar1;\n    uVar1 = param_2[1];\n    *(undefined1 *)(param_1 + 0x1b8) = (undefined1)param_3;\n    *(undefined4 *)(param_1 + 0x1c4) = uVar1;\n    *(undefined2 *)(param_1 + 0x1c8) = *(undefined2 *)(param_2 + 2);\n    *(undefined4 *)(param_1 + 0x1bc) = param_5;\n    uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7ffeff | 0x40080;\n    if (param_4 != 0) {\n      uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7fffff | 0x40180;\n    }\n    *(uint *)(param_1 + 0xd8) = uVar3;\n  }\n  return;\n}\n\n" comment comment (function_definition "void png_set_background_fixed\n               (int param_1,undefined4 *param_2,int param_3,int param_4,undefined4 param_5)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  uint uVar3;\n  \n  iVar2 = FUN_00023e90(&__DT_PLTGOT);\n  if ((param_2 != (undefined4 *)0x0) && (iVar2 != 0)) {\n    if (param_3 == 0) {\n      png_warning(param_1,"Application must supply a known background gamma");\n      return;\n    }\n    uVar1 = *param_2;\n    *(uint *)(param_1 + 0xd4) = *(uint *)(param_1 + 0xd4) & 0xffffdfff;\n    *(undefined4 *)(param_1 + 0x1c0) = uVar1;\n    uVar1 = param_2[1];\n    *(undefined1 *)(param_1 + 0x1b8) = (undefined1)param_3;\n    *(undefined4 *)(param_1 + 0x1c4) = uVar1;\n    *(undefined2 *)(param_1 + 0x1c8) = *(undefined2 *)(param_2 + 2);\n    *(undefined4 *)(param_1 + 0x1bc) = param_5;\n    uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7ffeff | 0x40080;\n    if (param_4 != 0) {\n      uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7fffff | 0x40180;\n    }\n    *(uint *)(param_1 + 0xd8) = uVar3;\n  }\n  return;\n}" primitive_type (function_declarator "png_set_background_fixed\n               (int param_1,undefined4 *param_2,int param_3,int param_4,undefined4 param_5)" identifier (parameter_list "(int param_1,undefined4 *param_2,int param_3,int param_4,undefined4 param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  uint uVar3;\n  \n  iVar2 = FUN_00023e90(&__DT_PLTGOT);\n  if ((param_2 != (undefined4 *)0x0) && (iVar2 != 0)) {\n    if (param_3 == 0) {\n      png_warning(param_1,"Application must supply a known background gamma");\n      return;\n    }\n    uVar1 = *param_2;\n    *(uint *)(param_1 + 0xd4) = *(uint *)(param_1 + 0xd4) & 0xffffdfff;\n    *(undefined4 *)(param_1 + 0x1c0) = uVar1;\n    uVar1 = param_2[1];\n    *(undefined1 *)(param_1 + 0x1b8) = (undefined1)param_3;\n    *(undefined4 *)(param_1 + 0x1c4) = uVar1;\n    *(undefined2 *)(param_1 + 0x1c8) = *(undefined2 *)(param_2 + 2);\n    *(undefined4 *)(param_1 + 0x1bc) = param_5;\n    uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7ffeff | 0x40080;\n    if (param_4 != 0) {\n      uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7fffff | 0x40180;\n    }\n    *(uint *)(param_1 + 0xd8) = uVar3;\n  }\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (expression_statement "iVar2 = FUN_00023e90(&__DT_PLTGOT);" (assignment_expression "iVar2 = FUN_00023e90(&__DT_PLTGOT)" identifier = (call_expression "FUN_00023e90(&__DT_PLTGOT)" identifier (argument_list "(&__DT_PLTGOT)" ( (pointer_expression "&__DT_PLTGOT" & identifier) )))) ;) (if_statement "if ((param_2 != (undefined4 *)0x0) && (iVar2 != 0)) {\n    if (param_3 == 0) {\n      png_warning(param_1,"Application must supply a known background gamma");\n      return;\n    }\n    uVar1 = *param_2;\n    *(uint *)(param_1 + 0xd4) = *(uint *)(param_1 + 0xd4) & 0xffffdfff;\n    *(undefined4 *)(param_1 + 0x1c0) = uVar1;\n    uVar1 = param_2[1];\n    *(undefined1 *)(param_1 + 0x1b8) = (undefined1)param_3;\n    *(undefined4 *)(param_1 + 0x1c4) = uVar1;\n    *(undefined2 *)(param_1 + 0x1c8) = *(undefined2 *)(param_2 + 2);\n    *(undefined4 *)(param_1 + 0x1bc) = param_5;\n    uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7ffeff | 0x40080;\n    if (param_4 != 0) {\n      uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7fffff | 0x40180;\n    }\n    *(uint *)(param_1 + 0xd8) = uVar3;\n  }" if (parenthesized_expression "((param_2 != (undefined4 *)0x0) && (iVar2 != 0))" ( (binary_expression "(param_2 != (undefined4 *)0x0) && (iVar2 != 0)" (parenthesized_expression "(param_2 != (undefined4 *)0x0)" ( (binary_expression "param_2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    if (param_3 == 0) {\n      png_warning(param_1,"Application must supply a known background gamma");\n      return;\n    }\n    uVar1 = *param_2;\n    *(uint *)(param_1 + 0xd4) = *(uint *)(param_1 + 0xd4) & 0xffffdfff;\n    *(undefined4 *)(param_1 + 0x1c0) = uVar1;\n    uVar1 = param_2[1];\n    *(undefined1 *)(param_1 + 0x1b8) = (undefined1)param_3;\n    *(undefined4 *)(param_1 + 0x1c4) = uVar1;\n    *(undefined2 *)(param_1 + 0x1c8) = *(undefined2 *)(param_2 + 2);\n    *(undefined4 *)(param_1 + 0x1bc) = param_5;\n    uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7ffeff | 0x40080;\n    if (param_4 != 0) {\n      uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7fffff | 0x40180;\n    }\n    *(uint *)(param_1 + 0xd8) = uVar3;\n  }" { (if_statement "if (param_3 == 0) {\n      png_warning(param_1,"Application must supply a known background gamma");\n      return;\n    }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n      png_warning(param_1,"Application must supply a known background gamma");\n      return;\n    }" { (expression_statement "png_warning(param_1,"Application must supply a known background gamma");" (call_expression "png_warning(param_1,"Application must supply a known background gamma")" identifier (argument_list "(param_1,"Application must supply a known background gamma")" ( identifier , (string_literal ""Application must supply a known background gamma"" " string_content ") ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar1 = *param_2;" (assignment_expression "uVar1 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "*(uint *)(param_1 + 0xd4) = *(uint *)(param_1 + 0xd4) & 0xffffdfff;" (assignment_expression "*(uint *)(param_1 + 0xd4) = *(uint *)(param_1 + 0xd4) & 0xffffdfff" (pointer_expression "*(uint *)(param_1 + 0xd4)" * (cast_expression "(uint *)(param_1 + 0xd4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd4)" ( (binary_expression "param_1 + 0xd4" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 0xd4) & 0xffffdfff" (pointer_expression "*(uint *)(param_1 + 0xd4)" * (cast_expression "(uint *)(param_1 + 0xd4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd4)" ( (binary_expression "param_1 + 0xd4" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "*(undefined4 *)(param_1 + 0x1c0) = uVar1;" (assignment_expression "*(undefined4 *)(param_1 + 0x1c0) = uVar1" (pointer_expression "*(undefined4 *)(param_1 + 0x1c0)" * (cast_expression "(undefined4 *)(param_1 + 0x1c0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c0)" ( (binary_expression "param_1 + 0x1c0" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar1 = param_2[1];" (assignment_expression "uVar1 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(param_1 + 0x1b8) = (undefined1)param_3;" (assignment_expression "*(undefined1 *)(param_1 + 0x1b8) = (undefined1)param_3" (pointer_expression "*(undefined1 *)(param_1 + 0x1b8)" * (cast_expression "(undefined1 *)(param_1 + 0x1b8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1b8)" ( (binary_expression "param_1 + 0x1b8" identifier + number_literal) )))) = (cast_expression "(undefined1)param_3" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "*(undefined4 *)(param_1 + 0x1c4) = uVar1;" (assignment_expression "*(undefined4 *)(param_1 + 0x1c4) = uVar1" (pointer_expression "*(undefined4 *)(param_1 + 0x1c4)" * (cast_expression "(undefined4 *)(param_1 + 0x1c4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c4)" ( (binary_expression "param_1 + 0x1c4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined2 *)(param_1 + 0x1c8) = *(undefined2 *)(param_2 + 2);" (assignment_expression "*(undefined2 *)(param_1 + 0x1c8) = *(undefined2 *)(param_2 + 2)" (pointer_expression "*(undefined2 *)(param_1 + 0x1c8)" * (cast_expression "(undefined2 *)(param_1 + 0x1c8)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c8)" ( (binary_expression "param_1 + 0x1c8" identifier + number_literal) )))) = (pointer_expression "*(undefined2 *)(param_2 + 2)" * (cast_expression "(undefined2 *)(param_2 + 2)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 2)" ( (binary_expression "param_2 + 2" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x1bc) = param_5;" (assignment_expression "*(undefined4 *)(param_1 + 0x1bc) = param_5" (pointer_expression "*(undefined4 *)(param_1 + 0x1bc)" * (cast_expression "(undefined4 *)(param_1 + 0x1bc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1bc)" ( (binary_expression "param_1 + 0x1bc" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7ffeff | 0x40080;" (assignment_expression "uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7ffeff | 0x40080" identifier = (binary_expression "*(uint *)(param_1 + 0xd8) & 0xff7ffeff | 0x40080" (binary_expression "*(uint *)(param_1 + 0xd8) & 0xff7ffeff" (pointer_expression "*(uint *)(param_1 + 0xd8)" * (cast_expression "(uint *)(param_1 + 0xd8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd8)" ( (binary_expression "param_1 + 0xd8" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (param_4 != 0) {\n      uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7fffff | 0x40180;\n    }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7fffff | 0x40180;\n    }" { (expression_statement "uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7fffff | 0x40180;" (assignment_expression "uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7fffff | 0x40180" identifier = (binary_expression "*(uint *)(param_1 + 0xd8) & 0xff7fffff | 0x40180" (binary_expression "*(uint *)(param_1 + 0xd8) & 0xff7fffff" (pointer_expression "*(uint *)(param_1 + 0xd8)" * (cast_expression "(uint *)(param_1 + 0xd8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd8)" ( (binary_expression "param_1 + 0xd8" identifier + number_literal) )))) & number_literal) | number_literal)) ;) })) (expression_statement "*(uint *)(param_1 + 0xd8) = uVar3;" (assignment_expression "*(uint *)(param_1 + 0xd8) = uVar3" (pointer_expression "*(uint *)(param_1 + 0xd8)" * (cast_expression "(uint *)(param_1 + 0xd8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd8)" ( (binary_expression "param_1 + 0xd8" identifier + number_literal) )))) = identifier) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Switch with 1 destination removed at 0x00014330 */\n/* WARNING: Unknown calling convention */\n\nvoid png_set_background_fixed\n               (png_structrp png_ptr,png_const_color_16p background_color,int background_gamma_code,\n               int need_expand,png_fixed_point background_gamma)\n\n{\n  uint uVar1;\n  png_byte pVar2;\n  undefined1 uVar3;\n  png_uint_16 pVar4;\n  png_uint_16 pVar5;\n  int iVar6;\n  uint uVar7;\n  \n  iVar6 = png_rtran_ok(png_ptr,0);\n  if ((background_color != (png_const_color_16p)0x0) && (iVar6 != 0)) {\n    if (background_gamma_code == 0) {\n      png_warning(png_ptr,"Application must supply a known background gamma");\n      return;\n    }\n    pVar2 = background_color->index;\n    uVar3 = background_color->field_0x1;\n    pVar4 = background_color->red;\n    uVar1 = png_ptr->transformations;\n    png_ptr->flags = png_ptr->flags & 0xffffdfff;\n    (png_ptr->background).index = pVar2;\n    (png_ptr->background).field_0x1 = uVar3;\n    (png_ptr->background).red = pVar4;\n    pVar4 = background_color->green;\n    pVar5 = background_color->blue;\n    png_ptr->background_gamma_type = (png_byte)background_gamma_code;\n    (png_ptr->background).green = pVar4;\n    (png_ptr->background).blue = pVar5;\n    (png_ptr->background).gray = background_color->gray;\n    png_ptr->background_gamma = background_gamma;\n    uVar7 = uVar1 & 0xff7ffeff | 0x40080;\n    if (need_expand != 0) {\n      uVar7 = uVar1 & 0xff7fffff | 0x40180;\n    }\n    png_ptr->transformations = uVar7;\n  }\n  return;\n}\n\n" comment comment comment (function_definition "void png_set_background_fixed\n               (png_structrp png_ptr,png_const_color_16p background_color,int background_gamma_code,\n               int need_expand,png_fixed_point background_gamma)\n\n{\n  uint uVar1;\n  png_byte pVar2;\n  undefined1 uVar3;\n  png_uint_16 pVar4;\n  png_uint_16 pVar5;\n  int iVar6;\n  uint uVar7;\n  \n  iVar6 = png_rtran_ok(png_ptr,0);\n  if ((background_color != (png_const_color_16p)0x0) && (iVar6 != 0)) {\n    if (background_gamma_code == 0) {\n      png_warning(png_ptr,"Application must supply a known background gamma");\n      return;\n    }\n    pVar2 = background_color->index;\n    uVar3 = background_color->field_0x1;\n    pVar4 = background_color->red;\n    uVar1 = png_ptr->transformations;\n    png_ptr->flags = png_ptr->flags & 0xffffdfff;\n    (png_ptr->background).index = pVar2;\n    (png_ptr->background).field_0x1 = uVar3;\n    (png_ptr->background).red = pVar4;\n    pVar4 = background_color->green;\n    pVar5 = background_color->blue;\n    png_ptr->background_gamma_type = (png_byte)background_gamma_code;\n    (png_ptr->background).green = pVar4;\n    (png_ptr->background).blue = pVar5;\n    (png_ptr->background).gray = background_color->gray;\n    png_ptr->background_gamma = background_gamma;\n    uVar7 = uVar1 & 0xff7ffeff | 0x40080;\n    if (need_expand != 0) {\n      uVar7 = uVar1 & 0xff7fffff | 0x40180;\n    }\n    png_ptr->transformations = uVar7;\n  }\n  return;\n}" primitive_type (function_declarator "png_set_background_fixed\n               (png_structrp png_ptr,png_const_color_16p background_color,int background_gamma_code,\n               int need_expand,png_fixed_point background_gamma)" identifier (parameter_list "(png_structrp png_ptr,png_const_color_16p background_color,int background_gamma_code,\n               int need_expand,png_fixed_point background_gamma)" ( (parameter_declaration "png_structrp png_ptr" type_identifier identifier) , (parameter_declaration "png_const_color_16p background_color" type_identifier identifier) , (parameter_declaration "int background_gamma_code" primitive_type identifier) , (parameter_declaration "int need_expand" primitive_type identifier) , (parameter_declaration "png_fixed_point background_gamma" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  png_byte pVar2;\n  undefined1 uVar3;\n  png_uint_16 pVar4;\n  png_uint_16 pVar5;\n  int iVar6;\n  uint uVar7;\n  \n  iVar6 = png_rtran_ok(png_ptr,0);\n  if ((background_color != (png_const_color_16p)0x0) && (iVar6 != 0)) {\n    if (background_gamma_code == 0) {\n      png_warning(png_ptr,"Application must supply a known background gamma");\n      return;\n    }\n    pVar2 = background_color->index;\n    uVar3 = background_color->field_0x1;\n    pVar4 = background_color->red;\n    uVar1 = png_ptr->transformations;\n    png_ptr->flags = png_ptr->flags & 0xffffdfff;\n    (png_ptr->background).index = pVar2;\n    (png_ptr->background).field_0x1 = uVar3;\n    (png_ptr->background).red = pVar4;\n    pVar4 = background_color->green;\n    pVar5 = background_color->blue;\n    png_ptr->background_gamma_type = (png_byte)background_gamma_code;\n    (png_ptr->background).green = pVar4;\n    (png_ptr->background).blue = pVar5;\n    (png_ptr->background).gray = background_color->gray;\n    png_ptr->background_gamma = background_gamma;\n    uVar7 = uVar1 & 0xff7ffeff | 0x40080;\n    if (need_expand != 0) {\n      uVar7 = uVar1 & 0xff7fffff | 0x40180;\n    }\n    png_ptr->transformations = uVar7;\n  }\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "png_byte pVar2;" type_identifier identifier ;) (declaration "undefined1 uVar3;" type_identifier identifier ;) (declaration "png_uint_16 pVar4;" type_identifier identifier ;) (declaration "png_uint_16 pVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (expression_statement "iVar6 = png_rtran_ok(png_ptr,0);" (assignment_expression "iVar6 = png_rtran_ok(png_ptr,0)" identifier = (call_expression "png_rtran_ok(png_ptr,0)" identifier (argument_list "(png_ptr,0)" ( identifier , number_literal )))) ;) (if_statement "if ((background_color != (png_const_color_16p)0x0) && (iVar6 != 0)) {\n    if (background_gamma_code == 0) {\n      png_warning(png_ptr,"Application must supply a known background gamma");\n      return;\n    }\n    pVar2 = background_color->index;\n    uVar3 = background_color->field_0x1;\n    pVar4 = background_color->red;\n    uVar1 = png_ptr->transformations;\n    png_ptr->flags = png_ptr->flags & 0xffffdfff;\n    (png_ptr->background).index = pVar2;\n    (png_ptr->background).field_0x1 = uVar3;\n    (png_ptr->background).red = pVar4;\n    pVar4 = background_color->green;\n    pVar5 = background_color->blue;\n    png_ptr->background_gamma_type = (png_byte)background_gamma_code;\n    (png_ptr->background).green = pVar4;\n    (png_ptr->background).blue = pVar5;\n    (png_ptr->background).gray = background_color->gray;\n    png_ptr->background_gamma = background_gamma;\n    uVar7 = uVar1 & 0xff7ffeff | 0x40080;\n    if (need_expand != 0) {\n      uVar7 = uVar1 & 0xff7fffff | 0x40180;\n    }\n    png_ptr->transformations = uVar7;\n  }" if (parenthesized_expression "((background_color != (png_const_color_16p)0x0) && (iVar6 != 0))" ( (binary_expression "(background_color != (png_const_color_16p)0x0) && (iVar6 != 0)" (parenthesized_expression "(background_color != (png_const_color_16p)0x0)" ( (binary_expression "background_color != (png_const_color_16p)0x0" identifier != (cast_expression "(png_const_color_16p)0x0" ( (type_descriptor "png_const_color_16p" type_identifier) ) number_literal)) )) && (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    if (background_gamma_code == 0) {\n      png_warning(png_ptr,"Application must supply a known background gamma");\n      return;\n    }\n    pVar2 = background_color->index;\n    uVar3 = background_color->field_0x1;\n    pVar4 = background_color->red;\n    uVar1 = png_ptr->transformations;\n    png_ptr->flags = png_ptr->flags & 0xffffdfff;\n    (png_ptr->background).index = pVar2;\n    (png_ptr->background).field_0x1 = uVar3;\n    (png_ptr->background).red = pVar4;\n    pVar4 = background_color->green;\n    pVar5 = background_color->blue;\n    png_ptr->background_gamma_type = (png_byte)background_gamma_code;\n    (png_ptr->background).green = pVar4;\n    (png_ptr->background).blue = pVar5;\n    (png_ptr->background).gray = background_color->gray;\n    png_ptr->background_gamma = background_gamma;\n    uVar7 = uVar1 & 0xff7ffeff | 0x40080;\n    if (need_expand != 0) {\n      uVar7 = uVar1 & 0xff7fffff | 0x40180;\n    }\n    png_ptr->transformations = uVar7;\n  }" { (if_statement "if (background_gamma_code == 0) {\n      png_warning(png_ptr,"Application must supply a known background gamma");\n      return;\n    }" if (parenthesized_expression "(background_gamma_code == 0)" ( (binary_expression "background_gamma_code == 0" identifier == number_literal) )) (compound_statement "{\n      png_warning(png_ptr,"Application must supply a known background gamma");\n      return;\n    }" { (expression_statement "png_warning(png_ptr,"Application must supply a known background gamma");" (call_expression "png_warning(png_ptr,"Application must supply a known background gamma")" identifier (argument_list "(png_ptr,"Application must supply a known background gamma")" ( identifier , (string_literal ""Application must supply a known background gamma"" " string_content ") ))) ;) (return_statement "return;" return ;) })) (expression_statement "pVar2 = background_color->index;" (assignment_expression "pVar2 = background_color->index" identifier = (field_expression "background_color->index" identifier -> field_identifier)) ;) (expression_statement "uVar3 = background_color->field_0x1;" (assignment_expression "uVar3 = background_color->field_0x1" identifier = (field_expression "background_color->field_0x1" identifier -> field_identifier)) ;) (expression_statement "pVar4 = background_color->red;" (assignment_expression "pVar4 = background_color->red" identifier = (field_expression "background_color->red" identifier -> field_identifier)) ;) (expression_statement "uVar1 = png_ptr->transformations;" (assignment_expression "uVar1 = png_ptr->transformations" identifier = (field_expression "png_ptr->transformations" identifier -> field_identifier)) ;) (expression_statement "png_ptr->flags = png_ptr->flags & 0xffffdfff;" (assignment_expression "png_ptr->flags = png_ptr->flags & 0xffffdfff" (field_expression "png_ptr->flags" identifier -> field_identifier) = (binary_expression "png_ptr->flags & 0xffffdfff" (field_expression "png_ptr->flags" identifier -> field_identifier) & number_literal)) ;) (expression_statement "(png_ptr->background).index = pVar2;" (assignment_expression "(png_ptr->background).index = pVar2" (field_expression "(png_ptr->background).index" (parenthesized_expression "(png_ptr->background)" ( (field_expression "png_ptr->background" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(png_ptr->background).field_0x1 = uVar3;" (assignment_expression "(png_ptr->background).field_0x1 = uVar3" (field_expression "(png_ptr->background).field_0x1" (parenthesized_expression "(png_ptr->background)" ( (field_expression "png_ptr->background" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(png_ptr->background).red = pVar4;" (assignment_expression "(png_ptr->background).red = pVar4" (field_expression "(png_ptr->background).red" (parenthesized_expression "(png_ptr->background)" ( (field_expression "png_ptr->background" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "pVar4 = background_color->green;" (assignment_expression "pVar4 = background_color->green" identifier = (field_expression "background_color->green" identifier -> field_identifier)) ;) (expression_statement "pVar5 = background_color->blue;" (assignment_expression "pVar5 = background_color->blue" identifier = (field_expression "background_color->blue" identifier -> field_identifier)) ;) (expression_statement "png_ptr->background_gamma_type = (png_byte)background_gamma_code;" (assignment_expression "png_ptr->background_gamma_type = (png_byte)background_gamma_code" (field_expression "png_ptr->background_gamma_type" identifier -> field_identifier) = (cast_expression "(png_byte)background_gamma_code" ( (type_descriptor "png_byte" type_identifier) ) identifier)) ;) (expression_statement "(png_ptr->background).green = pVar4;" (assignment_expression "(png_ptr->background).green = pVar4" (field_expression "(png_ptr->background).green" (parenthesized_expression "(png_ptr->background)" ( (field_expression "png_ptr->background" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(png_ptr->background).blue = pVar5;" (assignment_expression "(png_ptr->background).blue = pVar5" (field_expression "(png_ptr->background).blue" (parenthesized_expression "(png_ptr->background)" ( (field_expression "png_ptr->background" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(png_ptr->background).gray = background_color->gray;" (assignment_expression "(png_ptr->background).gray = background_color->gray" (field_expression "(png_ptr->background).gray" (parenthesized_expression "(png_ptr->background)" ( (field_expression "png_ptr->background" identifier -> field_identifier) )) . field_identifier) = (field_expression "background_color->gray" identifier -> field_identifier)) ;) (expression_statement "png_ptr->background_gamma = background_gamma;" (assignment_expression "png_ptr->background_gamma = background_gamma" (field_expression "png_ptr->background_gamma" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar7 = uVar1 & 0xff7ffeff | 0x40080;" (assignment_expression "uVar7 = uVar1 & 0xff7ffeff | 0x40080" identifier = (binary_expression "uVar1 & 0xff7ffeff | 0x40080" (binary_expression "uVar1 & 0xff7ffeff" identifier & number_literal) | number_literal)) ;) (if_statement "if (need_expand != 0) {\n      uVar7 = uVar1 & 0xff7fffff | 0x40180;\n    }" if (parenthesized_expression "(need_expand != 0)" ( (binary_expression "need_expand != 0" identifier != number_literal) )) (compound_statement "{\n      uVar7 = uVar1 & 0xff7fffff | 0x40180;\n    }" { (expression_statement "uVar7 = uVar1 & 0xff7fffff | 0x40180;" (assignment_expression "uVar7 = uVar1 & 0xff7fffff | 0x40180" identifier = (binary_expression "uVar1 & 0xff7fffff | 0x40180" (binary_expression "uVar1 & 0xff7fffff" identifier & number_literal) | number_literal)) ;) })) (expression_statement "png_ptr->transformations = uVar7;" (assignment_expression "png_ptr->transformations = uVar7" (field_expression "png_ptr->transformations" identifier -> field_identifier) = identifier) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void png_set_background_fixed\n               (int param_1,undefined4 *param_2,int param_3,int param_4,undefined4 param_5)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  uint uVar3;\n  \n  iVar2 = FUN_00023e90(&__DT_PLTGOT);\n  if ((param_2 != (undefined4 *)0x0) && (iVar2 != 0)) {\n    if (param_3 == 0) {\n      png_warning(param_1,"Application must supply a known background gamma");\n      return;\n    }\n    uVar1 = *param_2;\n    *(uint *)(param_1 + 0xd4) = *(uint *)(param_1 + 0xd4) & 0xffffdfff;\n    *(undefined4 *)(param_1 + 0x1c0) = uVar1;\n    uVar1 = param_2[1];\n    *(undefined1 *)(param_1 + 0x1b8) = (undefined1)param_3;\n    *(undefined4 *)(param_1 + 0x1c4) = uVar1;\n    *(undefined2 *)(param_1 + 0x1c8) = *(undefined2 *)(param_2 + 2);\n    *(undefined4 *)(param_1 + 0x1bc) = param_5;\n    uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7ffeff | 0x40080;\n    if (param_4 != 0) {\n      uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7fffff | 0x40180;\n    }\n    *(uint *)(param_1 + 0xd8) = uVar3;\n  }\n  return;\n}\n\n" (function_definition "void png_set_background_fixed\n               (int param_1,undefined4 *param_2,int param_3,int param_4,undefined4 param_5)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  uint uVar3;\n  \n  iVar2 = FUN_00023e90(&__DT_PLTGOT);\n  if ((param_2 != (undefined4 *)0x0) && (iVar2 != 0)) {\n    if (param_3 == 0) {\n      png_warning(param_1,"Application must supply a known background gamma");\n      return;\n    }\n    uVar1 = *param_2;\n    *(uint *)(param_1 + 0xd4) = *(uint *)(param_1 + 0xd4) & 0xffffdfff;\n    *(undefined4 *)(param_1 + 0x1c0) = uVar1;\n    uVar1 = param_2[1];\n    *(undefined1 *)(param_1 + 0x1b8) = (undefined1)param_3;\n    *(undefined4 *)(param_1 + 0x1c4) = uVar1;\n    *(undefined2 *)(param_1 + 0x1c8) = *(undefined2 *)(param_2 + 2);\n    *(undefined4 *)(param_1 + 0x1bc) = param_5;\n    uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7ffeff | 0x40080;\n    if (param_4 != 0) {\n      uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7fffff | 0x40180;\n    }\n    *(uint *)(param_1 + 0xd8) = uVar3;\n  }\n  return;\n}" primitive_type (function_declarator "png_set_background_fixed\n               (int param_1,undefined4 *param_2,int param_3,int param_4,undefined4 param_5)" identifier (parameter_list "(int param_1,undefined4 *param_2,int param_3,int param_4,undefined4 param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  uint uVar3;\n  \n  iVar2 = FUN_00023e90(&__DT_PLTGOT);\n  if ((param_2 != (undefined4 *)0x0) && (iVar2 != 0)) {\n    if (param_3 == 0) {\n      png_warning(param_1,"Application must supply a known background gamma");\n      return;\n    }\n    uVar1 = *param_2;\n    *(uint *)(param_1 + 0xd4) = *(uint *)(param_1 + 0xd4) & 0xffffdfff;\n    *(undefined4 *)(param_1 + 0x1c0) = uVar1;\n    uVar1 = param_2[1];\n    *(undefined1 *)(param_1 + 0x1b8) = (undefined1)param_3;\n    *(undefined4 *)(param_1 + 0x1c4) = uVar1;\n    *(undefined2 *)(param_1 + 0x1c8) = *(undefined2 *)(param_2 + 2);\n    *(undefined4 *)(param_1 + 0x1bc) = param_5;\n    uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7ffeff | 0x40080;\n    if (param_4 != 0) {\n      uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7fffff | 0x40180;\n    }\n    *(uint *)(param_1 + 0xd8) = uVar3;\n  }\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (expression_statement "iVar2 = FUN_00023e90(&__DT_PLTGOT);" (assignment_expression "iVar2 = FUN_00023e90(&__DT_PLTGOT)" identifier = (call_expression "FUN_00023e90(&__DT_PLTGOT)" identifier (argument_list "(&__DT_PLTGOT)" ( (pointer_expression "&__DT_PLTGOT" & identifier) )))) ;) (if_statement "if ((param_2 != (undefined4 *)0x0) && (iVar2 != 0)) {\n    if (param_3 == 0) {\n      png_warning(param_1,"Application must supply a known background gamma");\n      return;\n    }\n    uVar1 = *param_2;\n    *(uint *)(param_1 + 0xd4) = *(uint *)(param_1 + 0xd4) & 0xffffdfff;\n    *(undefined4 *)(param_1 + 0x1c0) = uVar1;\n    uVar1 = param_2[1];\n    *(undefined1 *)(param_1 + 0x1b8) = (undefined1)param_3;\n    *(undefined4 *)(param_1 + 0x1c4) = uVar1;\n    *(undefined2 *)(param_1 + 0x1c8) = *(undefined2 *)(param_2 + 2);\n    *(undefined4 *)(param_1 + 0x1bc) = param_5;\n    uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7ffeff | 0x40080;\n    if (param_4 != 0) {\n      uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7fffff | 0x40180;\n    }\n    *(uint *)(param_1 + 0xd8) = uVar3;\n  }" if (parenthesized_expression "((param_2 != (undefined4 *)0x0) && (iVar2 != 0))" ( (binary_expression "(param_2 != (undefined4 *)0x0) && (iVar2 != 0)" (parenthesized_expression "(param_2 != (undefined4 *)0x0)" ( (binary_expression "param_2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    if (param_3 == 0) {\n      png_warning(param_1,"Application must supply a known background gamma");\n      return;\n    }\n    uVar1 = *param_2;\n    *(uint *)(param_1 + 0xd4) = *(uint *)(param_1 + 0xd4) & 0xffffdfff;\n    *(undefined4 *)(param_1 + 0x1c0) = uVar1;\n    uVar1 = param_2[1];\n    *(undefined1 *)(param_1 + 0x1b8) = (undefined1)param_3;\n    *(undefined4 *)(param_1 + 0x1c4) = uVar1;\n    *(undefined2 *)(param_1 + 0x1c8) = *(undefined2 *)(param_2 + 2);\n    *(undefined4 *)(param_1 + 0x1bc) = param_5;\n    uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7ffeff | 0x40080;\n    if (param_4 != 0) {\n      uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7fffff | 0x40180;\n    }\n    *(uint *)(param_1 + 0xd8) = uVar3;\n  }" { (if_statement "if (param_3 == 0) {\n      png_warning(param_1,"Application must supply a known background gamma");\n      return;\n    }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n      png_warning(param_1,"Application must supply a known background gamma");\n      return;\n    }" { (expression_statement "png_warning(param_1,"Application must supply a known background gamma");" (call_expression "png_warning(param_1,"Application must supply a known background gamma")" identifier (argument_list "(param_1,"Application must supply a known background gamma")" ( identifier , (string_literal ""Application must supply a known background gamma"" " string_content ") ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar1 = *param_2;" (assignment_expression "uVar1 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "*(uint *)(param_1 + 0xd4) = *(uint *)(param_1 + 0xd4) & 0xffffdfff;" (assignment_expression "*(uint *)(param_1 + 0xd4) = *(uint *)(param_1 + 0xd4) & 0xffffdfff" (pointer_expression "*(uint *)(param_1 + 0xd4)" * (cast_expression "(uint *)(param_1 + 0xd4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd4)" ( (binary_expression "param_1 + 0xd4" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 0xd4) & 0xffffdfff" (pointer_expression "*(uint *)(param_1 + 0xd4)" * (cast_expression "(uint *)(param_1 + 0xd4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd4)" ( (binary_expression "param_1 + 0xd4" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "*(undefined4 *)(param_1 + 0x1c0) = uVar1;" (assignment_expression "*(undefined4 *)(param_1 + 0x1c0) = uVar1" (pointer_expression "*(undefined4 *)(param_1 + 0x1c0)" * (cast_expression "(undefined4 *)(param_1 + 0x1c0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c0)" ( (binary_expression "param_1 + 0x1c0" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar1 = param_2[1];" (assignment_expression "uVar1 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(param_1 + 0x1b8) = (undefined1)param_3;" (assignment_expression "*(undefined1 *)(param_1 + 0x1b8) = (undefined1)param_3" (pointer_expression "*(undefined1 *)(param_1 + 0x1b8)" * (cast_expression "(undefined1 *)(param_1 + 0x1b8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1b8)" ( (binary_expression "param_1 + 0x1b8" identifier + number_literal) )))) = (cast_expression "(undefined1)param_3" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "*(undefined4 *)(param_1 + 0x1c4) = uVar1;" (assignment_expression "*(undefined4 *)(param_1 + 0x1c4) = uVar1" (pointer_expression "*(undefined4 *)(param_1 + 0x1c4)" * (cast_expression "(undefined4 *)(param_1 + 0x1c4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c4)" ( (binary_expression "param_1 + 0x1c4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined2 *)(param_1 + 0x1c8) = *(undefined2 *)(param_2 + 2);" (assignment_expression "*(undefined2 *)(param_1 + 0x1c8) = *(undefined2 *)(param_2 + 2)" (pointer_expression "*(undefined2 *)(param_1 + 0x1c8)" * (cast_expression "(undefined2 *)(param_1 + 0x1c8)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c8)" ( (binary_expression "param_1 + 0x1c8" identifier + number_literal) )))) = (pointer_expression "*(undefined2 *)(param_2 + 2)" * (cast_expression "(undefined2 *)(param_2 + 2)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 2)" ( (binary_expression "param_2 + 2" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x1bc) = param_5;" (assignment_expression "*(undefined4 *)(param_1 + 0x1bc) = param_5" (pointer_expression "*(undefined4 *)(param_1 + 0x1bc)" * (cast_expression "(undefined4 *)(param_1 + 0x1bc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1bc)" ( (binary_expression "param_1 + 0x1bc" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7ffeff | 0x40080;" (assignment_expression "uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7ffeff | 0x40080" identifier = (binary_expression "*(uint *)(param_1 + 0xd8) & 0xff7ffeff | 0x40080" (binary_expression "*(uint *)(param_1 + 0xd8) & 0xff7ffeff" (pointer_expression "*(uint *)(param_1 + 0xd8)" * (cast_expression "(uint *)(param_1 + 0xd8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd8)" ( (binary_expression "param_1 + 0xd8" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (param_4 != 0) {\n      uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7fffff | 0x40180;\n    }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7fffff | 0x40180;\n    }" { (expression_statement "uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7fffff | 0x40180;" (assignment_expression "uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7fffff | 0x40180" identifier = (binary_expression "*(uint *)(param_1 + 0xd8) & 0xff7fffff | 0x40180" (binary_expression "*(uint *)(param_1 + 0xd8) & 0xff7fffff" (pointer_expression "*(uint *)(param_1 + 0xd8)" * (cast_expression "(uint *)(param_1 + 0xd8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd8)" ( (binary_expression "param_1 + 0xd8" identifier + number_literal) )))) & number_literal) | number_literal)) ;) })) (expression_statement "*(uint *)(param_1 + 0xd8) = uVar3;" (assignment_expression "*(uint *)(param_1 + 0xd8) = uVar3" (pointer_expression "*(uint *)(param_1 + 0xd8)" * (cast_expression "(uint *)(param_1 + 0xd8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd8)" ( (binary_expression "param_1 + 0xd8" identifier + number_literal) )))) = identifier) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (return_statement return ;) })))
(function_definition "void png_set_background_fixed\n               (int param_1,undefined4 *param_2,int param_3,int param_4,undefined4 param_5)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  uint uVar3;\n  \n  iVar2 = FUN_00023e90(&__DT_PLTGOT);\n  if ((param_2 != (undefined4 *)0x0) && (iVar2 != 0)) {\n    if (param_3 == 0) {\n      png_warning(param_1,"Application must supply a known background gamma");\n      return;\n    }\n    uVar1 = *param_2;\n    *(uint *)(param_1 + 0xd4) = *(uint *)(param_1 + 0xd4) & 0xffffdfff;\n    *(undefined4 *)(param_1 + 0x1c0) = uVar1;\n    uVar1 = param_2[1];\n    *(undefined1 *)(param_1 + 0x1b8) = (undefined1)param_3;\n    *(undefined4 *)(param_1 + 0x1c4) = uVar1;\n    *(undefined2 *)(param_1 + 0x1c8) = *(undefined2 *)(param_2 + 2);\n    *(undefined4 *)(param_1 + 0x1bc) = param_5;\n    uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7ffeff | 0x40080;\n    if (param_4 != 0) {\n      uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7fffff | 0x40180;\n    }\n    *(uint *)(param_1 + 0xd8) = uVar3;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "png_set_background_fixed\n               (int param_1,undefined4 *param_2,int param_3,int param_4,undefined4 param_5)" (identifier "png_set_background_fixed") (parameter_list "(int param_1,undefined4 *param_2,int param_3,int param_4,undefined4 param_5)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  uint uVar3;\n  \n  iVar2 = FUN_00023e90(&__DT_PLTGOT);\n  if ((param_2 != (undefined4 *)0x0) && (iVar2 != 0)) {\n    if (param_3 == 0) {\n      png_warning(param_1,"Application must supply a known background gamma");\n      return;\n    }\n    uVar1 = *param_2;\n    *(uint *)(param_1 + 0xd4) = *(uint *)(param_1 + 0xd4) & 0xffffdfff;\n    *(undefined4 *)(param_1 + 0x1c0) = uVar1;\n    uVar1 = param_2[1];\n    *(undefined1 *)(param_1 + 0x1b8) = (undefined1)param_3;\n    *(undefined4 *)(param_1 + 0x1c4) = uVar1;\n    *(undefined2 *)(param_1 + 0x1c8) = *(undefined2 *)(param_2 + 2);\n    *(undefined4 *)(param_1 + 0x1bc) = param_5;\n    uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7ffeff | 0x40080;\n    if (param_4 != 0) {\n      uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7fffff | 0x40180;\n    }\n    *(uint *)(param_1 + 0xd8) = uVar3;\n  }\n  return;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (expression_statement "iVar2 = FUN_00023e90(&__DT_PLTGOT);" (assignment_expression "iVar2 = FUN_00023e90(&__DT_PLTGOT)" (identifier "iVar2") (= "=") (call_expression "FUN_00023e90(&__DT_PLTGOT)" (identifier "FUN_00023e90") (argument_list "(&__DT_PLTGOT)" (( "(") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT")) () ")")))) (; ";")) (if_statement "if ((param_2 != (undefined4 *)0x0) && (iVar2 != 0)) {\n    if (param_3 == 0) {\n      png_warning(param_1,"Application must supply a known background gamma");\n      return;\n    }\n    uVar1 = *param_2;\n    *(uint *)(param_1 + 0xd4) = *(uint *)(param_1 + 0xd4) & 0xffffdfff;\n    *(undefined4 *)(param_1 + 0x1c0) = uVar1;\n    uVar1 = param_2[1];\n    *(undefined1 *)(param_1 + 0x1b8) = (undefined1)param_3;\n    *(undefined4 *)(param_1 + 0x1c4) = uVar1;\n    *(undefined2 *)(param_1 + 0x1c8) = *(undefined2 *)(param_2 + 2);\n    *(undefined4 *)(param_1 + 0x1bc) = param_5;\n    uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7ffeff | 0x40080;\n    if (param_4 != 0) {\n      uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7fffff | 0x40180;\n    }\n    *(uint *)(param_1 + 0xd8) = uVar3;\n  }" (if "if") (parenthesized_expression "((param_2 != (undefined4 *)0x0) && (iVar2 != 0))" (( "(") (binary_expression "(param_2 != (undefined4 *)0x0) && (iVar2 != 0)" (parenthesized_expression "(param_2 != (undefined4 *)0x0)" (( "(") (binary_expression "param_2 != (undefined4 *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    if (param_3 == 0) {\n      png_warning(param_1,"Application must supply a known background gamma");\n      return;\n    }\n    uVar1 = *param_2;\n    *(uint *)(param_1 + 0xd4) = *(uint *)(param_1 + 0xd4) & 0xffffdfff;\n    *(undefined4 *)(param_1 + 0x1c0) = uVar1;\n    uVar1 = param_2[1];\n    *(undefined1 *)(param_1 + 0x1b8) = (undefined1)param_3;\n    *(undefined4 *)(param_1 + 0x1c4) = uVar1;\n    *(undefined2 *)(param_1 + 0x1c8) = *(undefined2 *)(param_2 + 2);\n    *(undefined4 *)(param_1 + 0x1bc) = param_5;\n    uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7ffeff | 0x40080;\n    if (param_4 != 0) {\n      uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7fffff | 0x40180;\n    }\n    *(uint *)(param_1 + 0xd8) = uVar3;\n  }" ({ "{") (if_statement "if (param_3 == 0) {\n      png_warning(param_1,"Application must supply a known background gamma");\n      return;\n    }" (if "if") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      png_warning(param_1,"Application must supply a known background gamma");\n      return;\n    }" ({ "{") (expression_statement "png_warning(param_1,"Application must supply a known background gamma");" (call_expression "png_warning(param_1,"Application must supply a known background gamma")" (identifier "png_warning") (argument_list "(param_1,"Application must supply a known background gamma")" (( "(") (identifier "param_1") (, ",") (string_literal ""Application must supply a known background gamma"" (" """) (string_content "Application must supply a known background gamma") (" """)) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar1 = *param_2;" (assignment_expression "uVar1 = *param_2" (identifier "uVar1") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "*(uint *)(param_1 + 0xd4) = *(uint *)(param_1 + 0xd4) & 0xffffdfff;" (assignment_expression "*(uint *)(param_1 + 0xd4) = *(uint *)(param_1 + 0xd4) & 0xffffdfff" (pointer_expression "*(uint *)(param_1 + 0xd4)" (* "*") (cast_expression "(uint *)(param_1 + 0xd4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xd4)" (( "(") (binary_expression "param_1 + 0xd4" (identifier "param_1") (+ "+") (number_literal "0xd4")) () ")")))) (= "=") (binary_expression "*(uint *)(param_1 + 0xd4) & 0xffffdfff" (pointer_expression "*(uint *)(param_1 + 0xd4)" (* "*") (cast_expression "(uint *)(param_1 + 0xd4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xd4)" (( "(") (binary_expression "param_1 + 0xd4" (identifier "param_1") (+ "+") (number_literal "0xd4")) () ")")))) (& "&") (number_literal "0xffffdfff"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x1c0) = uVar1;" (assignment_expression "*(undefined4 *)(param_1 + 0x1c0) = uVar1" (pointer_expression "*(undefined4 *)(param_1 + 0x1c0)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x1c0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c0)" (( "(") (binary_expression "param_1 + 0x1c0" (identifier "param_1") (+ "+") (number_literal "0x1c0")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "uVar1 = param_2[1];" (assignment_expression "uVar1 = param_2[1]" (identifier "uVar1") (= "=") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x1b8) = (undefined1)param_3;" (assignment_expression "*(undefined1 *)(param_1 + 0x1b8) = (undefined1)param_3" (pointer_expression "*(undefined1 *)(param_1 + 0x1b8)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x1b8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1b8)" (( "(") (binary_expression "param_1 + 0x1b8" (identifier "param_1") (+ "+") (number_literal "0x1b8")) () ")")))) (= "=") (cast_expression "(undefined1)param_3" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "param_3"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x1c4) = uVar1;" (assignment_expression "*(undefined4 *)(param_1 + 0x1c4) = uVar1" (pointer_expression "*(undefined4 *)(param_1 + 0x1c4)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x1c4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c4)" (( "(") (binary_expression "param_1 + 0x1c4" (identifier "param_1") (+ "+") (number_literal "0x1c4")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "*(undefined2 *)(param_1 + 0x1c8) = *(undefined2 *)(param_2 + 2);" (assignment_expression "*(undefined2 *)(param_1 + 0x1c8) = *(undefined2 *)(param_2 + 2)" (pointer_expression "*(undefined2 *)(param_1 + 0x1c8)" (* "*") (cast_expression "(undefined2 *)(param_1 + 0x1c8)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c8)" (( "(") (binary_expression "param_1 + 0x1c8" (identifier "param_1") (+ "+") (number_literal "0x1c8")) () ")")))) (= "=") (pointer_expression "*(undefined2 *)(param_2 + 2)" (* "*") (cast_expression "(undefined2 *)(param_2 + 2)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 2)" (( "(") (binary_expression "param_2 + 2" (identifier "param_2") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x1bc) = param_5;" (assignment_expression "*(undefined4 *)(param_1 + 0x1bc) = param_5" (pointer_expression "*(undefined4 *)(param_1 + 0x1bc)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x1bc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1bc)" (( "(") (binary_expression "param_1 + 0x1bc" (identifier "param_1") (+ "+") (number_literal "0x1bc")) () ")")))) (= "=") (identifier "param_5")) (; ";")) (expression_statement "uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7ffeff | 0x40080;" (assignment_expression "uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7ffeff | 0x40080" (identifier "uVar3") (= "=") (binary_expression "*(uint *)(param_1 + 0xd8) & 0xff7ffeff | 0x40080" (binary_expression "*(uint *)(param_1 + 0xd8) & 0xff7ffeff" (pointer_expression "*(uint *)(param_1 + 0xd8)" (* "*") (cast_expression "(uint *)(param_1 + 0xd8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xd8)" (( "(") (binary_expression "param_1 + 0xd8" (identifier "param_1") (+ "+") (number_literal "0xd8")) () ")")))) (& "&") (number_literal "0xff7ffeff")) (| "|") (number_literal "0x40080"))) (; ";")) (if_statement "if (param_4 != 0) {\n      uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7fffff | 0x40180;\n    }" (if "if") (parenthesized_expression "(param_4 != 0)" (( "(") (binary_expression "param_4 != 0" (identifier "param_4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7fffff | 0x40180;\n    }" ({ "{") (expression_statement "uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7fffff | 0x40180;" (assignment_expression "uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7fffff | 0x40180" (identifier "uVar3") (= "=") (binary_expression "*(uint *)(param_1 + 0xd8) & 0xff7fffff | 0x40180" (binary_expression "*(uint *)(param_1 + 0xd8) & 0xff7fffff" (pointer_expression "*(uint *)(param_1 + 0xd8)" (* "*") (cast_expression "(uint *)(param_1 + 0xd8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xd8)" (( "(") (binary_expression "param_1 + 0xd8" (identifier "param_1") (+ "+") (number_literal "0xd8")) () ")")))) (& "&") (number_literal "0xff7fffff")) (| "|") (number_literal "0x40180"))) (; ";")) (} "}"))) (expression_statement "*(uint *)(param_1 + 0xd8) = uVar3;" (assignment_expression "*(uint *)(param_1 + 0xd8) = uVar3" (pointer_expression "*(uint *)(param_1 + 0xd8)" (* "*") (cast_expression "(uint *)(param_1 + 0xd8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xd8)" (( "(") (binary_expression "param_1 + 0xd8" (identifier "param_1") (+ "+") (number_literal "0xd8")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Switch with 1 destination removed at 0x00014330 */
/* WARNING: Unknown calling convention */

void function_1
               (type_1 png_ptr,type_2 var_2,int var_4,
               int var_7,type_3 background_gamma)

{
  type_4 var_6;
  type_5 pVar2;
  type_6 uVar3;
  type_7 pVar4;
  type_7 pVar5;
  int var_3;
  type_4 uVar7;
  
  var_3 = var_1(png_ptr,0);
  if ((var_2 != (type_2)0x0) && (var_3 != 0)) {
    if (var_4 == 0) {
      var_5(png_ptr,"Application must supply a known background gamma");
      return;
    }
    pVar2 = var_2->index;
    uVar3 = var_2->field_0x1;
    pVar4 = var_2->red;
    var_6 = png_ptr->transformations;
    png_ptr->flags = png_ptr->flags & 0xffffdfff;
    (png_ptr->background).index = pVar2;
    (png_ptr->background).field_0x1 = uVar3;
    (png_ptr->background).red = pVar4;
    pVar4 = var_2->green;
    pVar5 = var_2->blue;
    png_ptr->background_gamma_type = (type_5)var_4;
    (png_ptr->background).green = pVar4;
    (png_ptr->background).blue = pVar5;
    (png_ptr->background).gray = var_2->gray;
    png_ptr->background_gamma = background_gamma;
    uVar7 = var_6 & 0xff7ffeff | 0x40080;
    if (var_7 != 0) {
      uVar7 = var_6 & 0xff7fffff | 0x40180;
    }
    png_ptr->transformations = uVar7;
  }
  return;
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Switch with 1 destination removed at 0x00014330 */

void MASKED
               (int param_1,undefined4 *param_2,int param_3,int param_4,undefined4 param_5)

{
  undefined4 uVar1;
  int iVar2;
  uint uVar3;
  
  iVar2 = FUN_00023e90(&__DT_PLTGOT);
  if ((param_2 != (undefined4 *)0x0) && (iVar2 != 0)) {
    if (param_3 == 0) {
      png_warning(param_1,"Application must supply a known background gamma");
      return;
    }
    uVar1 = *param_2;
    *(uint *)(param_1 + 0xd4) = *(uint *)(param_1 + 0xd4) & 0xffffdfff;
    *(undefined4 *)(param_1 + 0x1c0) = uVar1;
    uVar1 = param_2[1];
    *(undefined1 *)(param_1 + 0x1b8) = (undefined1)param_3;
    *(undefined4 *)(param_1 + 0x1c4) = uVar1;
    *(undefined2 *)(param_1 + 0x1c8) = *(undefined2 *)(param_2 + 2);
    *(undefined4 *)(param_1 + 0x1bc) = param_5;
    uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7ffeff | 0x40080;
    if (param_4 != 0) {
      uVar3 = *(uint *)(param_1 + 0xd8) & 0xff7fffff | 0x40180;
    }
    *(uint *)(param_1 + 0xd8) = uVar3;
  }
  return;
}

