
void png_set_unknown_chunk_location
               (png_const_structrp png_ptr,png_inforp info_ptr,int chunk,int location)

{
  png_byte pVar1;
  int location_00;
  png_unknown_chunkp ppVar2;
  
  if (png_ptr != (png_const_structrp)0x0) {
    if (((info_ptr != (png_inforp)0x0) && (-1 < chunk)) && (chunk < info_ptr->unknown_chunks_num)) {
      location_00 = location;
      if ((location & 0xbU) == 0) {
        png_app_error(png_ptr,PTR_s_nt_0005301c + 0x15d8);
        location_00 = 1;
        if ((location & 4U) != 0) {
          location_00 = 8;
        }
      }
      ppVar2 = info_ptr->unknown_chunks;
      pVar1 = check_location(png_ptr,location_00);
      ppVar2[chunk].location = pVar1;
    }
    return;
  }
  return;
}



void png_set_unknown_chunk_location(int param_1,int param_2,int param_3,uint param_4)

{
  undefined1 uVar2;
  uint uVar1;
  int iVar3;
  
  if (param_1 != 0) {
    if (((param_2 != 0) && (-1 < param_3)) && (param_3 < *(int *)(param_2 + 0xfc))) {
      uVar1 = param_4;
      if ((param_4 & 0xb) == 0) {
        FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8);
        uVar1 = 1;
        if ((param_4 & 4) != 0) {
          uVar1 = 8;
        }
      }
      iVar3 = *(int *)(param_2 + 0xf8);
      uVar2 = FUN_000315a0(param_1,uVar1);
      *(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10) = uVar2;
    }
    return;
  }
  return;
}


lui gp,0x2
addiu gp,gp,0x71c4
addu gp,gp,t9
beq a0,zero,0x00033ec0
_nop
addiu sp,sp,-0x28
sw gp,0x10(sp)
sw s1,0x20(sp)
or s1,a1,zero
sw ra,0x24(sp)
beq a1,zero,0x00033eac
_sw s0,0x1c(sp)
bltz a2,0x00033eb0
_lw ra,0x24(sp)
lw v0,0xfc(a1)
slt v0,a2,v0
beq v0,zero,0x00033eb0
_nop
andi v0,a3,0xb
beq v0,zero,0x00033ec8
_or s0,a0,zero
sll v0,a2,0x2
lw v1,0xf8(s1)
lw t9,-0x7e0c(gp)
or a0,s0,zero
addu a2,v0,a2
or a1,a3,zero
sll a2,a2,0x2
addiu t9,t9,0x15a0
bal 0x000315a0
_addu s0,v1,a2
sb v0,0x10(s0)
lw ra,0x24(sp)
lw s1,0x20(sp)
lw s0,0x1c(sp)
jr ra
_addiu sp,sp,0x28
jr ra
_nop
lw a1,-0x7fd4(gp)
lw t9,-0x7f74(gp)
sw a3,0x34(sp)
addiu a1,a1,0x15d8
bal 0x0001a150
_sw a2,0x30(sp)
li v1,0x8
lw a3,0x34(sp)
li v0,0x1
lw gp,0x10(sp)
lw a2,0x30(sp)
andi a3,a3,0x4
movn v0,v1,a3
b 0x00033e80
_or a3,v0,zero
(translation_unit "void png_set_unknown_chunk_location(int param_1,int param_2,int param_3,uint param_4)\n\n{\n  undefined1 uVar2;\n  uint uVar1;\n  int iVar3;\n  \n  if (param_1 != 0) {\n    if (((param_2 != 0) && (-1 < param_3)) && (param_3 < *(int *)(param_2 + 0xfc))) {\n      uVar1 = param_4;\n      if ((param_4 & 0xb) == 0) {\n        FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8);\n        uVar1 = 1;\n        if ((param_4 & 4) != 0) {\n          uVar1 = 8;\n        }\n      }\n      iVar3 = *(int *)(param_2 + 0xf8);\n      uVar2 = FUN_000315a0(param_1,uVar1);\n      *(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10) = uVar2;\n    }\n    return;\n  }\n  return;\n}\n\n" (function_definition "void png_set_unknown_chunk_location(int param_1,int param_2,int param_3,uint param_4)\n\n{\n  undefined1 uVar2;\n  uint uVar1;\n  int iVar3;\n  \n  if (param_1 != 0) {\n    if (((param_2 != 0) && (-1 < param_3)) && (param_3 < *(int *)(param_2 + 0xfc))) {\n      uVar1 = param_4;\n      if ((param_4 & 0xb) == 0) {\n        FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8);\n        uVar1 = 1;\n        if ((param_4 & 4) != 0) {\n          uVar1 = 8;\n        }\n      }\n      iVar3 = *(int *)(param_2 + 0xf8);\n      uVar2 = FUN_000315a0(param_1,uVar1);\n      *(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10) = uVar2;\n    }\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "png_set_unknown_chunk_location(int param_1,int param_2,int param_3,uint param_4)" identifier (parameter_list "(int param_1,int param_2,int param_3,uint param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "uint param_4" type_identifier identifier) ))) (compound_statement "{\n  undefined1 uVar2;\n  uint uVar1;\n  int iVar3;\n  \n  if (param_1 != 0) {\n    if (((param_2 != 0) && (-1 < param_3)) && (param_3 < *(int *)(param_2 + 0xfc))) {\n      uVar1 = param_4;\n      if ((param_4 & 0xb) == 0) {\n        FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8);\n        uVar1 = 1;\n        if ((param_4 & 4) != 0) {\n          uVar1 = 8;\n        }\n      }\n      iVar3 = *(int *)(param_2 + 0xf8);\n      uVar2 = FUN_000315a0(param_1,uVar1);\n      *(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10) = uVar2;\n    }\n    return;\n  }\n  return;\n}" { (declaration "undefined1 uVar2;" type_identifier identifier ;) (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (if_statement "if (param_1 != 0) {\n    if (((param_2 != 0) && (-1 < param_3)) && (param_3 < *(int *)(param_2 + 0xfc))) {\n      uVar1 = param_4;\n      if ((param_4 & 0xb) == 0) {\n        FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8);\n        uVar1 = 1;\n        if ((param_4 & 4) != 0) {\n          uVar1 = 8;\n        }\n      }\n      iVar3 = *(int *)(param_2 + 0xf8);\n      uVar2 = FUN_000315a0(param_1,uVar1);\n      *(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10) = uVar2;\n    }\n    return;\n  }" if (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) (compound_statement "{\n    if (((param_2 != 0) && (-1 < param_3)) && (param_3 < *(int *)(param_2 + 0xfc))) {\n      uVar1 = param_4;\n      if ((param_4 & 0xb) == 0) {\n        FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8);\n        uVar1 = 1;\n        if ((param_4 & 4) != 0) {\n          uVar1 = 8;\n        }\n      }\n      iVar3 = *(int *)(param_2 + 0xf8);\n      uVar2 = FUN_000315a0(param_1,uVar1);\n      *(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10) = uVar2;\n    }\n    return;\n  }" { (if_statement "if (((param_2 != 0) && (-1 < param_3)) && (param_3 < *(int *)(param_2 + 0xfc))) {\n      uVar1 = param_4;\n      if ((param_4 & 0xb) == 0) {\n        FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8);\n        uVar1 = 1;\n        if ((param_4 & 4) != 0) {\n          uVar1 = 8;\n        }\n      }\n      iVar3 = *(int *)(param_2 + 0xf8);\n      uVar2 = FUN_000315a0(param_1,uVar1);\n      *(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10) = uVar2;\n    }" if (parenthesized_expression "(((param_2 != 0) && (-1 < param_3)) && (param_3 < *(int *)(param_2 + 0xfc)))" ( (binary_expression "((param_2 != 0) && (-1 < param_3)) && (param_3 < *(int *)(param_2 + 0xfc))" (parenthesized_expression "((param_2 != 0) && (-1 < param_3))" ( (binary_expression "(param_2 != 0) && (-1 < param_3)" (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) && (parenthesized_expression "(-1 < param_3)" ( (binary_expression "-1 < param_3" number_literal < identifier) ))) )) && (parenthesized_expression "(param_3 < *(int *)(param_2 + 0xfc))" ( (binary_expression "param_3 < *(int *)(param_2 + 0xfc)" identifier < (pointer_expression "*(int *)(param_2 + 0xfc)" * (cast_expression "(int *)(param_2 + 0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xfc)" ( (binary_expression "param_2 + 0xfc" identifier + number_literal) ))))) ))) )) (compound_statement "{\n      uVar1 = param_4;\n      if ((param_4 & 0xb) == 0) {\n        FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8);\n        uVar1 = 1;\n        if ((param_4 & 4) != 0) {\n          uVar1 = 8;\n        }\n      }\n      iVar3 = *(int *)(param_2 + 0xf8);\n      uVar2 = FUN_000315a0(param_1,uVar1);\n      *(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10) = uVar2;\n    }" { (expression_statement "uVar1 = param_4;" (assignment_expression "uVar1 = param_4" identifier = identifier) ;) (if_statement "if ((param_4 & 0xb) == 0) {\n        FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8);\n        uVar1 = 1;\n        if ((param_4 & 4) != 0) {\n          uVar1 = 8;\n        }\n      }" if (parenthesized_expression "((param_4 & 0xb) == 0)" ( (binary_expression "(param_4 & 0xb) == 0" (parenthesized_expression "(param_4 & 0xb)" ( (binary_expression "param_4 & 0xb" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8);\n        uVar1 = 1;\n        if ((param_4 & 4) != 0) {\n          uVar1 = 8;\n        }\n      }" { (expression_statement "FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8);" (call_expression "FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8)" identifier (argument_list "(param_1,PTR_s_nt_0005301c + 0x15d8)" ( identifier , (binary_expression "PTR_s_nt_0005301c + 0x15d8" identifier + number_literal) ))) ;) (expression_statement "uVar1 = 1;" (assignment_expression "uVar1 = 1" identifier = number_literal) ;) (if_statement "if ((param_4 & 4) != 0) {\n          uVar1 = 8;\n        }" if (parenthesized_expression "((param_4 & 4) != 0)" ( (binary_expression "(param_4 & 4) != 0" (parenthesized_expression "(param_4 & 4)" ( (binary_expression "param_4 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar1 = 8;\n        }" { (expression_statement "uVar1 = 8;" (assignment_expression "uVar1 = 8" identifier = number_literal) ;) })) })) (expression_statement "iVar3 = *(int *)(param_2 + 0xf8);" (assignment_expression "iVar3 = *(int *)(param_2 + 0xf8)" identifier = (pointer_expression "*(int *)(param_2 + 0xf8)" * (cast_expression "(int *)(param_2 + 0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xf8)" ( (binary_expression "param_2 + 0xf8" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = FUN_000315a0(param_1,uVar1);" (assignment_expression "uVar2 = FUN_000315a0(param_1,uVar1)" identifier = (call_expression "FUN_000315a0(param_1,uVar1)" identifier (argument_list "(param_1,uVar1)" ( identifier , identifier )))) ;) (expression_statement "*(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10) = uVar2;" (assignment_expression "*(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10) = uVar2" (pointer_expression "*(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10)" * (cast_expression "(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + param_3 * 0x14 + 0x10)" ( (binary_expression "iVar3 + param_3 * 0x14 + 0x10" (binary_expression "iVar3 + param_3 * 0x14" identifier + (binary_expression "param_3 * 0x14" identifier * number_literal)) + number_literal) )))) = identifier) ;) })) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "void png_set_unknown_chunk_location\n               (png_const_structrp png_ptr,png_inforp info_ptr,int chunk,int location)\n\n{\n  png_byte pVar1;\n  int location_00;\n  png_unknown_chunkp ppVar2;\n  \n  if (png_ptr != (png_const_structrp)0x0) {\n    if (((info_ptr != (png_inforp)0x0) && (-1 < chunk)) && (chunk < info_ptr->unknown_chunks_num)) {\n      location_00 = location;\n      if ((location & 0xbU) == 0) {\n        png_app_error(png_ptr,PTR_s_nt_0005301c + 0x15d8);\n        location_00 = 1;\n        if ((location & 4U) != 0) {\n          location_00 = 8;\n        }\n      }\n      ppVar2 = info_ptr->unknown_chunks;\n      pVar1 = check_location(png_ptr,location_00);\n      ppVar2[chunk].location = pVar1;\n    }\n    return;\n  }\n  return;\n}\n\n" (function_definition "void png_set_unknown_chunk_location\n               (png_const_structrp png_ptr,png_inforp info_ptr,int chunk,int location)\n\n{\n  png_byte pVar1;\n  int location_00;\n  png_unknown_chunkp ppVar2;\n  \n  if (png_ptr != (png_const_structrp)0x0) {\n    if (((info_ptr != (png_inforp)0x0) && (-1 < chunk)) && (chunk < info_ptr->unknown_chunks_num)) {\n      location_00 = location;\n      if ((location & 0xbU) == 0) {\n        png_app_error(png_ptr,PTR_s_nt_0005301c + 0x15d8);\n        location_00 = 1;\n        if ((location & 4U) != 0) {\n          location_00 = 8;\n        }\n      }\n      ppVar2 = info_ptr->unknown_chunks;\n      pVar1 = check_location(png_ptr,location_00);\n      ppVar2[chunk].location = pVar1;\n    }\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "png_set_unknown_chunk_location\n               (png_const_structrp png_ptr,png_inforp info_ptr,int chunk,int location)" identifier (parameter_list "(png_const_structrp png_ptr,png_inforp info_ptr,int chunk,int location)" ( (parameter_declaration "png_const_structrp png_ptr" type_identifier identifier) , (parameter_declaration "png_inforp info_ptr" type_identifier identifier) , (parameter_declaration "int chunk" primitive_type identifier) , (parameter_declaration "int location" primitive_type identifier) ))) (compound_statement "{\n  png_byte pVar1;\n  int location_00;\n  png_unknown_chunkp ppVar2;\n  \n  if (png_ptr != (png_const_structrp)0x0) {\n    if (((info_ptr != (png_inforp)0x0) && (-1 < chunk)) && (chunk < info_ptr->unknown_chunks_num)) {\n      location_00 = location;\n      if ((location & 0xbU) == 0) {\n        png_app_error(png_ptr,PTR_s_nt_0005301c + 0x15d8);\n        location_00 = 1;\n        if ((location & 4U) != 0) {\n          location_00 = 8;\n        }\n      }\n      ppVar2 = info_ptr->unknown_chunks;\n      pVar1 = check_location(png_ptr,location_00);\n      ppVar2[chunk].location = pVar1;\n    }\n    return;\n  }\n  return;\n}" { (declaration "png_byte pVar1;" type_identifier identifier ;) (declaration "int location_00;" primitive_type identifier ;) (declaration "png_unknown_chunkp ppVar2;" type_identifier identifier ;) (if_statement "if (png_ptr != (png_const_structrp)0x0) {\n    if (((info_ptr != (png_inforp)0x0) && (-1 < chunk)) && (chunk < info_ptr->unknown_chunks_num)) {\n      location_00 = location;\n      if ((location & 0xbU) == 0) {\n        png_app_error(png_ptr,PTR_s_nt_0005301c + 0x15d8);\n        location_00 = 1;\n        if ((location & 4U) != 0) {\n          location_00 = 8;\n        }\n      }\n      ppVar2 = info_ptr->unknown_chunks;\n      pVar1 = check_location(png_ptr,location_00);\n      ppVar2[chunk].location = pVar1;\n    }\n    return;\n  }" if (parenthesized_expression "(png_ptr != (png_const_structrp)0x0)" ( (binary_expression "png_ptr != (png_const_structrp)0x0" identifier != (cast_expression "(png_const_structrp)0x0" ( (type_descriptor "png_const_structrp" type_identifier) ) number_literal)) )) (compound_statement "{\n    if (((info_ptr != (png_inforp)0x0) && (-1 < chunk)) && (chunk < info_ptr->unknown_chunks_num)) {\n      location_00 = location;\n      if ((location & 0xbU) == 0) {\n        png_app_error(png_ptr,PTR_s_nt_0005301c + 0x15d8);\n        location_00 = 1;\n        if ((location & 4U) != 0) {\n          location_00 = 8;\n        }\n      }\n      ppVar2 = info_ptr->unknown_chunks;\n      pVar1 = check_location(png_ptr,location_00);\n      ppVar2[chunk].location = pVar1;\n    }\n    return;\n  }" { (if_statement "if (((info_ptr != (png_inforp)0x0) && (-1 < chunk)) && (chunk < info_ptr->unknown_chunks_num)) {\n      location_00 = location;\n      if ((location & 0xbU) == 0) {\n        png_app_error(png_ptr,PTR_s_nt_0005301c + 0x15d8);\n        location_00 = 1;\n        if ((location & 4U) != 0) {\n          location_00 = 8;\n        }\n      }\n      ppVar2 = info_ptr->unknown_chunks;\n      pVar1 = check_location(png_ptr,location_00);\n      ppVar2[chunk].location = pVar1;\n    }" if (parenthesized_expression "(((info_ptr != (png_inforp)0x0) && (-1 < chunk)) && (chunk < info_ptr->unknown_chunks_num))" ( (binary_expression "((info_ptr != (png_inforp)0x0) && (-1 < chunk)) && (chunk < info_ptr->unknown_chunks_num)" (parenthesized_expression "((info_ptr != (png_inforp)0x0) && (-1 < chunk))" ( (binary_expression "(info_ptr != (png_inforp)0x0) && (-1 < chunk)" (parenthesized_expression "(info_ptr != (png_inforp)0x0)" ( (binary_expression "info_ptr != (png_inforp)0x0" identifier != (cast_expression "(png_inforp)0x0" ( (type_descriptor "png_inforp" type_identifier) ) number_literal)) )) && (parenthesized_expression "(-1 < chunk)" ( (binary_expression "-1 < chunk" number_literal < identifier) ))) )) && (parenthesized_expression "(chunk < info_ptr->unknown_chunks_num)" ( (binary_expression "chunk < info_ptr->unknown_chunks_num" identifier < (field_expression "info_ptr->unknown_chunks_num" identifier -> field_identifier)) ))) )) (compound_statement "{\n      location_00 = location;\n      if ((location & 0xbU) == 0) {\n        png_app_error(png_ptr,PTR_s_nt_0005301c + 0x15d8);\n        location_00 = 1;\n        if ((location & 4U) != 0) {\n          location_00 = 8;\n        }\n      }\n      ppVar2 = info_ptr->unknown_chunks;\n      pVar1 = check_location(png_ptr,location_00);\n      ppVar2[chunk].location = pVar1;\n    }" { (expression_statement "location_00 = location;" (assignment_expression "location_00 = location" identifier = identifier) ;) (if_statement "if ((location & 0xbU) == 0) {\n        png_app_error(png_ptr,PTR_s_nt_0005301c + 0x15d8);\n        location_00 = 1;\n        if ((location & 4U) != 0) {\n          location_00 = 8;\n        }\n      }" if (parenthesized_expression "((location & 0xbU) == 0)" ( (binary_expression "(location & 0xbU) == 0" (parenthesized_expression "(location & 0xbU)" ( (binary_expression "location & 0xbU" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        png_app_error(png_ptr,PTR_s_nt_0005301c + 0x15d8);\n        location_00 = 1;\n        if ((location & 4U) != 0) {\n          location_00 = 8;\n        }\n      }" { (expression_statement "png_app_error(png_ptr,PTR_s_nt_0005301c + 0x15d8);" (call_expression "png_app_error(png_ptr,PTR_s_nt_0005301c + 0x15d8)" identifier (argument_list "(png_ptr,PTR_s_nt_0005301c + 0x15d8)" ( identifier , (binary_expression "PTR_s_nt_0005301c + 0x15d8" identifier + number_literal) ))) ;) (expression_statement "location_00 = 1;" (assignment_expression "location_00 = 1" identifier = number_literal) ;) (if_statement "if ((location & 4U) != 0) {\n          location_00 = 8;\n        }" if (parenthesized_expression "((location & 4U) != 0)" ( (binary_expression "(location & 4U) != 0" (parenthesized_expression "(location & 4U)" ( (binary_expression "location & 4U" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          location_00 = 8;\n        }" { (expression_statement "location_00 = 8;" (assignment_expression "location_00 = 8" identifier = number_literal) ;) })) })) (expression_statement "ppVar2 = info_ptr->unknown_chunks;" (assignment_expression "ppVar2 = info_ptr->unknown_chunks" identifier = (field_expression "info_ptr->unknown_chunks" identifier -> field_identifier)) ;) (expression_statement "pVar1 = check_location(png_ptr,location_00);" (assignment_expression "pVar1 = check_location(png_ptr,location_00)" identifier = (call_expression "check_location(png_ptr,location_00)" identifier (argument_list "(png_ptr,location_00)" ( identifier , identifier )))) ;) (expression_statement "ppVar2[chunk].location = pVar1;" (assignment_expression "ppVar2[chunk].location = pVar1" (field_expression "ppVar2[chunk].location" (subscript_expression "ppVar2[chunk]" identifier [ identifier ]) . field_identifier) = identifier) ;) })) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "void png_set_unknown_chunk_location(int param_1,int param_2,int param_3,uint param_4)\n\n{\n  undefined1 uVar2;\n  uint uVar1;\n  int iVar3;\n  \n  if (param_1 != 0) {\n    if (((param_2 != 0) && (-1 < param_3)) && (param_3 < *(int *)(param_2 + 0xfc))) {\n      uVar1 = param_4;\n      if ((param_4 & 0xb) == 0) {\n        FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8);\n        uVar1 = 1;\n        if ((param_4 & 4) != 0) {\n          uVar1 = 8;\n        }\n      }\n      iVar3 = *(int *)(param_2 + 0xf8);\n      uVar2 = FUN_000315a0(param_1,uVar1);\n      *(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10) = uVar2;\n    }\n    return;\n  }\n  return;\n}\n\n" (function_definition "void png_set_unknown_chunk_location(int param_1,int param_2,int param_3,uint param_4)\n\n{\n  undefined1 uVar2;\n  uint uVar1;\n  int iVar3;\n  \n  if (param_1 != 0) {\n    if (((param_2 != 0) && (-1 < param_3)) && (param_3 < *(int *)(param_2 + 0xfc))) {\n      uVar1 = param_4;\n      if ((param_4 & 0xb) == 0) {\n        FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8);\n        uVar1 = 1;\n        if ((param_4 & 4) != 0) {\n          uVar1 = 8;\n        }\n      }\n      iVar3 = *(int *)(param_2 + 0xf8);\n      uVar2 = FUN_000315a0(param_1,uVar1);\n      *(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10) = uVar2;\n    }\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "png_set_unknown_chunk_location(int param_1,int param_2,int param_3,uint param_4)" identifier (parameter_list "(int param_1,int param_2,int param_3,uint param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "uint param_4" type_identifier identifier) ))) (compound_statement "{\n  undefined1 uVar2;\n  uint uVar1;\n  int iVar3;\n  \n  if (param_1 != 0) {\n    if (((param_2 != 0) && (-1 < param_3)) && (param_3 < *(int *)(param_2 + 0xfc))) {\n      uVar1 = param_4;\n      if ((param_4 & 0xb) == 0) {\n        FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8);\n        uVar1 = 1;\n        if ((param_4 & 4) != 0) {\n          uVar1 = 8;\n        }\n      }\n      iVar3 = *(int *)(param_2 + 0xf8);\n      uVar2 = FUN_000315a0(param_1,uVar1);\n      *(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10) = uVar2;\n    }\n    return;\n  }\n  return;\n}" { (declaration "undefined1 uVar2;" type_identifier identifier ;) (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (if_statement "if (param_1 != 0) {\n    if (((param_2 != 0) && (-1 < param_3)) && (param_3 < *(int *)(param_2 + 0xfc))) {\n      uVar1 = param_4;\n      if ((param_4 & 0xb) == 0) {\n        FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8);\n        uVar1 = 1;\n        if ((param_4 & 4) != 0) {\n          uVar1 = 8;\n        }\n      }\n      iVar3 = *(int *)(param_2 + 0xf8);\n      uVar2 = FUN_000315a0(param_1,uVar1);\n      *(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10) = uVar2;\n    }\n    return;\n  }" if (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) (compound_statement "{\n    if (((param_2 != 0) && (-1 < param_3)) && (param_3 < *(int *)(param_2 + 0xfc))) {\n      uVar1 = param_4;\n      if ((param_4 & 0xb) == 0) {\n        FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8);\n        uVar1 = 1;\n        if ((param_4 & 4) != 0) {\n          uVar1 = 8;\n        }\n      }\n      iVar3 = *(int *)(param_2 + 0xf8);\n      uVar2 = FUN_000315a0(param_1,uVar1);\n      *(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10) = uVar2;\n    }\n    return;\n  }" { (if_statement "if (((param_2 != 0) && (-1 < param_3)) && (param_3 < *(int *)(param_2 + 0xfc))) {\n      uVar1 = param_4;\n      if ((param_4 & 0xb) == 0) {\n        FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8);\n        uVar1 = 1;\n        if ((param_4 & 4) != 0) {\n          uVar1 = 8;\n        }\n      }\n      iVar3 = *(int *)(param_2 + 0xf8);\n      uVar2 = FUN_000315a0(param_1,uVar1);\n      *(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10) = uVar2;\n    }" if (parenthesized_expression "(((param_2 != 0) && (-1 < param_3)) && (param_3 < *(int *)(param_2 + 0xfc)))" ( (binary_expression "((param_2 != 0) && (-1 < param_3)) && (param_3 < *(int *)(param_2 + 0xfc))" (parenthesized_expression "((param_2 != 0) && (-1 < param_3))" ( (binary_expression "(param_2 != 0) && (-1 < param_3)" (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) && (parenthesized_expression "(-1 < param_3)" ( (binary_expression "-1 < param_3" number_literal < identifier) ))) )) && (parenthesized_expression "(param_3 < *(int *)(param_2 + 0xfc))" ( (binary_expression "param_3 < *(int *)(param_2 + 0xfc)" identifier < (pointer_expression "*(int *)(param_2 + 0xfc)" * (cast_expression "(int *)(param_2 + 0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xfc)" ( (binary_expression "param_2 + 0xfc" identifier + number_literal) ))))) ))) )) (compound_statement "{\n      uVar1 = param_4;\n      if ((param_4 & 0xb) == 0) {\n        FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8);\n        uVar1 = 1;\n        if ((param_4 & 4) != 0) {\n          uVar1 = 8;\n        }\n      }\n      iVar3 = *(int *)(param_2 + 0xf8);\n      uVar2 = FUN_000315a0(param_1,uVar1);\n      *(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10) = uVar2;\n    }" { (expression_statement "uVar1 = param_4;" (assignment_expression "uVar1 = param_4" identifier = identifier) ;) (if_statement "if ((param_4 & 0xb) == 0) {\n        FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8);\n        uVar1 = 1;\n        if ((param_4 & 4) != 0) {\n          uVar1 = 8;\n        }\n      }" if (parenthesized_expression "((param_4 & 0xb) == 0)" ( (binary_expression "(param_4 & 0xb) == 0" (parenthesized_expression "(param_4 & 0xb)" ( (binary_expression "param_4 & 0xb" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8);\n        uVar1 = 1;\n        if ((param_4 & 4) != 0) {\n          uVar1 = 8;\n        }\n      }" { (expression_statement "FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8);" (call_expression "FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8)" identifier (argument_list "(param_1,PTR_s_nt_0005301c + 0x15d8)" ( identifier , (binary_expression "PTR_s_nt_0005301c + 0x15d8" identifier + number_literal) ))) ;) (expression_statement "uVar1 = 1;" (assignment_expression "uVar1 = 1" identifier = number_literal) ;) (if_statement "if ((param_4 & 4) != 0) {\n          uVar1 = 8;\n        }" if (parenthesized_expression "((param_4 & 4) != 0)" ( (binary_expression "(param_4 & 4) != 0" (parenthesized_expression "(param_4 & 4)" ( (binary_expression "param_4 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar1 = 8;\n        }" { (expression_statement "uVar1 = 8;" (assignment_expression "uVar1 = 8" identifier = number_literal) ;) })) })) (expression_statement "iVar3 = *(int *)(param_2 + 0xf8);" (assignment_expression "iVar3 = *(int *)(param_2 + 0xf8)" identifier = (pointer_expression "*(int *)(param_2 + 0xf8)" * (cast_expression "(int *)(param_2 + 0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xf8)" ( (binary_expression "param_2 + 0xf8" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = FUN_000315a0(param_1,uVar1);" (assignment_expression "uVar2 = FUN_000315a0(param_1,uVar1)" identifier = (call_expression "FUN_000315a0(param_1,uVar1)" identifier (argument_list "(param_1,uVar1)" ( identifier , identifier )))) ;) (expression_statement "*(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10) = uVar2;" (assignment_expression "*(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10) = uVar2" (pointer_expression "*(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10)" * (cast_expression "(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + param_3 * 0x14 + 0x10)" ( (binary_expression "iVar3 + param_3 * 0x14 + 0x10" (binary_expression "iVar3 + param_3 * 0x14" identifier + (binary_expression "param_3 * 0x14" identifier * number_literal)) + number_literal) )))) = identifier) ;) })) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) && (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) })) (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 = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))) = IDENT) ;) })) (return_statement return ;) })) (return_statement return ;) })))
(function_definition "void png_set_unknown_chunk_location(int param_1,int param_2,int param_3,uint param_4)\n\n{\n  undefined1 uVar2;\n  uint uVar1;\n  int iVar3;\n  \n  if (param_1 != 0) {\n    if (((param_2 != 0) && (-1 < param_3)) && (param_3 < *(int *)(param_2 + 0xfc))) {\n      uVar1 = param_4;\n      if ((param_4 & 0xb) == 0) {\n        FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8);\n        uVar1 = 1;\n        if ((param_4 & 4) != 0) {\n          uVar1 = 8;\n        }\n      }\n      iVar3 = *(int *)(param_2 + 0xf8);\n      uVar2 = FUN_000315a0(param_1,uVar1);\n      *(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10) = uVar2;\n    }\n    return;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "png_set_unknown_chunk_location(int param_1,int param_2,int param_3,uint param_4)" (identifier "png_set_unknown_chunk_location") (parameter_list "(int param_1,int param_2,int param_3,uint param_4)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "uint param_4" (type_identifier "uint") (identifier "param_4")) () ")"))) (compound_statement "{\n  undefined1 uVar2;\n  uint uVar1;\n  int iVar3;\n  \n  if (param_1 != 0) {\n    if (((param_2 != 0) && (-1 < param_3)) && (param_3 < *(int *)(param_2 + 0xfc))) {\n      uVar1 = param_4;\n      if ((param_4 & 0xb) == 0) {\n        FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8);\n        uVar1 = 1;\n        if ((param_4 & 4) != 0) {\n          uVar1 = 8;\n        }\n      }\n      iVar3 = *(int *)(param_2 + 0xf8);\n      uVar2 = FUN_000315a0(param_1,uVar1);\n      *(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10) = uVar2;\n    }\n    return;\n  }\n  return;\n}" ({ "{") (declaration "undefined1 uVar2;" (type_identifier "undefined1") (identifier "uVar2") (; ";")) (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (if_statement "if (param_1 != 0) {\n    if (((param_2 != 0) && (-1 < param_3)) && (param_3 < *(int *)(param_2 + 0xfc))) {\n      uVar1 = param_4;\n      if ((param_4 & 0xb) == 0) {\n        FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8);\n        uVar1 = 1;\n        if ((param_4 & 4) != 0) {\n          uVar1 = 8;\n        }\n      }\n      iVar3 = *(int *)(param_2 + 0xf8);\n      uVar2 = FUN_000315a0(param_1,uVar1);\n      *(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10) = uVar2;\n    }\n    return;\n  }" (if "if") (parenthesized_expression "(param_1 != 0)" (( "(") (binary_expression "param_1 != 0" (identifier "param_1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (((param_2 != 0) && (-1 < param_3)) && (param_3 < *(int *)(param_2 + 0xfc))) {\n      uVar1 = param_4;\n      if ((param_4 & 0xb) == 0) {\n        FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8);\n        uVar1 = 1;\n        if ((param_4 & 4) != 0) {\n          uVar1 = 8;\n        }\n      }\n      iVar3 = *(int *)(param_2 + 0xf8);\n      uVar2 = FUN_000315a0(param_1,uVar1);\n      *(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10) = uVar2;\n    }\n    return;\n  }" ({ "{") (if_statement "if (((param_2 != 0) && (-1 < param_3)) && (param_3 < *(int *)(param_2 + 0xfc))) {\n      uVar1 = param_4;\n      if ((param_4 & 0xb) == 0) {\n        FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8);\n        uVar1 = 1;\n        if ((param_4 & 4) != 0) {\n          uVar1 = 8;\n        }\n      }\n      iVar3 = *(int *)(param_2 + 0xf8);\n      uVar2 = FUN_000315a0(param_1,uVar1);\n      *(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10) = uVar2;\n    }" (if "if") (parenthesized_expression "(((param_2 != 0) && (-1 < param_3)) && (param_3 < *(int *)(param_2 + 0xfc)))" (( "(") (binary_expression "((param_2 != 0) && (-1 < param_3)) && (param_3 < *(int *)(param_2 + 0xfc))" (parenthesized_expression "((param_2 != 0) && (-1 < param_3))" (( "(") (binary_expression "(param_2 != 0) && (-1 < param_3)" (parenthesized_expression "(param_2 != 0)" (( "(") (binary_expression "param_2 != 0" (identifier "param_2") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(-1 < param_3)" (( "(") (binary_expression "-1 < param_3" (number_literal "-1") (< "<") (identifier "param_3")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(param_3 < *(int *)(param_2 + 0xfc))" (( "(") (binary_expression "param_3 < *(int *)(param_2 + 0xfc)" (identifier "param_3") (< "<") (pointer_expression "*(int *)(param_2 + 0xfc)" (* "*") (cast_expression "(int *)(param_2 + 0xfc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xfc)" (( "(") (binary_expression "param_2 + 0xfc" (identifier "param_2") (+ "+") (number_literal "0xfc")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n      uVar1 = param_4;\n      if ((param_4 & 0xb) == 0) {\n        FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8);\n        uVar1 = 1;\n        if ((param_4 & 4) != 0) {\n          uVar1 = 8;\n        }\n      }\n      iVar3 = *(int *)(param_2 + 0xf8);\n      uVar2 = FUN_000315a0(param_1,uVar1);\n      *(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10) = uVar2;\n    }" ({ "{") (expression_statement "uVar1 = param_4;" (assignment_expression "uVar1 = param_4" (identifier "uVar1") (= "=") (identifier "param_4")) (; ";")) (if_statement "if ((param_4 & 0xb) == 0) {\n        FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8);\n        uVar1 = 1;\n        if ((param_4 & 4) != 0) {\n          uVar1 = 8;\n        }\n      }" (if "if") (parenthesized_expression "((param_4 & 0xb) == 0)" (( "(") (binary_expression "(param_4 & 0xb) == 0" (parenthesized_expression "(param_4 & 0xb)" (( "(") (binary_expression "param_4 & 0xb" (identifier "param_4") (& "&") (number_literal "0xb")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8);\n        uVar1 = 1;\n        if ((param_4 & 4) != 0) {\n          uVar1 = 8;\n        }\n      }" ({ "{") (expression_statement "FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8);" (call_expression "FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8)" (identifier "FUN_0001a150") (argument_list "(param_1,PTR_s_nt_0005301c + 0x15d8)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_s_nt_0005301c + 0x15d8" (identifier "PTR_s_nt_0005301c") (+ "+") (number_literal "0x15d8")) () ")"))) (; ";")) (expression_statement "uVar1 = 1;" (assignment_expression "uVar1 = 1" (identifier "uVar1") (= "=") (number_literal "1")) (; ";")) (if_statement "if ((param_4 & 4) != 0) {\n          uVar1 = 8;\n        }" (if "if") (parenthesized_expression "((param_4 & 4) != 0)" (( "(") (binary_expression "(param_4 & 4) != 0" (parenthesized_expression "(param_4 & 4)" (( "(") (binary_expression "param_4 & 4" (identifier "param_4") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar1 = 8;\n        }" ({ "{") (expression_statement "uVar1 = 8;" (assignment_expression "uVar1 = 8" (identifier "uVar1") (= "=") (number_literal "8")) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar3 = *(int *)(param_2 + 0xf8);" (assignment_expression "iVar3 = *(int *)(param_2 + 0xf8)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(param_2 + 0xf8)" (* "*") (cast_expression "(int *)(param_2 + 0xf8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xf8)" (( "(") (binary_expression "param_2 + 0xf8" (identifier "param_2") (+ "+") (number_literal "0xf8")) () ")"))))) (; ";")) (expression_statement "uVar2 = FUN_000315a0(param_1,uVar1);" (assignment_expression "uVar2 = FUN_000315a0(param_1,uVar1)" (identifier "uVar2") (= "=") (call_expression "FUN_000315a0(param_1,uVar1)" (identifier "FUN_000315a0") (argument_list "(param_1,uVar1)" (( "(") (identifier "param_1") (, ",") (identifier "uVar1") () ")")))) (; ";")) (expression_statement "*(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10) = uVar2;" (assignment_expression "*(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10) = uVar2" (pointer_expression "*(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10)" (* "*") (cast_expression "(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + param_3 * 0x14 + 0x10)" (( "(") (binary_expression "iVar3 + param_3 * 0x14 + 0x10" (binary_expression "iVar3 + param_3 * 0x14" (identifier "iVar3") (+ "+") (binary_expression "param_3 * 0x14" (identifier "param_3") (* "*") (number_literal "0x14"))) (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (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: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) right: (identifier))))) (return_statement))) (return_statement))))

void MASKED(int param_1,int param_2,int param_3,uint param_4)

{
  undefined1 uVar2;
  uint uVar1;
  int iVar3;
  
  if (param_1 != 0) {
    if (((param_2 != 0) && (-1 < param_3)) && (param_3 < *(int *)(param_2 + 0xfc))) {
      uVar1 = param_4;
      if ((param_4 & 0xb) == 0) {
        FUN_0001a150(param_1,PTR_s_nt_0005301c + 0x15d8);
        uVar1 = 1;
        if ((param_4 & 4) != 0) {
          uVar1 = 8;
        }
      }
      iVar3 = *(int *)(param_2 + 0xf8);
      uVar2 = FUN_000315a0(param_1,uVar1);
      *(undefined1 *)(iVar3 + param_3 * 0x14 + 0x10) = uVar2;
    }
    return;
  }
  return;
}

