
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

CURLcode Curl_pp_flushsend(pingpong *pp)

{
  CURLcode CVar1;
  undefined4 *puVar2;
  undefined *puVar3;
  time_t tStack_20;
  int iStack_1c;
  ssize_t written;
  undefined4 *puStack_14;
  
  puStack_14 = *(undefined4 **)PTR___stack_chk_guard_000b1fd4;
  CVar1 = (*(code *)PTR_Curl_write_000b12e8)
                    (pp->conn,pp->conn->sock[0],pp->sendthis + (pp->sendsize - pp->sendleft),
                     pp->sendleft,&written);
  if (CVar1 == CURLE_OK) {
    if (pp->sendleft == written) {
      (**(code **)PTR_Curl_cfree_000b1144)(pp->sendthis);
      pp->sendthis = (char *)0x0;
      pp->sendsize = 0;
      pp->sendleft = 0;
      (*(code *)PTR_Curl_now_000b1174)(&tStack_20);
      (pp->response).tv_sec = tStack_20;
      (pp->response).tv_usec = iStack_1c;
    }
    else {
      pp->sendleft = pp->sendleft - written;
    }
  }
  if (puStack_14 == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {
    return CVar1;
  }
  puVar2 = puStack_14;
  puVar3 = PTR___stack_chk_fail_000b1c48;
  (*(code *)PTR___stack_chk_fail_000b1c48)();
  (*(code *)**(undefined4 **)(puVar3 + 0x4cab4))(*puVar2);
  *puVar2 = 0;
  return CURLE_OK;
}



int FUN_00064590(int param_1)

{
  int iVar1;
  undefined4 *puVar2;
  undefined *puVar3;
  undefined4 local_20;
  undefined4 local_1c;
  int local_18;
  undefined4 *local_14;
  
  local_14 = *(undefined4 **)PTR___stack_chk_guard_000b1fd4;
  iVar1 = (*(code *)PTR_FUN_000b12e8)
                    (*(int *)(param_1 + 0x2c),*(undefined4 *)(*(int *)(param_1 + 0x2c) + 0x198),
                     *(int *)(param_1 + 0x14) +
                     (*(int *)(param_1 + 0x1c) - *(int *)(param_1 + 0x18)),*(int *)(param_1 + 0x18),
                     &local_18);
  if (iVar1 == 0) {
    if (*(int *)(param_1 + 0x18) == local_18) {
      (**(code **)PTR_PTR_free_000b1144)(*(undefined4 *)(param_1 + 0x14));
      *(undefined4 *)(param_1 + 0x14) = 0;
      *(undefined4 *)(param_1 + 0x1c) = 0;
      *(undefined4 *)(param_1 + 0x18) = 0;
      (*(code *)PTR_FUN_000b1174)(&local_20);
      *(undefined4 *)(param_1 + 0x20) = local_20;
      *(undefined4 *)(param_1 + 0x24) = local_1c;
    }
    else {
      *(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) - local_18;
    }
  }
  if (local_14 == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {
    return iVar1;
  }
  puVar2 = local_14;
  puVar3 = PTR___stack_chk_fail_000b1c48;
  (*(code *)PTR___stack_chk_fail_000b1c48)();
  (*(code *)**(undefined4 **)(puVar3 + 0x4cab4))(*puVar2);
  *puVar2 = 0;
  return 0;
}


lui gp,0x5
addiu gp,gp,0x4b80
addu gp,gp,t9
addiu sp,sp,-0x40
sw ra,0x3c(sp)
sw s1,0x38(sp)
sw s0,0x34(sp)
sw gp,0x18(sp)
or s0,a0,zero
lw v0,-0x713c(gp)
lw v0,0x0(v0)
sw v0,0x2c(sp)
lw a0,0x2c(a0)
lw a3,0x18(s0)
lw v0,0x1c(s0)
subu v0,v0,a3
lw a2,0x14(s0)
lw a1,0x198(a0)
addiu v1,sp,0x28
sw v1,0x10(sp)
addu a2,a2,v0
lw t9,-0x7e28(gp)
jalr t9
_nop
lw gp,0x18(sp)
bne v0,zero,0x00064610
_or s1,v0,zero
lw v0,0x18(s0)
lw v1,0x28(sp)
beq v0,v1,0x00064638
_subu v0,v0,v1
sw v0,0x18(s0)
or v0,s1,zero
lw a0,0x2c(sp)
lw v1,-0x713c(gp)
lw v1,0x0(v1)
bne a0,v1,0x00064684
_lw ra,0x3c(sp)
lw s1,0x38(sp)
lw s0,0x34(sp)
jr ra
_addiu sp,sp,0x40
lw v0,-0x7fcc(gp)
lw t9,0x0(v0)
lw a0,0x14(s0)
jalr t9
_nop
lw gp,0x18(sp)
sw zero,0x14(s0)
sw zero,0x1c(s0)
sw zero,0x18(s0)
addiu a0,sp,0x20
lw t9,-0x7f9c(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw v0,0x20(sp)
sw v0,0x20(s0)
lw v0,0x24(sp)
b 0x00064610
_sw v0,0x24(s0)
lw t9,-0x74c8(gp)
jalr t9
_nop
(translation_unit "int FUN_00064590(int param_1)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined *puVar3;\n  undefined4 local_20;\n  undefined4 local_1c;\n  int local_18;\n  undefined4 *local_14;\n  \n  local_14 = *(undefined4 **)PTR___stack_chk_guard_000b1fd4;\n  iVar1 = (*(code *)PTR_FUN_000b12e8)\n                    (*(int *)(param_1 + 0x2c),*(undefined4 *)(*(int *)(param_1 + 0x2c) + 0x198),\n                     *(int *)(param_1 + 0x14) +\n                     (*(int *)(param_1 + 0x1c) - *(int *)(param_1 + 0x18)),*(int *)(param_1 + 0x18),\n                     &local_18);\n  if (iVar1 == 0) {\n    if (*(int *)(param_1 + 0x18) == local_18) {\n      (**(code **)PTR_PTR_free_000b1144)(*(undefined4 *)(param_1 + 0x14));\n      *(undefined4 *)(param_1 + 0x14) = 0;\n      *(undefined4 *)(param_1 + 0x1c) = 0;\n      *(undefined4 *)(param_1 + 0x18) = 0;\n      (*(code *)PTR_FUN_000b1174)(&local_20);\n      *(undefined4 *)(param_1 + 0x20) = local_20;\n      *(undefined4 *)(param_1 + 0x24) = local_1c;\n    }\n    else {\n      *(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) - local_18;\n    }\n  }\n  if (local_14 == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {\n    return iVar1;\n  }\n  puVar2 = local_14;\n  puVar3 = PTR___stack_chk_fail_000b1c48;\n  (*(code *)PTR___stack_chk_fail_000b1c48)();\n  (*(code *)**(undefined4 **)(puVar3 + 0x4cab4))(*puVar2);\n  *puVar2 = 0;\n  return 0;\n}\n\n" (function_definition "int FUN_00064590(int param_1)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined *puVar3;\n  undefined4 local_20;\n  undefined4 local_1c;\n  int local_18;\n  undefined4 *local_14;\n  \n  local_14 = *(undefined4 **)PTR___stack_chk_guard_000b1fd4;\n  iVar1 = (*(code *)PTR_FUN_000b12e8)\n                    (*(int *)(param_1 + 0x2c),*(undefined4 *)(*(int *)(param_1 + 0x2c) + 0x198),\n                     *(int *)(param_1 + 0x14) +\n                     (*(int *)(param_1 + 0x1c) - *(int *)(param_1 + 0x18)),*(int *)(param_1 + 0x18),\n                     &local_18);\n  if (iVar1 == 0) {\n    if (*(int *)(param_1 + 0x18) == local_18) {\n      (**(code **)PTR_PTR_free_000b1144)(*(undefined4 *)(param_1 + 0x14));\n      *(undefined4 *)(param_1 + 0x14) = 0;\n      *(undefined4 *)(param_1 + 0x1c) = 0;\n      *(undefined4 *)(param_1 + 0x18) = 0;\n      (*(code *)PTR_FUN_000b1174)(&local_20);\n      *(undefined4 *)(param_1 + 0x20) = local_20;\n      *(undefined4 *)(param_1 + 0x24) = local_1c;\n    }\n    else {\n      *(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) - local_18;\n    }\n  }\n  if (local_14 == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {\n    return iVar1;\n  }\n  puVar2 = local_14;\n  puVar3 = PTR___stack_chk_fail_000b1c48;\n  (*(code *)PTR___stack_chk_fail_000b1c48)();\n  (*(code *)**(undefined4 **)(puVar3 + 0x4cab4))(*puVar2);\n  *puVar2 = 0;\n  return 0;\n}" primitive_type (function_declarator "FUN_00064590(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined *puVar3;\n  undefined4 local_20;\n  undefined4 local_1c;\n  int local_18;\n  undefined4 *local_14;\n  \n  local_14 = *(undefined4 **)PTR___stack_chk_guard_000b1fd4;\n  iVar1 = (*(code *)PTR_FUN_000b12e8)\n                    (*(int *)(param_1 + 0x2c),*(undefined4 *)(*(int *)(param_1 + 0x2c) + 0x198),\n                     *(int *)(param_1 + 0x14) +\n                     (*(int *)(param_1 + 0x1c) - *(int *)(param_1 + 0x18)),*(int *)(param_1 + 0x18),\n                     &local_18);\n  if (iVar1 == 0) {\n    if (*(int *)(param_1 + 0x18) == local_18) {\n      (**(code **)PTR_PTR_free_000b1144)(*(undefined4 *)(param_1 + 0x14));\n      *(undefined4 *)(param_1 + 0x14) = 0;\n      *(undefined4 *)(param_1 + 0x1c) = 0;\n      *(undefined4 *)(param_1 + 0x18) = 0;\n      (*(code *)PTR_FUN_000b1174)(&local_20);\n      *(undefined4 *)(param_1 + 0x20) = local_20;\n      *(undefined4 *)(param_1 + 0x24) = local_1c;\n    }\n    else {\n      *(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) - local_18;\n    }\n  }\n  if (local_14 == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {\n    return iVar1;\n  }\n  puVar2 = local_14;\n  puVar3 = PTR___stack_chk_fail_000b1c48;\n  (*(code *)PTR___stack_chk_fail_000b1c48)();\n  (*(code *)**(undefined4 **)(puVar3 + 0x4cab4))(*puVar2);\n  *puVar2 = 0;\n  return 0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 local_1c;" type_identifier identifier ;) (declaration "int local_18;" primitive_type identifier ;) (declaration "undefined4 *local_14;" type_identifier (pointer_declarator "*local_14" * identifier) ;) (expression_statement "local_14 = *(undefined4 **)PTR___stack_chk_guard_000b1fd4;" (assignment_expression "local_14 = *(undefined4 **)PTR___stack_chk_guard_000b1fd4" identifier = (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_000b1fd4" * (cast_expression "(undefined4 **)PTR___stack_chk_guard_000b1fd4" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "iVar1 = (*(code *)PTR_FUN_000b12e8)\n                    (*(int *)(param_1 + 0x2c),*(undefined4 *)(*(int *)(param_1 + 0x2c) + 0x198),\n                     *(int *)(param_1 + 0x14) +\n                     (*(int *)(param_1 + 0x1c) - *(int *)(param_1 + 0x18)),*(int *)(param_1 + 0x18),\n                     &local_18);" (assignment_expression "iVar1 = (*(code *)PTR_FUN_000b12e8)\n                    (*(int *)(param_1 + 0x2c),*(undefined4 *)(*(int *)(param_1 + 0x2c) + 0x198),\n                     *(int *)(param_1 + 0x14) +\n                     (*(int *)(param_1 + 0x1c) - *(int *)(param_1 + 0x18)),*(int *)(param_1 + 0x18),\n                     &local_18)" identifier = (call_expression "(*(code *)PTR_FUN_000b12e8)\n                    (*(int *)(param_1 + 0x2c),*(undefined4 *)(*(int *)(param_1 + 0x2c) + 0x198),\n                     *(int *)(param_1 + 0x14) +\n                     (*(int *)(param_1 + 0x1c) - *(int *)(param_1 + 0x18)),*(int *)(param_1 + 0x18),\n                     &local_18)" (parenthesized_expression "(*(code *)PTR_FUN_000b12e8)" ( (pointer_expression "*(code *)PTR_FUN_000b12e8" * (cast_expression "(code *)PTR_FUN_000b12e8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(int *)(param_1 + 0x2c),*(undefined4 *)(*(int *)(param_1 + 0x2c) + 0x198),\n                     *(int *)(param_1 + 0x14) +\n                     (*(int *)(param_1 + 0x1c) - *(int *)(param_1 + 0x18)),*(int *)(param_1 + 0x18),\n                     &local_18)" ( (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0x2c) + 0x198)" * (cast_expression "(undefined4 *)(*(int *)(param_1 + 0x2c) + 0x198)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2c) + 0x198)" ( (binary_expression "*(int *)(param_1 + 0x2c) + 0x198" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) + number_literal) )))) , (binary_expression "*(int *)(param_1 + 0x14) +\n                     (*(int *)(param_1 + 0x1c) - *(int *)(param_1 + 0x18))" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) + (parenthesized_expression "(*(int *)(param_1 + 0x1c) - *(int *)(param_1 + 0x18))" ( (binary_expression "*(int *)(param_1 + 0x1c) - *(int *)(param_1 + 0x18)" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) - (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ))) , (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , (pointer_expression "&local_18" & identifier) )))) ;) (if_statement "if (iVar1 == 0) {\n    if (*(int *)(param_1 + 0x18) == local_18) {\n      (**(code **)PTR_PTR_free_000b1144)(*(undefined4 *)(param_1 + 0x14));\n      *(undefined4 *)(param_1 + 0x14) = 0;\n      *(undefined4 *)(param_1 + 0x1c) = 0;\n      *(undefined4 *)(param_1 + 0x18) = 0;\n      (*(code *)PTR_FUN_000b1174)(&local_20);\n      *(undefined4 *)(param_1 + 0x20) = local_20;\n      *(undefined4 *)(param_1 + 0x24) = local_1c;\n    }\n    else {\n      *(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) - local_18;\n    }\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    if (*(int *)(param_1 + 0x18) == local_18) {\n      (**(code **)PTR_PTR_free_000b1144)(*(undefined4 *)(param_1 + 0x14));\n      *(undefined4 *)(param_1 + 0x14) = 0;\n      *(undefined4 *)(param_1 + 0x1c) = 0;\n      *(undefined4 *)(param_1 + 0x18) = 0;\n      (*(code *)PTR_FUN_000b1174)(&local_20);\n      *(undefined4 *)(param_1 + 0x20) = local_20;\n      *(undefined4 *)(param_1 + 0x24) = local_1c;\n    }\n    else {\n      *(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) - local_18;\n    }\n  }" { (if_statement "if (*(int *)(param_1 + 0x18) == local_18) {\n      (**(code **)PTR_PTR_free_000b1144)(*(undefined4 *)(param_1 + 0x14));\n      *(undefined4 *)(param_1 + 0x14) = 0;\n      *(undefined4 *)(param_1 + 0x1c) = 0;\n      *(undefined4 *)(param_1 + 0x18) = 0;\n      (*(code *)PTR_FUN_000b1174)(&local_20);\n      *(undefined4 *)(param_1 + 0x20) = local_20;\n      *(undefined4 *)(param_1 + 0x24) = local_1c;\n    }\n    else {\n      *(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) - local_18;\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x18) == local_18)" ( (binary_expression "*(int *)(param_1 + 0x18) == local_18" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n      (**(code **)PTR_PTR_free_000b1144)(*(undefined4 *)(param_1 + 0x14));\n      *(undefined4 *)(param_1 + 0x14) = 0;\n      *(undefined4 *)(param_1 + 0x1c) = 0;\n      *(undefined4 *)(param_1 + 0x18) = 0;\n      (*(code *)PTR_FUN_000b1174)(&local_20);\n      *(undefined4 *)(param_1 + 0x20) = local_20;\n      *(undefined4 *)(param_1 + 0x24) = local_1c;\n    }" { (expression_statement "(**(code **)PTR_PTR_free_000b1144)(*(undefined4 *)(param_1 + 0x14));" (call_expression "(**(code **)PTR_PTR_free_000b1144)(*(undefined4 *)(param_1 + 0x14))" (parenthesized_expression "(**(code **)PTR_PTR_free_000b1144)" ( (pointer_expression "**(code **)PTR_PTR_free_000b1144" * (pointer_expression "*(code **)PTR_PTR_free_000b1144" * (cast_expression "(code **)PTR_PTR_free_000b1144" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*(undefined4 *)(param_1 + 0x14))" ( (pointer_expression "*(undefined4 *)(param_1 + 0x14)" * (cast_expression "(undefined4 *)(param_1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x14) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x14)" * (cast_expression "(undefined4 *)(param_1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x1c)" * (cast_expression "(undefined4 *)(param_1 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x18) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x18)" * (cast_expression "(undefined4 *)(param_1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)PTR_FUN_000b1174)(&local_20);" (call_expression "(*(code *)PTR_FUN_000b1174)(&local_20)" (parenthesized_expression "(*(code *)PTR_FUN_000b1174)" ( (pointer_expression "*(code *)PTR_FUN_000b1174" * (cast_expression "(code *)PTR_FUN_000b1174" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_20)" ( (pointer_expression "&local_20" & identifier) ))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x20) = local_20;" (assignment_expression "*(undefined4 *)(param_1 + 0x20) = local_20" (pointer_expression "*(undefined4 *)(param_1 + 0x20)" * (cast_expression "(undefined4 *)(param_1 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 0x24) = local_1c;" (assignment_expression "*(undefined4 *)(param_1 + 0x24) = local_1c" (pointer_expression "*(undefined4 *)(param_1 + 0x24)" * (cast_expression "(undefined4 *)(param_1 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      *(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) - local_18;\n    }" else (compound_statement "{\n      *(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) - local_18;\n    }" { (expression_statement "*(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) - local_18;" (assignment_expression "*(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) - local_18" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x18) - local_18" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) - identifier)) ;) }))) })) (if_statement "if (local_14 == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {\n    return iVar1;\n  }" if (parenthesized_expression "(local_14 == *(undefined4 **)PTR___stack_chk_guard_000b1fd4)" ( (binary_expression "local_14 == *(undefined4 **)PTR___stack_chk_guard_000b1fd4" identifier == (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_000b1fd4" * (cast_expression "(undefined4 **)PTR___stack_chk_guard_000b1fd4" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return iVar1;\n  }" { (return_statement "return iVar1;" return identifier ;) })) (expression_statement "puVar2 = local_14;" (assignment_expression "puVar2 = local_14" identifier = identifier) ;) (expression_statement "puVar3 = PTR___stack_chk_fail_000b1c48;" (assignment_expression "puVar3 = PTR___stack_chk_fail_000b1c48" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000b1c48)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b1c48)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b1c48)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000b1c48" * (cast_expression "(code *)PTR___stack_chk_fail_000b1c48" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "(*(code *)**(undefined4 **)(puVar3 + 0x4cab4))(*puVar2);" (call_expression "(*(code *)**(undefined4 **)(puVar3 + 0x4cab4))(*puVar2)" (parenthesized_expression "(*(code *)**(undefined4 **)(puVar3 + 0x4cab4))" ( (pointer_expression "*(code *)**(undefined4 **)(puVar3 + 0x4cab4)" * (cast_expression "(code *)**(undefined4 **)(puVar3 + 0x4cab4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(puVar3 + 0x4cab4)" * (pointer_expression "*(undefined4 **)(puVar3 + 0x4cab4)" * (cast_expression "(undefined4 **)(puVar3 + 0x4cab4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0x4cab4)" ( (binary_expression "puVar3 + 0x4cab4" identifier + number_literal) ))))))) )) (argument_list "(*puVar2)" ( (pointer_expression "*puVar2" * identifier) ))) ;) (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" * identifier) = number_literal) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nCURLcode Curl_pp_flushsend(pingpong *pp)\n\n{\n  CURLcode CVar1;\n  undefined4 *puVar2;\n  undefined *puVar3;\n  time_t tStack_20;\n  int iStack_1c;\n  ssize_t written;\n  undefined4 *puStack_14;\n  \n  puStack_14 = *(undefined4 **)PTR___stack_chk_guard_000b1fd4;\n  CVar1 = (*(code *)PTR_Curl_write_000b12e8)\n                    (pp->conn,pp->conn->sock[0],pp->sendthis + (pp->sendsize - pp->sendleft),\n                     pp->sendleft,&written);\n  if (CVar1 == CURLE_OK) {\n    if (pp->sendleft == written) {\n      (**(code **)PTR_Curl_cfree_000b1144)(pp->sendthis);\n      pp->sendthis = (char *)0x0;\n      pp->sendsize = 0;\n      pp->sendleft = 0;\n      (*(code *)PTR_Curl_now_000b1174)(&tStack_20);\n      (pp->response).tv_sec = tStack_20;\n      (pp->response).tv_usec = iStack_1c;\n    }\n    else {\n      pp->sendleft = pp->sendleft - written;\n    }\n  }\n  if (puStack_14 == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {\n    return CVar1;\n  }\n  puVar2 = puStack_14;\n  puVar3 = PTR___stack_chk_fail_000b1c48;\n  (*(code *)PTR___stack_chk_fail_000b1c48)();\n  (*(code *)**(undefined4 **)(puVar3 + 0x4cab4))(*puVar2);\n  *puVar2 = 0;\n  return CURLE_OK;\n}\n\n" comment (function_definition "CURLcode Curl_pp_flushsend(pingpong *pp)\n\n{\n  CURLcode CVar1;\n  undefined4 *puVar2;\n  undefined *puVar3;\n  time_t tStack_20;\n  int iStack_1c;\n  ssize_t written;\n  undefined4 *puStack_14;\n  \n  puStack_14 = *(undefined4 **)PTR___stack_chk_guard_000b1fd4;\n  CVar1 = (*(code *)PTR_Curl_write_000b12e8)\n                    (pp->conn,pp->conn->sock[0],pp->sendthis + (pp->sendsize - pp->sendleft),\n                     pp->sendleft,&written);\n  if (CVar1 == CURLE_OK) {\n    if (pp->sendleft == written) {\n      (**(code **)PTR_Curl_cfree_000b1144)(pp->sendthis);\n      pp->sendthis = (char *)0x0;\n      pp->sendsize = 0;\n      pp->sendleft = 0;\n      (*(code *)PTR_Curl_now_000b1174)(&tStack_20);\n      (pp->response).tv_sec = tStack_20;\n      (pp->response).tv_usec = iStack_1c;\n    }\n    else {\n      pp->sendleft = pp->sendleft - written;\n    }\n  }\n  if (puStack_14 == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {\n    return CVar1;\n  }\n  puVar2 = puStack_14;\n  puVar3 = PTR___stack_chk_fail_000b1c48;\n  (*(code *)PTR___stack_chk_fail_000b1c48)();\n  (*(code *)**(undefined4 **)(puVar3 + 0x4cab4))(*puVar2);\n  *puVar2 = 0;\n  return CURLE_OK;\n}" type_identifier (function_declarator "Curl_pp_flushsend(pingpong *pp)" identifier (parameter_list "(pingpong *pp)" ( (parameter_declaration "pingpong *pp" type_identifier (pointer_declarator "*pp" * identifier)) ))) (compound_statement "{\n  CURLcode CVar1;\n  undefined4 *puVar2;\n  undefined *puVar3;\n  time_t tStack_20;\n  int iStack_1c;\n  ssize_t written;\n  undefined4 *puStack_14;\n  \n  puStack_14 = *(undefined4 **)PTR___stack_chk_guard_000b1fd4;\n  CVar1 = (*(code *)PTR_Curl_write_000b12e8)\n                    (pp->conn,pp->conn->sock[0],pp->sendthis + (pp->sendsize - pp->sendleft),\n                     pp->sendleft,&written);\n  if (CVar1 == CURLE_OK) {\n    if (pp->sendleft == written) {\n      (**(code **)PTR_Curl_cfree_000b1144)(pp->sendthis);\n      pp->sendthis = (char *)0x0;\n      pp->sendsize = 0;\n      pp->sendleft = 0;\n      (*(code *)PTR_Curl_now_000b1174)(&tStack_20);\n      (pp->response).tv_sec = tStack_20;\n      (pp->response).tv_usec = iStack_1c;\n    }\n    else {\n      pp->sendleft = pp->sendleft - written;\n    }\n  }\n  if (puStack_14 == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {\n    return CVar1;\n  }\n  puVar2 = puStack_14;\n  puVar3 = PTR___stack_chk_fail_000b1c48;\n  (*(code *)PTR___stack_chk_fail_000b1c48)();\n  (*(code *)**(undefined4 **)(puVar3 + 0x4cab4))(*puVar2);\n  *puVar2 = 0;\n  return CURLE_OK;\n}" { (declaration "CURLcode CVar1;" type_identifier identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "time_t tStack_20;" type_identifier identifier ;) (declaration "int iStack_1c;" primitive_type identifier ;) (declaration "ssize_t written;" primitive_type identifier ;) (declaration "undefined4 *puStack_14;" type_identifier (pointer_declarator "*puStack_14" * identifier) ;) (expression_statement "puStack_14 = *(undefined4 **)PTR___stack_chk_guard_000b1fd4;" (assignment_expression "puStack_14 = *(undefined4 **)PTR___stack_chk_guard_000b1fd4" identifier = (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_000b1fd4" * (cast_expression "(undefined4 **)PTR___stack_chk_guard_000b1fd4" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "CVar1 = (*(code *)PTR_Curl_write_000b12e8)\n                    (pp->conn,pp->conn->sock[0],pp->sendthis + (pp->sendsize - pp->sendleft),\n                     pp->sendleft,&written);" (assignment_expression "CVar1 = (*(code *)PTR_Curl_write_000b12e8)\n                    (pp->conn,pp->conn->sock[0],pp->sendthis + (pp->sendsize - pp->sendleft),\n                     pp->sendleft,&written)" identifier = (call_expression "(*(code *)PTR_Curl_write_000b12e8)\n                    (pp->conn,pp->conn->sock[0],pp->sendthis + (pp->sendsize - pp->sendleft),\n                     pp->sendleft,&written)" (parenthesized_expression "(*(code *)PTR_Curl_write_000b12e8)" ( (pointer_expression "*(code *)PTR_Curl_write_000b12e8" * (cast_expression "(code *)PTR_Curl_write_000b12e8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pp->conn,pp->conn->sock[0],pp->sendthis + (pp->sendsize - pp->sendleft),\n                     pp->sendleft,&written)" ( (field_expression "pp->conn" identifier -> field_identifier) , (subscript_expression "pp->conn->sock[0]" (field_expression "pp->conn->sock" (field_expression "pp->conn" identifier -> field_identifier) -> field_identifier) [ number_literal ]) , (binary_expression "pp->sendthis + (pp->sendsize - pp->sendleft)" (field_expression "pp->sendthis" identifier -> field_identifier) + (parenthesized_expression "(pp->sendsize - pp->sendleft)" ( (binary_expression "pp->sendsize - pp->sendleft" (field_expression "pp->sendsize" identifier -> field_identifier) - (field_expression "pp->sendleft" identifier -> field_identifier)) ))) , (field_expression "pp->sendleft" identifier -> field_identifier) , (pointer_expression "&written" & identifier) )))) ;) (if_statement "if (CVar1 == CURLE_OK) {\n    if (pp->sendleft == written) {\n      (**(code **)PTR_Curl_cfree_000b1144)(pp->sendthis);\n      pp->sendthis = (char *)0x0;\n      pp->sendsize = 0;\n      pp->sendleft = 0;\n      (*(code *)PTR_Curl_now_000b1174)(&tStack_20);\n      (pp->response).tv_sec = tStack_20;\n      (pp->response).tv_usec = iStack_1c;\n    }\n    else {\n      pp->sendleft = pp->sendleft - written;\n    }\n  }" if (parenthesized_expression "(CVar1 == CURLE_OK)" ( (binary_expression "CVar1 == CURLE_OK" identifier == identifier) )) (compound_statement "{\n    if (pp->sendleft == written) {\n      (**(code **)PTR_Curl_cfree_000b1144)(pp->sendthis);\n      pp->sendthis = (char *)0x0;\n      pp->sendsize = 0;\n      pp->sendleft = 0;\n      (*(code *)PTR_Curl_now_000b1174)(&tStack_20);\n      (pp->response).tv_sec = tStack_20;\n      (pp->response).tv_usec = iStack_1c;\n    }\n    else {\n      pp->sendleft = pp->sendleft - written;\n    }\n  }" { (if_statement "if (pp->sendleft == written) {\n      (**(code **)PTR_Curl_cfree_000b1144)(pp->sendthis);\n      pp->sendthis = (char *)0x0;\n      pp->sendsize = 0;\n      pp->sendleft = 0;\n      (*(code *)PTR_Curl_now_000b1174)(&tStack_20);\n      (pp->response).tv_sec = tStack_20;\n      (pp->response).tv_usec = iStack_1c;\n    }\n    else {\n      pp->sendleft = pp->sendleft - written;\n    }" if (parenthesized_expression "(pp->sendleft == written)" ( (binary_expression "pp->sendleft == written" (field_expression "pp->sendleft" identifier -> field_identifier) == identifier) )) (compound_statement "{\n      (**(code **)PTR_Curl_cfree_000b1144)(pp->sendthis);\n      pp->sendthis = (char *)0x0;\n      pp->sendsize = 0;\n      pp->sendleft = 0;\n      (*(code *)PTR_Curl_now_000b1174)(&tStack_20);\n      (pp->response).tv_sec = tStack_20;\n      (pp->response).tv_usec = iStack_1c;\n    }" { (expression_statement "(**(code **)PTR_Curl_cfree_000b1144)(pp->sendthis);" (call_expression "(**(code **)PTR_Curl_cfree_000b1144)(pp->sendthis)" (parenthesized_expression "(**(code **)PTR_Curl_cfree_000b1144)" ( (pointer_expression "**(code **)PTR_Curl_cfree_000b1144" * (pointer_expression "*(code **)PTR_Curl_cfree_000b1144" * (cast_expression "(code **)PTR_Curl_cfree_000b1144" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(pp->sendthis)" ( (field_expression "pp->sendthis" identifier -> field_identifier) ))) ;) (expression_statement "pp->sendthis = (char *)0x0;" (assignment_expression "pp->sendthis = (char *)0x0" (field_expression "pp->sendthis" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pp->sendsize = 0;" (assignment_expression "pp->sendsize = 0" (field_expression "pp->sendsize" identifier -> field_identifier) = number_literal) ;) (expression_statement "pp->sendleft = 0;" (assignment_expression "pp->sendleft = 0" (field_expression "pp->sendleft" identifier -> field_identifier) = number_literal) ;) (expression_statement "(*(code *)PTR_Curl_now_000b1174)(&tStack_20);" (call_expression "(*(code *)PTR_Curl_now_000b1174)(&tStack_20)" (parenthesized_expression "(*(code *)PTR_Curl_now_000b1174)" ( (pointer_expression "*(code *)PTR_Curl_now_000b1174" * (cast_expression "(code *)PTR_Curl_now_000b1174" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&tStack_20)" ( (pointer_expression "&tStack_20" & identifier) ))) ;) (expression_statement "(pp->response).tv_sec = tStack_20;" (assignment_expression "(pp->response).tv_sec = tStack_20" (field_expression "(pp->response).tv_sec" (parenthesized_expression "(pp->response)" ( (field_expression "pp->response" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(pp->response).tv_usec = iStack_1c;" (assignment_expression "(pp->response).tv_usec = iStack_1c" (field_expression "(pp->response).tv_usec" (parenthesized_expression "(pp->response)" ( (field_expression "pp->response" identifier -> field_identifier) )) . field_identifier) = identifier) ;) }) (else_clause "else {\n      pp->sendleft = pp->sendleft - written;\n    }" else (compound_statement "{\n      pp->sendleft = pp->sendleft - written;\n    }" { (expression_statement "pp->sendleft = pp->sendleft - written;" (assignment_expression "pp->sendleft = pp->sendleft - written" (field_expression "pp->sendleft" identifier -> field_identifier) = (binary_expression "pp->sendleft - written" (field_expression "pp->sendleft" identifier -> field_identifier) - identifier)) ;) }))) })) (if_statement "if (puStack_14 == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {\n    return CVar1;\n  }" if (parenthesized_expression "(puStack_14 == *(undefined4 **)PTR___stack_chk_guard_000b1fd4)" ( (binary_expression "puStack_14 == *(undefined4 **)PTR___stack_chk_guard_000b1fd4" identifier == (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_000b1fd4" * (cast_expression "(undefined4 **)PTR___stack_chk_guard_000b1fd4" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return CVar1;\n  }" { (return_statement "return CVar1;" return identifier ;) })) (expression_statement "puVar2 = puStack_14;" (assignment_expression "puVar2 = puStack_14" identifier = identifier) ;) (expression_statement "puVar3 = PTR___stack_chk_fail_000b1c48;" (assignment_expression "puVar3 = PTR___stack_chk_fail_000b1c48" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000b1c48)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b1c48)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b1c48)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000b1c48" * (cast_expression "(code *)PTR___stack_chk_fail_000b1c48" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "(*(code *)**(undefined4 **)(puVar3 + 0x4cab4))(*puVar2);" (call_expression "(*(code *)**(undefined4 **)(puVar3 + 0x4cab4))(*puVar2)" (parenthesized_expression "(*(code *)**(undefined4 **)(puVar3 + 0x4cab4))" ( (pointer_expression "*(code *)**(undefined4 **)(puVar3 + 0x4cab4)" * (cast_expression "(code *)**(undefined4 **)(puVar3 + 0x4cab4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(puVar3 + 0x4cab4)" * (pointer_expression "*(undefined4 **)(puVar3 + 0x4cab4)" * (cast_expression "(undefined4 **)(puVar3 + 0x4cab4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0x4cab4)" ( (binary_expression "puVar3 + 0x4cab4" identifier + number_literal) ))))))) )) (argument_list "(*puVar2)" ( (pointer_expression "*puVar2" * identifier) ))) ;) (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" * identifier) = number_literal) ;) (return_statement "return CURLE_OK;" return identifier ;) })))
(translation_unit "int FUN_00064590(int param_1)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined *puVar3;\n  undefined4 local_20;\n  undefined4 local_1c;\n  int local_18;\n  undefined4 *local_14;\n  \n  local_14 = *(undefined4 **)PTR___stack_chk_guard_000b1fd4;\n  iVar1 = (*(code *)PTR_FUN_000b12e8)\n                    (*(int *)(param_1 + 0x2c),*(undefined4 *)(*(int *)(param_1 + 0x2c) + 0x198),\n                     *(int *)(param_1 + 0x14) +\n                     (*(int *)(param_1 + 0x1c) - *(int *)(param_1 + 0x18)),*(int *)(param_1 + 0x18),\n                     &local_18);\n  if (iVar1 == 0) {\n    if (*(int *)(param_1 + 0x18) == local_18) {\n      (**(code **)PTR_PTR_free_000b1144)(*(undefined4 *)(param_1 + 0x14));\n      *(undefined4 *)(param_1 + 0x14) = 0;\n      *(undefined4 *)(param_1 + 0x1c) = 0;\n      *(undefined4 *)(param_1 + 0x18) = 0;\n      (*(code *)PTR_FUN_000b1174)(&local_20);\n      *(undefined4 *)(param_1 + 0x20) = local_20;\n      *(undefined4 *)(param_1 + 0x24) = local_1c;\n    }\n    else {\n      *(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) - local_18;\n    }\n  }\n  if (local_14 == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {\n    return iVar1;\n  }\n  puVar2 = local_14;\n  puVar3 = PTR___stack_chk_fail_000b1c48;\n  (*(code *)PTR___stack_chk_fail_000b1c48)();\n  (*(code *)**(undefined4 **)(puVar3 + 0x4cab4))(*puVar2);\n  *puVar2 = 0;\n  return 0;\n}\n\n" (function_definition "int FUN_00064590(int param_1)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined *puVar3;\n  undefined4 local_20;\n  undefined4 local_1c;\n  int local_18;\n  undefined4 *local_14;\n  \n  local_14 = *(undefined4 **)PTR___stack_chk_guard_000b1fd4;\n  iVar1 = (*(code *)PTR_FUN_000b12e8)\n                    (*(int *)(param_1 + 0x2c),*(undefined4 *)(*(int *)(param_1 + 0x2c) + 0x198),\n                     *(int *)(param_1 + 0x14) +\n                     (*(int *)(param_1 + 0x1c) - *(int *)(param_1 + 0x18)),*(int *)(param_1 + 0x18),\n                     &local_18);\n  if (iVar1 == 0) {\n    if (*(int *)(param_1 + 0x18) == local_18) {\n      (**(code **)PTR_PTR_free_000b1144)(*(undefined4 *)(param_1 + 0x14));\n      *(undefined4 *)(param_1 + 0x14) = 0;\n      *(undefined4 *)(param_1 + 0x1c) = 0;\n      *(undefined4 *)(param_1 + 0x18) = 0;\n      (*(code *)PTR_FUN_000b1174)(&local_20);\n      *(undefined4 *)(param_1 + 0x20) = local_20;\n      *(undefined4 *)(param_1 + 0x24) = local_1c;\n    }\n    else {\n      *(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) - local_18;\n    }\n  }\n  if (local_14 == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {\n    return iVar1;\n  }\n  puVar2 = local_14;\n  puVar3 = PTR___stack_chk_fail_000b1c48;\n  (*(code *)PTR___stack_chk_fail_000b1c48)();\n  (*(code *)**(undefined4 **)(puVar3 + 0x4cab4))(*puVar2);\n  *puVar2 = 0;\n  return 0;\n}" primitive_type (function_declarator "FUN_00064590(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined *puVar3;\n  undefined4 local_20;\n  undefined4 local_1c;\n  int local_18;\n  undefined4 *local_14;\n  \n  local_14 = *(undefined4 **)PTR___stack_chk_guard_000b1fd4;\n  iVar1 = (*(code *)PTR_FUN_000b12e8)\n                    (*(int *)(param_1 + 0x2c),*(undefined4 *)(*(int *)(param_1 + 0x2c) + 0x198),\n                     *(int *)(param_1 + 0x14) +\n                     (*(int *)(param_1 + 0x1c) - *(int *)(param_1 + 0x18)),*(int *)(param_1 + 0x18),\n                     &local_18);\n  if (iVar1 == 0) {\n    if (*(int *)(param_1 + 0x18) == local_18) {\n      (**(code **)PTR_PTR_free_000b1144)(*(undefined4 *)(param_1 + 0x14));\n      *(undefined4 *)(param_1 + 0x14) = 0;\n      *(undefined4 *)(param_1 + 0x1c) = 0;\n      *(undefined4 *)(param_1 + 0x18) = 0;\n      (*(code *)PTR_FUN_000b1174)(&local_20);\n      *(undefined4 *)(param_1 + 0x20) = local_20;\n      *(undefined4 *)(param_1 + 0x24) = local_1c;\n    }\n    else {\n      *(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) - local_18;\n    }\n  }\n  if (local_14 == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {\n    return iVar1;\n  }\n  puVar2 = local_14;\n  puVar3 = PTR___stack_chk_fail_000b1c48;\n  (*(code *)PTR___stack_chk_fail_000b1c48)();\n  (*(code *)**(undefined4 **)(puVar3 + 0x4cab4))(*puVar2);\n  *puVar2 = 0;\n  return 0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 local_1c;" type_identifier identifier ;) (declaration "int local_18;" primitive_type identifier ;) (declaration "undefined4 *local_14;" type_identifier (pointer_declarator "*local_14" * identifier) ;) (expression_statement "local_14 = *(undefined4 **)PTR___stack_chk_guard_000b1fd4;" (assignment_expression "local_14 = *(undefined4 **)PTR___stack_chk_guard_000b1fd4" identifier = (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_000b1fd4" * (cast_expression "(undefined4 **)PTR___stack_chk_guard_000b1fd4" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "iVar1 = (*(code *)PTR_FUN_000b12e8)\n                    (*(int *)(param_1 + 0x2c),*(undefined4 *)(*(int *)(param_1 + 0x2c) + 0x198),\n                     *(int *)(param_1 + 0x14) +\n                     (*(int *)(param_1 + 0x1c) - *(int *)(param_1 + 0x18)),*(int *)(param_1 + 0x18),\n                     &local_18);" (assignment_expression "iVar1 = (*(code *)PTR_FUN_000b12e8)\n                    (*(int *)(param_1 + 0x2c),*(undefined4 *)(*(int *)(param_1 + 0x2c) + 0x198),\n                     *(int *)(param_1 + 0x14) +\n                     (*(int *)(param_1 + 0x1c) - *(int *)(param_1 + 0x18)),*(int *)(param_1 + 0x18),\n                     &local_18)" identifier = (call_expression "(*(code *)PTR_FUN_000b12e8)\n                    (*(int *)(param_1 + 0x2c),*(undefined4 *)(*(int *)(param_1 + 0x2c) + 0x198),\n                     *(int *)(param_1 + 0x14) +\n                     (*(int *)(param_1 + 0x1c) - *(int *)(param_1 + 0x18)),*(int *)(param_1 + 0x18),\n                     &local_18)" (parenthesized_expression "(*(code *)PTR_FUN_000b12e8)" ( (pointer_expression "*(code *)PTR_FUN_000b12e8" * (cast_expression "(code *)PTR_FUN_000b12e8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(int *)(param_1 + 0x2c),*(undefined4 *)(*(int *)(param_1 + 0x2c) + 0x198),\n                     *(int *)(param_1 + 0x14) +\n                     (*(int *)(param_1 + 0x1c) - *(int *)(param_1 + 0x18)),*(int *)(param_1 + 0x18),\n                     &local_18)" ( (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0x2c) + 0x198)" * (cast_expression "(undefined4 *)(*(int *)(param_1 + 0x2c) + 0x198)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2c) + 0x198)" ( (binary_expression "*(int *)(param_1 + 0x2c) + 0x198" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) + number_literal) )))) , (binary_expression "*(int *)(param_1 + 0x14) +\n                     (*(int *)(param_1 + 0x1c) - *(int *)(param_1 + 0x18))" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) + (parenthesized_expression "(*(int *)(param_1 + 0x1c) - *(int *)(param_1 + 0x18))" ( (binary_expression "*(int *)(param_1 + 0x1c) - *(int *)(param_1 + 0x18)" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) - (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ))) , (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , (pointer_expression "&local_18" & identifier) )))) ;) (if_statement "if (iVar1 == 0) {\n    if (*(int *)(param_1 + 0x18) == local_18) {\n      (**(code **)PTR_PTR_free_000b1144)(*(undefined4 *)(param_1 + 0x14));\n      *(undefined4 *)(param_1 + 0x14) = 0;\n      *(undefined4 *)(param_1 + 0x1c) = 0;\n      *(undefined4 *)(param_1 + 0x18) = 0;\n      (*(code *)PTR_FUN_000b1174)(&local_20);\n      *(undefined4 *)(param_1 + 0x20) = local_20;\n      *(undefined4 *)(param_1 + 0x24) = local_1c;\n    }\n    else {\n      *(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) - local_18;\n    }\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    if (*(int *)(param_1 + 0x18) == local_18) {\n      (**(code **)PTR_PTR_free_000b1144)(*(undefined4 *)(param_1 + 0x14));\n      *(undefined4 *)(param_1 + 0x14) = 0;\n      *(undefined4 *)(param_1 + 0x1c) = 0;\n      *(undefined4 *)(param_1 + 0x18) = 0;\n      (*(code *)PTR_FUN_000b1174)(&local_20);\n      *(undefined4 *)(param_1 + 0x20) = local_20;\n      *(undefined4 *)(param_1 + 0x24) = local_1c;\n    }\n    else {\n      *(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) - local_18;\n    }\n  }" { (if_statement "if (*(int *)(param_1 + 0x18) == local_18) {\n      (**(code **)PTR_PTR_free_000b1144)(*(undefined4 *)(param_1 + 0x14));\n      *(undefined4 *)(param_1 + 0x14) = 0;\n      *(undefined4 *)(param_1 + 0x1c) = 0;\n      *(undefined4 *)(param_1 + 0x18) = 0;\n      (*(code *)PTR_FUN_000b1174)(&local_20);\n      *(undefined4 *)(param_1 + 0x20) = local_20;\n      *(undefined4 *)(param_1 + 0x24) = local_1c;\n    }\n    else {\n      *(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) - local_18;\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x18) == local_18)" ( (binary_expression "*(int *)(param_1 + 0x18) == local_18" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n      (**(code **)PTR_PTR_free_000b1144)(*(undefined4 *)(param_1 + 0x14));\n      *(undefined4 *)(param_1 + 0x14) = 0;\n      *(undefined4 *)(param_1 + 0x1c) = 0;\n      *(undefined4 *)(param_1 + 0x18) = 0;\n      (*(code *)PTR_FUN_000b1174)(&local_20);\n      *(undefined4 *)(param_1 + 0x20) = local_20;\n      *(undefined4 *)(param_1 + 0x24) = local_1c;\n    }" { (expression_statement "(**(code **)PTR_PTR_free_000b1144)(*(undefined4 *)(param_1 + 0x14));" (call_expression "(**(code **)PTR_PTR_free_000b1144)(*(undefined4 *)(param_1 + 0x14))" (parenthesized_expression "(**(code **)PTR_PTR_free_000b1144)" ( (pointer_expression "**(code **)PTR_PTR_free_000b1144" * (pointer_expression "*(code **)PTR_PTR_free_000b1144" * (cast_expression "(code **)PTR_PTR_free_000b1144" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*(undefined4 *)(param_1 + 0x14))" ( (pointer_expression "*(undefined4 *)(param_1 + 0x14)" * (cast_expression "(undefined4 *)(param_1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x14) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x14)" * (cast_expression "(undefined4 *)(param_1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x1c)" * (cast_expression "(undefined4 *)(param_1 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x18) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x18)" * (cast_expression "(undefined4 *)(param_1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)PTR_FUN_000b1174)(&local_20);" (call_expression "(*(code *)PTR_FUN_000b1174)(&local_20)" (parenthesized_expression "(*(code *)PTR_FUN_000b1174)" ( (pointer_expression "*(code *)PTR_FUN_000b1174" * (cast_expression "(code *)PTR_FUN_000b1174" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_20)" ( (pointer_expression "&local_20" & identifier) ))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x20) = local_20;" (assignment_expression "*(undefined4 *)(param_1 + 0x20) = local_20" (pointer_expression "*(undefined4 *)(param_1 + 0x20)" * (cast_expression "(undefined4 *)(param_1 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 0x24) = local_1c;" (assignment_expression "*(undefined4 *)(param_1 + 0x24) = local_1c" (pointer_expression "*(undefined4 *)(param_1 + 0x24)" * (cast_expression "(undefined4 *)(param_1 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      *(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) - local_18;\n    }" else (compound_statement "{\n      *(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) - local_18;\n    }" { (expression_statement "*(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) - local_18;" (assignment_expression "*(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) - local_18" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x18) - local_18" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) - identifier)) ;) }))) })) (if_statement "if (local_14 == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {\n    return iVar1;\n  }" if (parenthesized_expression "(local_14 == *(undefined4 **)PTR___stack_chk_guard_000b1fd4)" ( (binary_expression "local_14 == *(undefined4 **)PTR___stack_chk_guard_000b1fd4" identifier == (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_000b1fd4" * (cast_expression "(undefined4 **)PTR___stack_chk_guard_000b1fd4" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return iVar1;\n  }" { (return_statement "return iVar1;" return identifier ;) })) (expression_statement "puVar2 = local_14;" (assignment_expression "puVar2 = local_14" identifier = identifier) ;) (expression_statement "puVar3 = PTR___stack_chk_fail_000b1c48;" (assignment_expression "puVar3 = PTR___stack_chk_fail_000b1c48" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000b1c48)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b1c48)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b1c48)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000b1c48" * (cast_expression "(code *)PTR___stack_chk_fail_000b1c48" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "(*(code *)**(undefined4 **)(puVar3 + 0x4cab4))(*puVar2);" (call_expression "(*(code *)**(undefined4 **)(puVar3 + 0x4cab4))(*puVar2)" (parenthesized_expression "(*(code *)**(undefined4 **)(puVar3 + 0x4cab4))" ( (pointer_expression "*(code *)**(undefined4 **)(puVar3 + 0x4cab4)" * (cast_expression "(code *)**(undefined4 **)(puVar3 + 0x4cab4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(puVar3 + 0x4cab4)" * (pointer_expression "*(undefined4 **)(puVar3 + 0x4cab4)" * (cast_expression "(undefined4 **)(puVar3 + 0x4cab4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0x4cab4)" ( (binary_expression "puVar3 + 0x4cab4" identifier + number_literal) ))))))) )) (argument_list "(*puVar2)" ( (pointer_expression "*puVar2" * identifier) ))) ;) (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" * identifier) = number_literal) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT)) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) )) (argument_list ( (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (return_statement return LIT ;) })))
(function_definition "int FUN_00064590(int param_1)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined *puVar3;\n  undefined4 local_20;\n  undefined4 local_1c;\n  int local_18;\n  undefined4 *local_14;\n  \n  local_14 = *(undefined4 **)PTR___stack_chk_guard_000b1fd4;\n  iVar1 = (*(code *)PTR_FUN_000b12e8)\n                    (*(int *)(param_1 + 0x2c),*(undefined4 *)(*(int *)(param_1 + 0x2c) + 0x198),\n                     *(int *)(param_1 + 0x14) +\n                     (*(int *)(param_1 + 0x1c) - *(int *)(param_1 + 0x18)),*(int *)(param_1 + 0x18),\n                     &local_18);\n  if (iVar1 == 0) {\n    if (*(int *)(param_1 + 0x18) == local_18) {\n      (**(code **)PTR_PTR_free_000b1144)(*(undefined4 *)(param_1 + 0x14));\n      *(undefined4 *)(param_1 + 0x14) = 0;\n      *(undefined4 *)(param_1 + 0x1c) = 0;\n      *(undefined4 *)(param_1 + 0x18) = 0;\n      (*(code *)PTR_FUN_000b1174)(&local_20);\n      *(undefined4 *)(param_1 + 0x20) = local_20;\n      *(undefined4 *)(param_1 + 0x24) = local_1c;\n    }\n    else {\n      *(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) - local_18;\n    }\n  }\n  if (local_14 == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {\n    return iVar1;\n  }\n  puVar2 = local_14;\n  puVar3 = PTR___stack_chk_fail_000b1c48;\n  (*(code *)PTR___stack_chk_fail_000b1c48)();\n  (*(code *)**(undefined4 **)(puVar3 + 0x4cab4))(*puVar2);\n  *puVar2 = 0;\n  return 0;\n}" (primitive_type "int") (function_declarator "FUN_00064590(int param_1)" (identifier "FUN_00064590") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined *puVar3;\n  undefined4 local_20;\n  undefined4 local_1c;\n  int local_18;\n  undefined4 *local_14;\n  \n  local_14 = *(undefined4 **)PTR___stack_chk_guard_000b1fd4;\n  iVar1 = (*(code *)PTR_FUN_000b12e8)\n                    (*(int *)(param_1 + 0x2c),*(undefined4 *)(*(int *)(param_1 + 0x2c) + 0x198),\n                     *(int *)(param_1 + 0x14) +\n                     (*(int *)(param_1 + 0x1c) - *(int *)(param_1 + 0x18)),*(int *)(param_1 + 0x18),\n                     &local_18);\n  if (iVar1 == 0) {\n    if (*(int *)(param_1 + 0x18) == local_18) {\n      (**(code **)PTR_PTR_free_000b1144)(*(undefined4 *)(param_1 + 0x14));\n      *(undefined4 *)(param_1 + 0x14) = 0;\n      *(undefined4 *)(param_1 + 0x1c) = 0;\n      *(undefined4 *)(param_1 + 0x18) = 0;\n      (*(code *)PTR_FUN_000b1174)(&local_20);\n      *(undefined4 *)(param_1 + 0x20) = local_20;\n      *(undefined4 *)(param_1 + 0x24) = local_1c;\n    }\n    else {\n      *(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) - local_18;\n    }\n  }\n  if (local_14 == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {\n    return iVar1;\n  }\n  puVar2 = local_14;\n  puVar3 = PTR___stack_chk_fail_000b1c48;\n  (*(code *)PTR___stack_chk_fail_000b1c48)();\n  (*(code *)**(undefined4 **)(puVar3 + 0x4cab4))(*puVar2);\n  *puVar2 = 0;\n  return 0;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined4 local_20;" (type_identifier "undefined4") (identifier "local_20") (; ";")) (declaration "undefined4 local_1c;" (type_identifier "undefined4") (identifier "local_1c") (; ";")) (declaration "int local_18;" (primitive_type "int") (identifier "local_18") (; ";")) (declaration "undefined4 *local_14;" (type_identifier "undefined4") (pointer_declarator "*local_14" (* "*") (identifier "local_14")) (; ";")) (expression_statement "local_14 = *(undefined4 **)PTR___stack_chk_guard_000b1fd4;" (assignment_expression "local_14 = *(undefined4 **)PTR___stack_chk_guard_000b1fd4" (identifier "local_14") (= "=") (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_000b1fd4" (* "*") (cast_expression "(undefined4 **)PTR___stack_chk_guard_000b1fd4" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_000b1fd4")))) (; ";")) (expression_statement "iVar1 = (*(code *)PTR_FUN_000b12e8)\n                    (*(int *)(param_1 + 0x2c),*(undefined4 *)(*(int *)(param_1 + 0x2c) + 0x198),\n                     *(int *)(param_1 + 0x14) +\n                     (*(int *)(param_1 + 0x1c) - *(int *)(param_1 + 0x18)),*(int *)(param_1 + 0x18),\n                     &local_18);" (assignment_expression "iVar1 = (*(code *)PTR_FUN_000b12e8)\n                    (*(int *)(param_1 + 0x2c),*(undefined4 *)(*(int *)(param_1 + 0x2c) + 0x198),\n                     *(int *)(param_1 + 0x14) +\n                     (*(int *)(param_1 + 0x1c) - *(int *)(param_1 + 0x18)),*(int *)(param_1 + 0x18),\n                     &local_18)" (identifier "iVar1") (= "=") (call_expression "(*(code *)PTR_FUN_000b12e8)\n                    (*(int *)(param_1 + 0x2c),*(undefined4 *)(*(int *)(param_1 + 0x2c) + 0x198),\n                     *(int *)(param_1 + 0x14) +\n                     (*(int *)(param_1 + 0x1c) - *(int *)(param_1 + 0x18)),*(int *)(param_1 + 0x18),\n                     &local_18)" (parenthesized_expression "(*(code *)PTR_FUN_000b12e8)" (( "(") (pointer_expression "*(code *)PTR_FUN_000b12e8" (* "*") (cast_expression "(code *)PTR_FUN_000b12e8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_000b12e8"))) () ")")) (argument_list "(*(int *)(param_1 + 0x2c),*(undefined4 *)(*(int *)(param_1 + 0x2c) + 0x198),\n                     *(int *)(param_1 + 0x14) +\n                     (*(int *)(param_1 + 0x1c) - *(int *)(param_1 + 0x18)),*(int *)(param_1 + 0x18),\n                     &local_18)" (( "(") (pointer_expression "*(int *)(param_1 + 0x2c)" (* "*") (cast_expression "(int *)(param_1 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0x2c) + 0x198)" (* "*") (cast_expression "(undefined4 *)(*(int *)(param_1 + 0x2c) + 0x198)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2c) + 0x198)" (( "(") (binary_expression "*(int *)(param_1 + 0x2c) + 0x198" (pointer_expression "*(int *)(param_1 + 0x2c)" (* "*") (cast_expression "(int *)(param_1 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")")))) (+ "+") (number_literal "0x198")) () ")")))) (, ",") (binary_expression "*(int *)(param_1 + 0x14) +\n                     (*(int *)(param_1 + 0x1c) - *(int *)(param_1 + 0x18))" (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (parenthesized_expression "(*(int *)(param_1 + 0x1c) - *(int *)(param_1 + 0x18))" (( "(") (binary_expression "*(int *)(param_1 + 0x1c) - *(int *)(param_1 + 0x18)" (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (- "-") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) () ")"))) (, ",") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (pointer_expression "&local_18" (& "&") (identifier "local_18")) () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n    if (*(int *)(param_1 + 0x18) == local_18) {\n      (**(code **)PTR_PTR_free_000b1144)(*(undefined4 *)(param_1 + 0x14));\n      *(undefined4 *)(param_1 + 0x14) = 0;\n      *(undefined4 *)(param_1 + 0x1c) = 0;\n      *(undefined4 *)(param_1 + 0x18) = 0;\n      (*(code *)PTR_FUN_000b1174)(&local_20);\n      *(undefined4 *)(param_1 + 0x20) = local_20;\n      *(undefined4 *)(param_1 + 0x24) = local_1c;\n    }\n    else {\n      *(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) - local_18;\n    }\n  }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (*(int *)(param_1 + 0x18) == local_18) {\n      (**(code **)PTR_PTR_free_000b1144)(*(undefined4 *)(param_1 + 0x14));\n      *(undefined4 *)(param_1 + 0x14) = 0;\n      *(undefined4 *)(param_1 + 0x1c) = 0;\n      *(undefined4 *)(param_1 + 0x18) = 0;\n      (*(code *)PTR_FUN_000b1174)(&local_20);\n      *(undefined4 *)(param_1 + 0x20) = local_20;\n      *(undefined4 *)(param_1 + 0x24) = local_1c;\n    }\n    else {\n      *(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) - local_18;\n    }\n  }" ({ "{") (if_statement "if (*(int *)(param_1 + 0x18) == local_18) {\n      (**(code **)PTR_PTR_free_000b1144)(*(undefined4 *)(param_1 + 0x14));\n      *(undefined4 *)(param_1 + 0x14) = 0;\n      *(undefined4 *)(param_1 + 0x1c) = 0;\n      *(undefined4 *)(param_1 + 0x18) = 0;\n      (*(code *)PTR_FUN_000b1174)(&local_20);\n      *(undefined4 *)(param_1 + 0x20) = local_20;\n      *(undefined4 *)(param_1 + 0x24) = local_1c;\n    }\n    else {\n      *(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) - local_18;\n    }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x18) == local_18)" (( "(") (binary_expression "*(int *)(param_1 + 0x18) == local_18" (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (== "==") (identifier "local_18")) () ")")) (compound_statement "{\n      (**(code **)PTR_PTR_free_000b1144)(*(undefined4 *)(param_1 + 0x14));\n      *(undefined4 *)(param_1 + 0x14) = 0;\n      *(undefined4 *)(param_1 + 0x1c) = 0;\n      *(undefined4 *)(param_1 + 0x18) = 0;\n      (*(code *)PTR_FUN_000b1174)(&local_20);\n      *(undefined4 *)(param_1 + 0x20) = local_20;\n      *(undefined4 *)(param_1 + 0x24) = local_1c;\n    }" ({ "{") (expression_statement "(**(code **)PTR_PTR_free_000b1144)(*(undefined4 *)(param_1 + 0x14));" (call_expression "(**(code **)PTR_PTR_free_000b1144)(*(undefined4 *)(param_1 + 0x14))" (parenthesized_expression "(**(code **)PTR_PTR_free_000b1144)" (( "(") (pointer_expression "**(code **)PTR_PTR_free_000b1144" (* "*") (pointer_expression "*(code **)PTR_PTR_free_000b1144" (* "*") (cast_expression "(code **)PTR_PTR_free_000b1144" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_PTR_free_000b1144")))) () ")")) (argument_list "(*(undefined4 *)(param_1 + 0x14))" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x14)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) () ")"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x14) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x14)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x18) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x18)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(*(code *)PTR_FUN_000b1174)(&local_20);" (call_expression "(*(code *)PTR_FUN_000b1174)(&local_20)" (parenthesized_expression "(*(code *)PTR_FUN_000b1174)" (( "(") (pointer_expression "*(code *)PTR_FUN_000b1174" (* "*") (cast_expression "(code *)PTR_FUN_000b1174" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_000b1174"))) () ")")) (argument_list "(&local_20)" (( "(") (pointer_expression "&local_20" (& "&") (identifier "local_20")) () ")"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x20) = local_20;" (assignment_expression "*(undefined4 *)(param_1 + 0x20) = local_20" (pointer_expression "*(undefined4 *)(param_1 + 0x20)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "local_20")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x24) = local_1c;" (assignment_expression "*(undefined4 *)(param_1 + 0x24) = local_1c" (pointer_expression "*(undefined4 *)(param_1 + 0x24)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (identifier "local_1c")) (; ";")) (} "}")) (else_clause "else {\n      *(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) - local_18;\n    }" (else "else") (compound_statement "{\n      *(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) - local_18;\n    }" ({ "{") (expression_statement "*(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) - local_18;" (assignment_expression "*(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) - local_18" (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 0x18) - local_18" (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (- "-") (identifier "local_18"))) (; ";")) (} "}")))) (} "}"))) (if_statement "if (local_14 == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {\n    return iVar1;\n  }" (if "if") (parenthesized_expression "(local_14 == *(undefined4 **)PTR___stack_chk_guard_000b1fd4)" (( "(") (binary_expression "local_14 == *(undefined4 **)PTR___stack_chk_guard_000b1fd4" (identifier "local_14") (== "==") (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_000b1fd4" (* "*") (cast_expression "(undefined4 **)PTR___stack_chk_guard_000b1fd4" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_000b1fd4")))) () ")")) (compound_statement "{\n    return iVar1;\n  }" ({ "{") (return_statement "return iVar1;" (return "return") (identifier "iVar1") (; ";")) (} "}"))) (expression_statement "puVar2 = local_14;" (assignment_expression "puVar2 = local_14" (identifier "puVar2") (= "=") (identifier "local_14")) (; ";")) (expression_statement "puVar3 = PTR___stack_chk_fail_000b1c48;" (assignment_expression "puVar3 = PTR___stack_chk_fail_000b1c48" (identifier "puVar3") (= "=") (identifier "PTR___stack_chk_fail_000b1c48")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000b1c48)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b1c48)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b1c48)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000b1c48" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000b1c48" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000b1c48"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "(*(code *)**(undefined4 **)(puVar3 + 0x4cab4))(*puVar2);" (call_expression "(*(code *)**(undefined4 **)(puVar3 + 0x4cab4))(*puVar2)" (parenthesized_expression "(*(code *)**(undefined4 **)(puVar3 + 0x4cab4))" (( "(") (pointer_expression "*(code *)**(undefined4 **)(puVar3 + 0x4cab4)" (* "*") (cast_expression "(code *)**(undefined4 **)(puVar3 + 0x4cab4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(puVar3 + 0x4cab4)" (* "*") (pointer_expression "*(undefined4 **)(puVar3 + 0x4cab4)" (* "*") (cast_expression "(undefined4 **)(puVar3 + 0x4cab4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + 0x4cab4)" (( "(") (binary_expression "puVar3 + 0x4cab4" (identifier "puVar3") (+ "+") (number_literal "0x4cab4")) () ")"))))))) () ")")) (argument_list "(*puVar2)" (( "(") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) () ")"))) (; ";")) (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (number_literal "0")) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

type_1 function_1(type_2 *pp)

{
  type_1 var_1;
  type_3 *puVar2;
  type_4 *var_5;
  type_5 tStack_20;
  int iStack_1c;
  ssize_t var_3;
  type_3 *var_4;
  
  var_4 = *(type_3 **)PTR___stack_chk_guard_000b1fd4;
  var_1 = (*(type_6 *)PTR_Curl_write_000b12e8)
                    (pp->conn,pp->conn->sock[0],pp->sendthis + (pp->sendsize - pp->sendleft),
                     pp->sendleft,&var_3);
  if (var_1 == var_2) {
    if (pp->sendleft == var_3) {
      (**(type_6 **)PTR_Curl_cfree_000b1144)(pp->sendthis);
      pp->sendthis = (char *)0x0;
      pp->sendsize = 0;
      pp->sendleft = 0;
      (*(type_6 *)PTR_Curl_now_000b1174)(&tStack_20);
      (pp->response).tv_sec = tStack_20;
      (pp->response).tv_usec = iStack_1c;
    }
    else {
      pp->sendleft = pp->sendleft - var_3;
    }
  }
  if (var_4 == *(type_3 **)PTR___stack_chk_guard_000b1fd4) {
    return var_1;
  }
  puVar2 = var_4;
  var_5 = PTR___stack_chk_fail_000b1c48;
  (*(type_6 *)PTR___stack_chk_fail_000b1c48)();
  (*(type_6 *)**(type_3 **)(var_5 + 0x4cab4))(*puVar2);
  *puVar2 = 0;
  return var_2;
}


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

int MASKED(int param_1)

{
  int iVar1;
  undefined4 *puVar2;
  undefined *puVar3;
  undefined4 local_20;
  undefined4 local_1c;
  int local_18;
  undefined4 *local_14;
  
  local_14 = *(undefined4 **)PTR___stack_chk_guard_000b1fd4;
  iVar1 = (*(code *)PTR_FUN_000b12e8)
                    (*(int *)(param_1 + 0x2c),*(undefined4 *)(*(int *)(param_1 + 0x2c) + 0x198),
                     *(int *)(param_1 + 0x14) +
                     (*(int *)(param_1 + 0x1c) - *(int *)(param_1 + 0x18)),*(int *)(param_1 + 0x18),
                     &local_18);
  if (iVar1 == 0) {
    if (*(int *)(param_1 + 0x18) == local_18) {
      (**(code **)PTR_PTR_free_000b1144)(*(undefined4 *)(param_1 + 0x14));
      *(undefined4 *)(param_1 + 0x14) = 0;
      *(undefined4 *)(param_1 + 0x1c) = 0;
      *(undefined4 *)(param_1 + 0x18) = 0;
      (*(code *)PTR_FUN_000b1174)(&local_20);
      *(undefined4 *)(param_1 + 0x20) = local_20;
      *(undefined4 *)(param_1 + 0x24) = local_1c;
    }
    else {
      *(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) - local_18;
    }
  }
  if (local_14 == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {
    return iVar1;
  }
  puVar2 = local_14;
  puVar3 = PTR___stack_chk_fail_000b1c48;
  (*(code *)PTR___stack_chk_fail_000b1c48)();
  (*(code *)**(undefined4 **)(puVar3 + 0x4cab4))(*puVar2);
  *puVar2 = 0;
  return 0;
}

