
void context_length_arg(char *str,intmax_t *out)

{
  strtol_error sVar1;
  undefined4 uVar2;
  int iVar3;
  undefined4 *puVar4;
  int iVar5;
  undefined *puVar6;
  
  sVar1 = xstrtoimax(str,(char **)0x0,10,out,PTR_wcrtomb_00056118 + 0x53c8);
  if ((sVar1 < LONGINT_INVALID_SUFFIX_CHAR) && (-1 < *(int *)out)) {
    return;
  }
  uVar2 = (*(code *)PTR_dcgettext_0005649c)(0,PTR_wcrtomb_00056118 + 0x80c,5);
  iVar5 = 0;
  puVar6 = PTR_error_00056450;
  (*(code *)PTR_error_00056450)(2,0,PTR_wcrtomb_00056118 + 0x82c,str,uVar2);
  iVar3 = (**(code **)(puVar6 + 0x40174))();
  if (iVar5 != iVar3) {
    puVar4 = (undefined4 *)(**(code **)(puVar6 + 0x400b4))();
    *(undefined4 *)(*(int *)(puVar6 + 0x3fdd4) + 0x6630) = *puVar4;
  }
  return;
}



void FUN_00016288(undefined4 param_1,int *param_2)

{
  uint uVar1;
  undefined4 uVar2;
  int iVar3;
  undefined4 *puVar4;
  int iVar5;
  int in_t9;
  code *pcVar6;
  
  uVar1 = xstrtoimax(param_1,0,10,param_2,*(int *)(__libc_csu_init + in_t9) + 0x53c8);
  if ((uVar1 < 2) && (-1 < *param_2)) {
    return;
  }
  uVar2 = (**(code **)(strcpy + in_t9 + 4))(0,*(int *)(__libc_csu_init + in_t9) + 0x80c,5);
  iVar5 = 0;
  pcVar6 = *(code **)(in_t9 + 0x401c8);
  (*pcVar6)(2,0,*(int *)(__libc_csu_init + in_t9) + 0x82c,param_1,uVar2);
  iVar3 = (**(code **)(pcVar6 + 0x40174))();
  if (iVar5 != iVar3) {
    puVar4 = (undefined4 *)(**(code **)(pcVar6 + 0x400b4))();
    *(undefined4 *)(*(int *)(pcVar6 + 0x3fdd4) + 0x6630) = *puVar4;
  }
  return;
}


lui gp,0x4
addiu gp,gp,0x7e58
addu gp,gp,t9
lw v0,-0x7fc8(gp)
addiu sp,sp,-0x30
lw t9,-0x7fb4(gp)
li a2,0xa
addiu v0,v0,0x53c8
sw s0,0x24(sp)
or s0,a1,zero
sw gp,0x18(sp)
or a1,zero,zero
sw s1,0x28(sp)
sw ra,0x2c(sp)
or a3,s0,zero
sw v0,0x10(sp)
bal 0x00034a00
_or s1,a0,zero
sltiu v0,v0,0x2
beq v0,zero,0x000162f8
_lw gp,0x18(sp)
lw v0,0x0(s0)
bltz v0,0x000162f8
_lw ra,0x2c(sp)
lw s1,0x28(sp)
lw s0,0x24(sp)
jr ra
_addiu sp,sp,0x30
lw a1,-0x7fc8(gp)
li a2,0x5
lw t9,-0x7c44(gp)
or a0,zero,zero
jalr t9
_addiu a1,a1,0x80c
or a1,zero,zero
lw gp,0x18(sp)
li a0,0x2
or a3,s1,zero
sw v0,0x10(sp)
lw a2,-0x7fc8(gp)
lw t9,-0x7c90(gp)
jalr t9
_addiu a2,a2,0x82c
(translation_unit "void FUN_00016288(undefined4 param_1,int *param_2)\n\n{\n  uint uVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  int in_t9;\n  code *pcVar6;\n  \n  uVar1 = xstrtoimax(param_1,0,10,param_2,*(int *)(__libc_csu_init + in_t9) + 0x53c8);\n  if ((uVar1 < 2) && (-1 < *param_2)) {\n    return;\n  }\n  uVar2 = (**(code **)(strcpy + in_t9 + 4))(0,*(int *)(__libc_csu_init + in_t9) + 0x80c,5);\n  iVar5 = 0;\n  pcVar6 = *(code **)(in_t9 + 0x401c8);\n  (*pcVar6)(2,0,*(int *)(__libc_csu_init + in_t9) + 0x82c,param_1,uVar2);\n  iVar3 = (**(code **)(pcVar6 + 0x40174))();\n  if (iVar5 != iVar3) {\n    puVar4 = (undefined4 *)(**(code **)(pcVar6 + 0x400b4))();\n    *(undefined4 *)(*(int *)(pcVar6 + 0x3fdd4) + 0x6630) = *puVar4;\n  }\n  return;\n}\n\n" (function_definition "void FUN_00016288(undefined4 param_1,int *param_2)\n\n{\n  uint uVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  int in_t9;\n  code *pcVar6;\n  \n  uVar1 = xstrtoimax(param_1,0,10,param_2,*(int *)(__libc_csu_init + in_t9) + 0x53c8);\n  if ((uVar1 < 2) && (-1 < *param_2)) {\n    return;\n  }\n  uVar2 = (**(code **)(strcpy + in_t9 + 4))(0,*(int *)(__libc_csu_init + in_t9) + 0x80c,5);\n  iVar5 = 0;\n  pcVar6 = *(code **)(in_t9 + 0x401c8);\n  (*pcVar6)(2,0,*(int *)(__libc_csu_init + in_t9) + 0x82c,param_1,uVar2);\n  iVar3 = (**(code **)(pcVar6 + 0x40174))();\n  if (iVar5 != iVar3) {\n    puVar4 = (undefined4 *)(**(code **)(pcVar6 + 0x400b4))();\n    *(undefined4 *)(*(int *)(pcVar6 + 0x3fdd4) + 0x6630) = *puVar4;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00016288(undefined4 param_1,int *param_2)" identifier (parameter_list "(undefined4 param_1,int *param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  int in_t9;\n  code *pcVar6;\n  \n  uVar1 = xstrtoimax(param_1,0,10,param_2,*(int *)(__libc_csu_init + in_t9) + 0x53c8);\n  if ((uVar1 < 2) && (-1 < *param_2)) {\n    return;\n  }\n  uVar2 = (**(code **)(strcpy + in_t9 + 4))(0,*(int *)(__libc_csu_init + in_t9) + 0x80c,5);\n  iVar5 = 0;\n  pcVar6 = *(code **)(in_t9 + 0x401c8);\n  (*pcVar6)(2,0,*(int *)(__libc_csu_init + in_t9) + 0x82c,param_1,uVar2);\n  iVar3 = (**(code **)(pcVar6 + 0x40174))();\n  if (iVar5 != iVar3) {\n    puVar4 = (undefined4 *)(**(code **)(pcVar6 + 0x400b4))();\n    *(undefined4 *)(*(int *)(pcVar6 + 0x3fdd4) + 0x6630) = *puVar4;\n  }\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int in_t9;" primitive_type identifier ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (expression_statement "uVar1 = xstrtoimax(param_1,0,10,param_2,*(int *)(__libc_csu_init + in_t9) + 0x53c8);" (assignment_expression "uVar1 = xstrtoimax(param_1,0,10,param_2,*(int *)(__libc_csu_init + in_t9) + 0x53c8)" identifier = (call_expression "xstrtoimax(param_1,0,10,param_2,*(int *)(__libc_csu_init + in_t9) + 0x53c8)" identifier (argument_list "(param_1,0,10,param_2,*(int *)(__libc_csu_init + in_t9) + 0x53c8)" ( identifier , number_literal , number_literal , identifier , (binary_expression "*(int *)(__libc_csu_init + in_t9) + 0x53c8" (pointer_expression "*(int *)(__libc_csu_init + in_t9)" * (cast_expression "(int *)(__libc_csu_init + in_t9)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__libc_csu_init + in_t9)" ( (binary_expression "__libc_csu_init + in_t9" identifier + identifier) )))) + number_literal) )))) ;) (if_statement "if ((uVar1 < 2) && (-1 < *param_2)) {\n    return;\n  }" if (parenthesized_expression "((uVar1 < 2) && (-1 < *param_2))" ( (binary_expression "(uVar1 < 2) && (-1 < *param_2)" (parenthesized_expression "(uVar1 < 2)" ( (binary_expression "uVar1 < 2" identifier < number_literal) )) && (parenthesized_expression "(-1 < *param_2)" ( (binary_expression "-1 < *param_2" number_literal < (pointer_expression "*param_2" * identifier)) ))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar2 = (**(code **)(strcpy + in_t9 + 4))(0,*(int *)(__libc_csu_init + in_t9) + 0x80c,5);" (assignment_expression "uVar2 = (**(code **)(strcpy + in_t9 + 4))(0,*(int *)(__libc_csu_init + in_t9) + 0x80c,5)" identifier = (call_expression "(**(code **)(strcpy + in_t9 + 4))(0,*(int *)(__libc_csu_init + in_t9) + 0x80c,5)" (parenthesized_expression "(**(code **)(strcpy + in_t9 + 4))" ( (pointer_expression "**(code **)(strcpy + in_t9 + 4)" * (pointer_expression "*(code **)(strcpy + in_t9 + 4)" * (cast_expression "(code **)(strcpy + in_t9 + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(strcpy + in_t9 + 4)" ( (binary_expression "strcpy + in_t9 + 4" (binary_expression "strcpy + in_t9" identifier + identifier) + number_literal) ))))) )) (argument_list "(0,*(int *)(__libc_csu_init + in_t9) + 0x80c,5)" ( number_literal , (binary_expression "*(int *)(__libc_csu_init + in_t9) + 0x80c" (pointer_expression "*(int *)(__libc_csu_init + in_t9)" * (cast_expression "(int *)(__libc_csu_init + in_t9)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__libc_csu_init + in_t9)" ( (binary_expression "__libc_csu_init + in_t9" identifier + identifier) )))) + number_literal) , number_literal )))) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "pcVar6 = *(code **)(in_t9 + 0x401c8);" (assignment_expression "pcVar6 = *(code **)(in_t9 + 0x401c8)" identifier = (pointer_expression "*(code **)(in_t9 + 0x401c8)" * (cast_expression "(code **)(in_t9 + 0x401c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x401c8)" ( (binary_expression "in_t9 + 0x401c8" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar6)(2,0,*(int *)(__libc_csu_init + in_t9) + 0x82c,param_1,uVar2);" (call_expression "(*pcVar6)(2,0,*(int *)(__libc_csu_init + in_t9) + 0x82c,param_1,uVar2)" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "(2,0,*(int *)(__libc_csu_init + in_t9) + 0x82c,param_1,uVar2)" ( number_literal , number_literal , (binary_expression "*(int *)(__libc_csu_init + in_t9) + 0x82c" (pointer_expression "*(int *)(__libc_csu_init + in_t9)" * (cast_expression "(int *)(__libc_csu_init + in_t9)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__libc_csu_init + in_t9)" ( (binary_expression "__libc_csu_init + in_t9" identifier + identifier) )))) + number_literal) , identifier , identifier ))) ;) (expression_statement "iVar3 = (**(code **)(pcVar6 + 0x40174))();" (assignment_expression "iVar3 = (**(code **)(pcVar6 + 0x40174))()" identifier = (call_expression "(**(code **)(pcVar6 + 0x40174))()" (parenthesized_expression "(**(code **)(pcVar6 + 0x40174))" ( (pointer_expression "**(code **)(pcVar6 + 0x40174)" * (pointer_expression "*(code **)(pcVar6 + 0x40174)" * (cast_expression "(code **)(pcVar6 + 0x40174)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x40174)" ( (binary_expression "pcVar6 + 0x40174" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar5 != iVar3) {\n    puVar4 = (undefined4 *)(**(code **)(pcVar6 + 0x400b4))();\n    *(undefined4 *)(*(int *)(pcVar6 + 0x3fdd4) + 0x6630) = *puVar4;\n  }" if (parenthesized_expression "(iVar5 != iVar3)" ( (binary_expression "iVar5 != iVar3" identifier != identifier) )) (compound_statement "{\n    puVar4 = (undefined4 *)(**(code **)(pcVar6 + 0x400b4))();\n    *(undefined4 *)(*(int *)(pcVar6 + 0x3fdd4) + 0x6630) = *puVar4;\n  }" { (expression_statement "puVar4 = (undefined4 *)(**(code **)(pcVar6 + 0x400b4))();" (assignment_expression "puVar4 = (undefined4 *)(**(code **)(pcVar6 + 0x400b4))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar6 + 0x400b4))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar6 + 0x400b4))()" (parenthesized_expression "(**(code **)(pcVar6 + 0x400b4))" ( (pointer_expression "**(code **)(pcVar6 + 0x400b4)" * (pointer_expression "*(code **)(pcVar6 + 0x400b4)" * (cast_expression "(code **)(pcVar6 + 0x400b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x400b4)" ( (binary_expression "pcVar6 + 0x400b4" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "*(undefined4 *)(*(int *)(pcVar6 + 0x3fdd4) + 0x6630) = *puVar4;" (assignment_expression "*(undefined4 *)(*(int *)(pcVar6 + 0x3fdd4) + 0x6630) = *puVar4" (pointer_expression "*(undefined4 *)(*(int *)(pcVar6 + 0x3fdd4) + 0x6630)" * (cast_expression "(undefined4 *)(*(int *)(pcVar6 + 0x3fdd4) + 0x6630)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar6 + 0x3fdd4) + 0x6630)" ( (binary_expression "*(int *)(pcVar6 + 0x3fdd4) + 0x6630" (pointer_expression "*(int *)(pcVar6 + 0x3fdd4)" * (cast_expression "(int *)(pcVar6 + 0x3fdd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x3fdd4)" ( (binary_expression "pcVar6 + 0x3fdd4" identifier + number_literal) )))) + number_literal) )))) = (pointer_expression "*puVar4" * identifier)) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void context_length_arg(char *str,intmax_t *out)\n\n{\n  strtol_error sVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  undefined *puVar6;\n  \n  sVar1 = xstrtoimax(str,(char **)0x0,10,out,PTR_wcrtomb_00056118 + 0x53c8);\n  if ((sVar1 < LONGINT_INVALID_SUFFIX_CHAR) && (-1 < *(int *)out)) {\n    return;\n  }\n  uVar2 = (*(code *)PTR_dcgettext_0005649c)(0,PTR_wcrtomb_00056118 + 0x80c,5);\n  iVar5 = 0;\n  puVar6 = PTR_error_00056450;\n  (*(code *)PTR_error_00056450)(2,0,PTR_wcrtomb_00056118 + 0x82c,str,uVar2);\n  iVar3 = (**(code **)(puVar6 + 0x40174))();\n  if (iVar5 != iVar3) {\n    puVar4 = (undefined4 *)(**(code **)(puVar6 + 0x400b4))();\n    *(undefined4 *)(*(int *)(puVar6 + 0x3fdd4) + 0x6630) = *puVar4;\n  }\n  return;\n}\n\n" (function_definition "void context_length_arg(char *str,intmax_t *out)\n\n{\n  strtol_error sVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  undefined *puVar6;\n  \n  sVar1 = xstrtoimax(str,(char **)0x0,10,out,PTR_wcrtomb_00056118 + 0x53c8);\n  if ((sVar1 < LONGINT_INVALID_SUFFIX_CHAR) && (-1 < *(int *)out)) {\n    return;\n  }\n  uVar2 = (*(code *)PTR_dcgettext_0005649c)(0,PTR_wcrtomb_00056118 + 0x80c,5);\n  iVar5 = 0;\n  puVar6 = PTR_error_00056450;\n  (*(code *)PTR_error_00056450)(2,0,PTR_wcrtomb_00056118 + 0x82c,str,uVar2);\n  iVar3 = (**(code **)(puVar6 + 0x40174))();\n  if (iVar5 != iVar3) {\n    puVar4 = (undefined4 *)(**(code **)(puVar6 + 0x400b4))();\n    *(undefined4 *)(*(int *)(puVar6 + 0x3fdd4) + 0x6630) = *puVar4;\n  }\n  return;\n}" primitive_type (function_declarator "context_length_arg(char *str,intmax_t *out)" identifier (parameter_list "(char *str,intmax_t *out)" ( (parameter_declaration "char *str" primitive_type (pointer_declarator "*str" * identifier)) , (parameter_declaration "intmax_t *out" type_identifier (pointer_declarator "*out" * identifier)) ))) (compound_statement "{\n  strtol_error sVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  undefined *puVar6;\n  \n  sVar1 = xstrtoimax(str,(char **)0x0,10,out,PTR_wcrtomb_00056118 + 0x53c8);\n  if ((sVar1 < LONGINT_INVALID_SUFFIX_CHAR) && (-1 < *(int *)out)) {\n    return;\n  }\n  uVar2 = (*(code *)PTR_dcgettext_0005649c)(0,PTR_wcrtomb_00056118 + 0x80c,5);\n  iVar5 = 0;\n  puVar6 = PTR_error_00056450;\n  (*(code *)PTR_error_00056450)(2,0,PTR_wcrtomb_00056118 + 0x82c,str,uVar2);\n  iVar3 = (**(code **)(puVar6 + 0x40174))();\n  if (iVar5 != iVar3) {\n    puVar4 = (undefined4 *)(**(code **)(puVar6 + 0x400b4))();\n    *(undefined4 *)(*(int *)(puVar6 + 0x3fdd4) + 0x6630) = *puVar4;\n  }\n  return;\n}" { (declaration "strtol_error sVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (expression_statement "sVar1 = xstrtoimax(str,(char **)0x0,10,out,PTR_wcrtomb_00056118 + 0x53c8);" (assignment_expression "sVar1 = xstrtoimax(str,(char **)0x0,10,out,PTR_wcrtomb_00056118 + 0x53c8)" identifier = (call_expression "xstrtoimax(str,(char **)0x0,10,out,PTR_wcrtomb_00056118 + 0x53c8)" identifier (argument_list "(str,(char **)0x0,10,out,PTR_wcrtomb_00056118 + 0x53c8)" ( identifier , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , number_literal , identifier , (binary_expression "PTR_wcrtomb_00056118 + 0x53c8" identifier + number_literal) )))) ;) (if_statement "if ((sVar1 < LONGINT_INVALID_SUFFIX_CHAR) && (-1 < *(int *)out)) {\n    return;\n  }" if (parenthesized_expression "((sVar1 < LONGINT_INVALID_SUFFIX_CHAR) && (-1 < *(int *)out))" ( (binary_expression "(sVar1 < LONGINT_INVALID_SUFFIX_CHAR) && (-1 < *(int *)out)" (parenthesized_expression "(sVar1 < LONGINT_INVALID_SUFFIX_CHAR)" ( (binary_expression "sVar1 < LONGINT_INVALID_SUFFIX_CHAR" identifier < identifier) )) && (parenthesized_expression "(-1 < *(int *)out)" ( (binary_expression "-1 < *(int *)out" number_literal < (pointer_expression "*(int *)out" * (cast_expression "(int *)out" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar2 = (*(code *)PTR_dcgettext_0005649c)(0,PTR_wcrtomb_00056118 + 0x80c,5);" (assignment_expression "uVar2 = (*(code *)PTR_dcgettext_0005649c)(0,PTR_wcrtomb_00056118 + 0x80c,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_0005649c)(0,PTR_wcrtomb_00056118 + 0x80c,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_0005649c)" ( (pointer_expression "*(code *)PTR_dcgettext_0005649c" * (cast_expression "(code *)PTR_dcgettext_0005649c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_wcrtomb_00056118 + 0x80c,5)" ( number_literal , (binary_expression "PTR_wcrtomb_00056118 + 0x80c" identifier + number_literal) , number_literal )))) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "puVar6 = PTR_error_00056450;" (assignment_expression "puVar6 = PTR_error_00056450" identifier = identifier) ;) (expression_statement "(*(code *)PTR_error_00056450)(2,0,PTR_wcrtomb_00056118 + 0x82c,str,uVar2);" (call_expression "(*(code *)PTR_error_00056450)(2,0,PTR_wcrtomb_00056118 + 0x82c,str,uVar2)" (parenthesized_expression "(*(code *)PTR_error_00056450)" ( (pointer_expression "*(code *)PTR_error_00056450" * (cast_expression "(code *)PTR_error_00056450" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(2,0,PTR_wcrtomb_00056118 + 0x82c,str,uVar2)" ( number_literal , number_literal , (binary_expression "PTR_wcrtomb_00056118 + 0x82c" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "iVar3 = (**(code **)(puVar6 + 0x40174))();" (assignment_expression "iVar3 = (**(code **)(puVar6 + 0x40174))()" identifier = (call_expression "(**(code **)(puVar6 + 0x40174))()" (parenthesized_expression "(**(code **)(puVar6 + 0x40174))" ( (pointer_expression "**(code **)(puVar6 + 0x40174)" * (pointer_expression "*(code **)(puVar6 + 0x40174)" * (cast_expression "(code **)(puVar6 + 0x40174)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + 0x40174)" ( (binary_expression "puVar6 + 0x40174" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar5 != iVar3) {\n    puVar4 = (undefined4 *)(**(code **)(puVar6 + 0x400b4))();\n    *(undefined4 *)(*(int *)(puVar6 + 0x3fdd4) + 0x6630) = *puVar4;\n  }" if (parenthesized_expression "(iVar5 != iVar3)" ( (binary_expression "iVar5 != iVar3" identifier != identifier) )) (compound_statement "{\n    puVar4 = (undefined4 *)(**(code **)(puVar6 + 0x400b4))();\n    *(undefined4 *)(*(int *)(puVar6 + 0x3fdd4) + 0x6630) = *puVar4;\n  }" { (expression_statement "puVar4 = (undefined4 *)(**(code **)(puVar6 + 0x400b4))();" (assignment_expression "puVar4 = (undefined4 *)(**(code **)(puVar6 + 0x400b4))()" identifier = (cast_expression "(undefined4 *)(**(code **)(puVar6 + 0x400b4))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar6 + 0x400b4))()" (parenthesized_expression "(**(code **)(puVar6 + 0x400b4))" ( (pointer_expression "**(code **)(puVar6 + 0x400b4)" * (pointer_expression "*(code **)(puVar6 + 0x400b4)" * (cast_expression "(code **)(puVar6 + 0x400b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + 0x400b4)" ( (binary_expression "puVar6 + 0x400b4" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "*(undefined4 *)(*(int *)(puVar6 + 0x3fdd4) + 0x6630) = *puVar4;" (assignment_expression "*(undefined4 *)(*(int *)(puVar6 + 0x3fdd4) + 0x6630) = *puVar4" (pointer_expression "*(undefined4 *)(*(int *)(puVar6 + 0x3fdd4) + 0x6630)" * (cast_expression "(undefined4 *)(*(int *)(puVar6 + 0x3fdd4) + 0x6630)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar6 + 0x3fdd4) + 0x6630)" ( (binary_expression "*(int *)(puVar6 + 0x3fdd4) + 0x6630" (pointer_expression "*(int *)(puVar6 + 0x3fdd4)" * (cast_expression "(int *)(puVar6 + 0x3fdd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0x3fdd4)" ( (binary_expression "puVar6 + 0x3fdd4" identifier + number_literal) )))) + number_literal) )))) = (pointer_expression "*puVar4" * identifier)) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00016288(undefined4 param_1,int *param_2)\n\n{\n  uint uVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  int in_t9;\n  code *pcVar6;\n  \n  uVar1 = xstrtoimax(param_1,0,10,param_2,*(int *)(__libc_csu_init + in_t9) + 0x53c8);\n  if ((uVar1 < 2) && (-1 < *param_2)) {\n    return;\n  }\n  uVar2 = (**(code **)(strcpy + in_t9 + 4))(0,*(int *)(__libc_csu_init + in_t9) + 0x80c,5);\n  iVar5 = 0;\n  pcVar6 = *(code **)(in_t9 + 0x401c8);\n  (*pcVar6)(2,0,*(int *)(__libc_csu_init + in_t9) + 0x82c,param_1,uVar2);\n  iVar3 = (**(code **)(pcVar6 + 0x40174))();\n  if (iVar5 != iVar3) {\n    puVar4 = (undefined4 *)(**(code **)(pcVar6 + 0x400b4))();\n    *(undefined4 *)(*(int *)(pcVar6 + 0x3fdd4) + 0x6630) = *puVar4;\n  }\n  return;\n}\n\n" (function_definition "void FUN_00016288(undefined4 param_1,int *param_2)\n\n{\n  uint uVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  int in_t9;\n  code *pcVar6;\n  \n  uVar1 = xstrtoimax(param_1,0,10,param_2,*(int *)(__libc_csu_init + in_t9) + 0x53c8);\n  if ((uVar1 < 2) && (-1 < *param_2)) {\n    return;\n  }\n  uVar2 = (**(code **)(strcpy + in_t9 + 4))(0,*(int *)(__libc_csu_init + in_t9) + 0x80c,5);\n  iVar5 = 0;\n  pcVar6 = *(code **)(in_t9 + 0x401c8);\n  (*pcVar6)(2,0,*(int *)(__libc_csu_init + in_t9) + 0x82c,param_1,uVar2);\n  iVar3 = (**(code **)(pcVar6 + 0x40174))();\n  if (iVar5 != iVar3) {\n    puVar4 = (undefined4 *)(**(code **)(pcVar6 + 0x400b4))();\n    *(undefined4 *)(*(int *)(pcVar6 + 0x3fdd4) + 0x6630) = *puVar4;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00016288(undefined4 param_1,int *param_2)" identifier (parameter_list "(undefined4 param_1,int *param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  int in_t9;\n  code *pcVar6;\n  \n  uVar1 = xstrtoimax(param_1,0,10,param_2,*(int *)(__libc_csu_init + in_t9) + 0x53c8);\n  if ((uVar1 < 2) && (-1 < *param_2)) {\n    return;\n  }\n  uVar2 = (**(code **)(strcpy + in_t9 + 4))(0,*(int *)(__libc_csu_init + in_t9) + 0x80c,5);\n  iVar5 = 0;\n  pcVar6 = *(code **)(in_t9 + 0x401c8);\n  (*pcVar6)(2,0,*(int *)(__libc_csu_init + in_t9) + 0x82c,param_1,uVar2);\n  iVar3 = (**(code **)(pcVar6 + 0x40174))();\n  if (iVar5 != iVar3) {\n    puVar4 = (undefined4 *)(**(code **)(pcVar6 + 0x400b4))();\n    *(undefined4 *)(*(int *)(pcVar6 + 0x3fdd4) + 0x6630) = *puVar4;\n  }\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int in_t9;" primitive_type identifier ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (expression_statement "uVar1 = xstrtoimax(param_1,0,10,param_2,*(int *)(__libc_csu_init + in_t9) + 0x53c8);" (assignment_expression "uVar1 = xstrtoimax(param_1,0,10,param_2,*(int *)(__libc_csu_init + in_t9) + 0x53c8)" identifier = (call_expression "xstrtoimax(param_1,0,10,param_2,*(int *)(__libc_csu_init + in_t9) + 0x53c8)" identifier (argument_list "(param_1,0,10,param_2,*(int *)(__libc_csu_init + in_t9) + 0x53c8)" ( identifier , number_literal , number_literal , identifier , (binary_expression "*(int *)(__libc_csu_init + in_t9) + 0x53c8" (pointer_expression "*(int *)(__libc_csu_init + in_t9)" * (cast_expression "(int *)(__libc_csu_init + in_t9)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__libc_csu_init + in_t9)" ( (binary_expression "__libc_csu_init + in_t9" identifier + identifier) )))) + number_literal) )))) ;) (if_statement "if ((uVar1 < 2) && (-1 < *param_2)) {\n    return;\n  }" if (parenthesized_expression "((uVar1 < 2) && (-1 < *param_2))" ( (binary_expression "(uVar1 < 2) && (-1 < *param_2)" (parenthesized_expression "(uVar1 < 2)" ( (binary_expression "uVar1 < 2" identifier < number_literal) )) && (parenthesized_expression "(-1 < *param_2)" ( (binary_expression "-1 < *param_2" number_literal < (pointer_expression "*param_2" * identifier)) ))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar2 = (**(code **)(strcpy + in_t9 + 4))(0,*(int *)(__libc_csu_init + in_t9) + 0x80c,5);" (assignment_expression "uVar2 = (**(code **)(strcpy + in_t9 + 4))(0,*(int *)(__libc_csu_init + in_t9) + 0x80c,5)" identifier = (call_expression "(**(code **)(strcpy + in_t9 + 4))(0,*(int *)(__libc_csu_init + in_t9) + 0x80c,5)" (parenthesized_expression "(**(code **)(strcpy + in_t9 + 4))" ( (pointer_expression "**(code **)(strcpy + in_t9 + 4)" * (pointer_expression "*(code **)(strcpy + in_t9 + 4)" * (cast_expression "(code **)(strcpy + in_t9 + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(strcpy + in_t9 + 4)" ( (binary_expression "strcpy + in_t9 + 4" (binary_expression "strcpy + in_t9" identifier + identifier) + number_literal) ))))) )) (argument_list "(0,*(int *)(__libc_csu_init + in_t9) + 0x80c,5)" ( number_literal , (binary_expression "*(int *)(__libc_csu_init + in_t9) + 0x80c" (pointer_expression "*(int *)(__libc_csu_init + in_t9)" * (cast_expression "(int *)(__libc_csu_init + in_t9)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__libc_csu_init + in_t9)" ( (binary_expression "__libc_csu_init + in_t9" identifier + identifier) )))) + number_literal) , number_literal )))) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "pcVar6 = *(code **)(in_t9 + 0x401c8);" (assignment_expression "pcVar6 = *(code **)(in_t9 + 0x401c8)" identifier = (pointer_expression "*(code **)(in_t9 + 0x401c8)" * (cast_expression "(code **)(in_t9 + 0x401c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x401c8)" ( (binary_expression "in_t9 + 0x401c8" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar6)(2,0,*(int *)(__libc_csu_init + in_t9) + 0x82c,param_1,uVar2);" (call_expression "(*pcVar6)(2,0,*(int *)(__libc_csu_init + in_t9) + 0x82c,param_1,uVar2)" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "(2,0,*(int *)(__libc_csu_init + in_t9) + 0x82c,param_1,uVar2)" ( number_literal , number_literal , (binary_expression "*(int *)(__libc_csu_init + in_t9) + 0x82c" (pointer_expression "*(int *)(__libc_csu_init + in_t9)" * (cast_expression "(int *)(__libc_csu_init + in_t9)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__libc_csu_init + in_t9)" ( (binary_expression "__libc_csu_init + in_t9" identifier + identifier) )))) + number_literal) , identifier , identifier ))) ;) (expression_statement "iVar3 = (**(code **)(pcVar6 + 0x40174))();" (assignment_expression "iVar3 = (**(code **)(pcVar6 + 0x40174))()" identifier = (call_expression "(**(code **)(pcVar6 + 0x40174))()" (parenthesized_expression "(**(code **)(pcVar6 + 0x40174))" ( (pointer_expression "**(code **)(pcVar6 + 0x40174)" * (pointer_expression "*(code **)(pcVar6 + 0x40174)" * (cast_expression "(code **)(pcVar6 + 0x40174)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x40174)" ( (binary_expression "pcVar6 + 0x40174" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar5 != iVar3) {\n    puVar4 = (undefined4 *)(**(code **)(pcVar6 + 0x400b4))();\n    *(undefined4 *)(*(int *)(pcVar6 + 0x3fdd4) + 0x6630) = *puVar4;\n  }" if (parenthesized_expression "(iVar5 != iVar3)" ( (binary_expression "iVar5 != iVar3" identifier != identifier) )) (compound_statement "{\n    puVar4 = (undefined4 *)(**(code **)(pcVar6 + 0x400b4))();\n    *(undefined4 *)(*(int *)(pcVar6 + 0x3fdd4) + 0x6630) = *puVar4;\n  }" { (expression_statement "puVar4 = (undefined4 *)(**(code **)(pcVar6 + 0x400b4))();" (assignment_expression "puVar4 = (undefined4 *)(**(code **)(pcVar6 + 0x400b4))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar6 + 0x400b4))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar6 + 0x400b4))()" (parenthesized_expression "(**(code **)(pcVar6 + 0x400b4))" ( (pointer_expression "**(code **)(pcVar6 + 0x400b4)" * (pointer_expression "*(code **)(pcVar6 + 0x400b4)" * (cast_expression "(code **)(pcVar6 + 0x400b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x400b4)" ( (binary_expression "pcVar6 + 0x400b4" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "*(undefined4 *)(*(int *)(pcVar6 + 0x3fdd4) + 0x6630) = *puVar4;" (assignment_expression "*(undefined4 *)(*(int *)(pcVar6 + 0x3fdd4) + 0x6630) = *puVar4" (pointer_expression "*(undefined4 *)(*(int *)(pcVar6 + 0x3fdd4) + 0x6630)" * (cast_expression "(undefined4 *)(*(int *)(pcVar6 + 0x3fdd4) + 0x6630)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar6 + 0x3fdd4) + 0x6630)" ( (binary_expression "*(int *)(pcVar6 + 0x3fdd4) + 0x6630" (pointer_expression "*(int *)(pcVar6 + 0x3fdd4)" * (cast_expression "(int *)(pcVar6 + 0x3fdd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x3fdd4)" ( (binary_expression "pcVar6 + 0x3fdd4" identifier + number_literal) )))) + number_literal) )))) = (pointer_expression "*puVar4" * 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)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) && (parenthesized_expression ( (binary_expression LIT < (pointer_expression * IDENT)) ))) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) ))))) )) (argument_list ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) + LIT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) + LIT) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = (pointer_expression * IDENT)) ;) })) (return_statement return ;) })))
(function_definition "void FUN_00016288(undefined4 param_1,int *param_2)\n\n{\n  uint uVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  int in_t9;\n  code *pcVar6;\n  \n  uVar1 = xstrtoimax(param_1,0,10,param_2,*(int *)(__libc_csu_init + in_t9) + 0x53c8);\n  if ((uVar1 < 2) && (-1 < *param_2)) {\n    return;\n  }\n  uVar2 = (**(code **)(strcpy + in_t9 + 4))(0,*(int *)(__libc_csu_init + in_t9) + 0x80c,5);\n  iVar5 = 0;\n  pcVar6 = *(code **)(in_t9 + 0x401c8);\n  (*pcVar6)(2,0,*(int *)(__libc_csu_init + in_t9) + 0x82c,param_1,uVar2);\n  iVar3 = (**(code **)(pcVar6 + 0x40174))();\n  if (iVar5 != iVar3) {\n    puVar4 = (undefined4 *)(**(code **)(pcVar6 + 0x400b4))();\n    *(undefined4 *)(*(int *)(pcVar6 + 0x3fdd4) + 0x6630) = *puVar4;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00016288(undefined4 param_1,int *param_2)" (identifier "FUN_00016288") (parameter_list "(undefined4 param_1,int *param_2)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  uint uVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  int in_t9;\n  code *pcVar6;\n  \n  uVar1 = xstrtoimax(param_1,0,10,param_2,*(int *)(__libc_csu_init + in_t9) + 0x53c8);\n  if ((uVar1 < 2) && (-1 < *param_2)) {\n    return;\n  }\n  uVar2 = (**(code **)(strcpy + in_t9 + 4))(0,*(int *)(__libc_csu_init + in_t9) + 0x80c,5);\n  iVar5 = 0;\n  pcVar6 = *(code **)(in_t9 + 0x401c8);\n  (*pcVar6)(2,0,*(int *)(__libc_csu_init + in_t9) + 0x82c,param_1,uVar2);\n  iVar3 = (**(code **)(pcVar6 + 0x40174))();\n  if (iVar5 != iVar3) {\n    puVar4 = (undefined4 *)(**(code **)(pcVar6 + 0x400b4))();\n    *(undefined4 *)(*(int *)(pcVar6 + 0x3fdd4) + 0x6630) = *puVar4;\n  }\n  return;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int in_t9;" (primitive_type "int") (identifier "in_t9") (; ";")) (declaration "code *pcVar6;" (type_identifier "code") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (expression_statement "uVar1 = xstrtoimax(param_1,0,10,param_2,*(int *)(__libc_csu_init + in_t9) + 0x53c8);" (assignment_expression "uVar1 = xstrtoimax(param_1,0,10,param_2,*(int *)(__libc_csu_init + in_t9) + 0x53c8)" (identifier "uVar1") (= "=") (call_expression "xstrtoimax(param_1,0,10,param_2,*(int *)(__libc_csu_init + in_t9) + 0x53c8)" (identifier "xstrtoimax") (argument_list "(param_1,0,10,param_2,*(int *)(__libc_csu_init + in_t9) + 0x53c8)" (( "(") (identifier "param_1") (, ",") (number_literal "0") (, ",") (number_literal "10") (, ",") (identifier "param_2") (, ",") (binary_expression "*(int *)(__libc_csu_init + in_t9) + 0x53c8" (pointer_expression "*(int *)(__libc_csu_init + in_t9)" (* "*") (cast_expression "(int *)(__libc_csu_init + in_t9)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(__libc_csu_init + in_t9)" (( "(") (binary_expression "__libc_csu_init + in_t9" (identifier "__libc_csu_init") (+ "+") (identifier "in_t9")) () ")")))) (+ "+") (number_literal "0x53c8")) () ")")))) (; ";")) (if_statement "if ((uVar1 < 2) && (-1 < *param_2)) {\n    return;\n  }" (if "if") (parenthesized_expression "((uVar1 < 2) && (-1 < *param_2))" (( "(") (binary_expression "(uVar1 < 2) && (-1 < *param_2)" (parenthesized_expression "(uVar1 < 2)" (( "(") (binary_expression "uVar1 < 2" (identifier "uVar1") (< "<") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(-1 < *param_2)" (( "(") (binary_expression "-1 < *param_2" (number_literal "-1") (< "<") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) () ")"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar2 = (**(code **)(strcpy + in_t9 + 4))(0,*(int *)(__libc_csu_init + in_t9) + 0x80c,5);" (assignment_expression "uVar2 = (**(code **)(strcpy + in_t9 + 4))(0,*(int *)(__libc_csu_init + in_t9) + 0x80c,5)" (identifier "uVar2") (= "=") (call_expression "(**(code **)(strcpy + in_t9 + 4))(0,*(int *)(__libc_csu_init + in_t9) + 0x80c,5)" (parenthesized_expression "(**(code **)(strcpy + in_t9 + 4))" (( "(") (pointer_expression "**(code **)(strcpy + in_t9 + 4)" (* "*") (pointer_expression "*(code **)(strcpy + in_t9 + 4)" (* "*") (cast_expression "(code **)(strcpy + in_t9 + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(strcpy + in_t9 + 4)" (( "(") (binary_expression "strcpy + in_t9 + 4" (binary_expression "strcpy + in_t9" (identifier "strcpy") (+ "+") (identifier "in_t9")) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "(0,*(int *)(__libc_csu_init + in_t9) + 0x80c,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(__libc_csu_init + in_t9) + 0x80c" (pointer_expression "*(int *)(__libc_csu_init + in_t9)" (* "*") (cast_expression "(int *)(__libc_csu_init + in_t9)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(__libc_csu_init + in_t9)" (( "(") (binary_expression "__libc_csu_init + in_t9" (identifier "__libc_csu_init") (+ "+") (identifier "in_t9")) () ")")))) (+ "+") (number_literal "0x80c")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar6 = *(code **)(in_t9 + 0x401c8);" (assignment_expression "pcVar6 = *(code **)(in_t9 + 0x401c8)" (identifier "pcVar6") (= "=") (pointer_expression "*(code **)(in_t9 + 0x401c8)" (* "*") (cast_expression "(code **)(in_t9 + 0x401c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(in_t9 + 0x401c8)" (( "(") (binary_expression "in_t9 + 0x401c8" (identifier "in_t9") (+ "+") (number_literal "0x401c8")) () ")"))))) (; ";")) (expression_statement "(*pcVar6)(2,0,*(int *)(__libc_csu_init + in_t9) + 0x82c,param_1,uVar2);" (call_expression "(*pcVar6)(2,0,*(int *)(__libc_csu_init + in_t9) + 0x82c,param_1,uVar2)" (parenthesized_expression "(*pcVar6)" (( "(") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) () ")")) (argument_list "(2,0,*(int *)(__libc_csu_init + in_t9) + 0x82c,param_1,uVar2)" (( "(") (number_literal "2") (, ",") (number_literal "0") (, ",") (binary_expression "*(int *)(__libc_csu_init + in_t9) + 0x82c" (pointer_expression "*(int *)(__libc_csu_init + in_t9)" (* "*") (cast_expression "(int *)(__libc_csu_init + in_t9)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(__libc_csu_init + in_t9)" (( "(") (binary_expression "__libc_csu_init + in_t9" (identifier "__libc_csu_init") (+ "+") (identifier "in_t9")) () ")")))) (+ "+") (number_literal "0x82c")) (, ",") (identifier "param_1") (, ",") (identifier "uVar2") () ")"))) (; ";")) (expression_statement "iVar3 = (**(code **)(pcVar6 + 0x40174))();" (assignment_expression "iVar3 = (**(code **)(pcVar6 + 0x40174))()" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar6 + 0x40174))()" (parenthesized_expression "(**(code **)(pcVar6 + 0x40174))" (( "(") (pointer_expression "**(code **)(pcVar6 + 0x40174)" (* "*") (pointer_expression "*(code **)(pcVar6 + 0x40174)" (* "*") (cast_expression "(code **)(pcVar6 + 0x40174)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x40174)" (( "(") (binary_expression "pcVar6 + 0x40174" (identifier "pcVar6") (+ "+") (number_literal "0x40174")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar5 != iVar3) {\n    puVar4 = (undefined4 *)(**(code **)(pcVar6 + 0x400b4))();\n    *(undefined4 *)(*(int *)(pcVar6 + 0x3fdd4) + 0x6630) = *puVar4;\n  }" (if "if") (parenthesized_expression "(iVar5 != iVar3)" (( "(") (binary_expression "iVar5 != iVar3" (identifier "iVar5") (!= "!=") (identifier "iVar3")) () ")")) (compound_statement "{\n    puVar4 = (undefined4 *)(**(code **)(pcVar6 + 0x400b4))();\n    *(undefined4 *)(*(int *)(pcVar6 + 0x3fdd4) + 0x6630) = *puVar4;\n  }" ({ "{") (expression_statement "puVar4 = (undefined4 *)(**(code **)(pcVar6 + 0x400b4))();" (assignment_expression "puVar4 = (undefined4 *)(**(code **)(pcVar6 + 0x400b4))()" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)(**(code **)(pcVar6 + 0x400b4))()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar6 + 0x400b4))()" (parenthesized_expression "(**(code **)(pcVar6 + 0x400b4))" (( "(") (pointer_expression "**(code **)(pcVar6 + 0x400b4)" (* "*") (pointer_expression "*(code **)(pcVar6 + 0x400b4)" (* "*") (cast_expression "(code **)(pcVar6 + 0x400b4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x400b4)" (( "(") (binary_expression "pcVar6 + 0x400b4" (identifier "pcVar6") (+ "+") (number_literal "0x400b4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(*(int *)(pcVar6 + 0x3fdd4) + 0x6630) = *puVar4;" (assignment_expression "*(undefined4 *)(*(int *)(pcVar6 + 0x3fdd4) + 0x6630) = *puVar4" (pointer_expression "*(undefined4 *)(*(int *)(pcVar6 + 0x3fdd4) + 0x6630)" (* "*") (cast_expression "(undefined4 *)(*(int *)(pcVar6 + 0x3fdd4) + 0x6630)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar6 + 0x3fdd4) + 0x6630)" (( "(") (binary_expression "*(int *)(pcVar6 + 0x3fdd4) + 0x6630" (pointer_expression "*(int *)(pcVar6 + 0x3fdd4)" (* "*") (cast_expression "(int *)(pcVar6 + 0x3fdd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 0x3fdd4)" (( "(") (binary_expression "pcVar6 + 0x3fdd4" (identifier "pcVar6") (+ "+") (number_literal "0x3fdd4")) () ")")))) (+ "+") (number_literal "0x6630")) () ")")))) (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (number_literal) right: (pointer_expression argument: (identifier)))))) consequence: (compound_statement (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))))))) arguments: (argument_list (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (number_literal)) (number_literal))))) (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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (number_literal) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (number_literal)) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (pointer_expression argument: (identifier)))))) (return_statement))))

void MASKED(undefined4 param_1,int *param_2)

{
  uint uVar1;
  undefined4 uVar2;
  int iVar3;
  undefined4 *puVar4;
  int iVar5;
  int in_t9;
  code *pcVar6;
  
  uVar1 = xstrtoimax(param_1,0,10,param_2,*(int *)(__libc_csu_init + in_t9) + 0x53c8);
  if ((uVar1 < 2) && (-1 < *param_2)) {
    return;
  }
  uVar2 = (**(code **)(strcpy + in_t9 + 4))(0,*(int *)(__libc_csu_init + in_t9) + 0x80c,5);
  iVar5 = 0;
  pcVar6 = *(code **)(in_t9 + 0x401c8);
  (*pcVar6)(2,0,*(int *)(__libc_csu_init + in_t9) + 0x82c,param_1,uVar2);
  iVar3 = (**(code **)(pcVar6 + 0x40174))();
  if (iVar5 != iVar3) {
    puVar4 = (undefined4 *)(**(code **)(pcVar6 + 0x400b4))();
    *(undefined4 *)(*(int *)(pcVar6 + 0x3fdd4) + 0x6630) = *puVar4;
  }
  return;
}

