
int do_add_ioctl(int cmd,char *basedev,ip_tunnel_parm *p)

{
  int iVar1;
  code *pcVar2;
  ifreq ifr;
  
  iVar1 = *(int *)PTR___stack_chk_guard_00132164;
  pcVar2 = (code *)PTR_strncpy_IFNAMSIZ_001314bc;
  if (cmd != 0x89f3) goto LAB_0005fa84;
  ifr.ifr_ifru.ifru_data = p->name;
  if (p->name[0] == '\0') {
    (*(code *)PTR_strncpy_IFNAMSIZ_001314bc)(&ifr);
    p = (ip_tunnel_parm *)(*(code *)PTR_xsocket_001314b4)(2,1,0);
  }
  else {
    (*(code *)PTR_strncpy_IFNAMSIZ_001314bc)(&ifr,p);
    p = (ip_tunnel_parm *)(*(code *)PTR_xsocket_001314b4)(2,1,0);
  }
  (*(code *)PTR_bb_xioctl_00131430)(p,0x89f3,&ifr,PTR_bdcommands_4__name_4__001311a4 + -0x3164);
  while( true ) {
    (*(code *)PTR_close_00131ca8)(p);
    if (iVar1 == *(int *)PTR___stack_chk_guard_00132164) break;
    pcVar2 = (code *)PTR___stack_chk_fail_001320e4;
    (*(code *)PTR___stack_chk_fail_001320e4)();
LAB_0005fa84:
    (*pcVar2)(&ifr);
    ifr.ifr_ifru.ifru_data = p->name;
    p = (ip_tunnel_parm *)(*(code *)PTR_xsocket_001314b4)(2,1,0);
    (*(code *)PTR_bb_xioctl_00131430)(p,0x89f1,&ifr,PTR_bdcommands_4__name_4__001311a4 + -0x3154);
  }
  return 0;
}



undefined4 FUN_0005f9ac(int param_1,undefined4 param_2,char *param_3)

{
  code *pcVar1;
  undefined1 auStack_34 [16];
  char *local_24;
  int local_14;
  
  local_14 = *(int *)PTR___stack_chk_guard_00132164;
  pcVar1 = (code *)PTR_FUN_001314bc;
  if (param_1 != 0x89f3) goto LAB_0005fa84;
  local_24 = param_3;
  if (*param_3 == '\0') {
    (*(code *)PTR_FUN_001314bc)(auStack_34);
    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);
  }
  else {
    (*(code *)PTR_FUN_001314bc)(auStack_34,param_3);
    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);
  }
  (*(code *)PTR_FUN_00131430)(param_3,0x89f3,auStack_34,PTR_FUN_001311a4 + -0x3164);
  while( true ) {
    (*(code *)PTR_close_00131ca8)(param_3);
    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;
    pcVar1 = (code *)PTR___stack_chk_fail_001320e4;
    (*(code *)PTR___stack_chk_fail_001320e4)();
LAB_0005fa84:
    (*pcVar1)(auStack_34);
    local_24 = param_3;
    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);
    (*(code *)PTR_FUN_00131430)(param_3,0x89f1,auStack_34,PTR_FUN_001311a4 + -0x3154);
  }
  return 0;
}


lui gp,0xe
addiu gp,gp,-0x685c
addu gp,gp,t9
addiu sp,sp,-0x50
sw ra,0x4c(sp)
sw s1,0x48(sp)
sw s0,0x44(sp)
sw gp,0x10(sp)
or s0,a2,zero
lw v0,-0x6fec(gp)
lw v0,0x0(v0)
sw v0,0x3c(sp)
ori v0,zero,0x89f3
bne a0,v0,0x0005fa84
_lw t9,-0x7c94(gp)
lbu v0,0x0(a2)
beq v0,zero,0x0005fae8
_addiu a0,sp,0x1c
or a1,a2,zero
lw t9,-0x7c94(gp)
jalr t9
_nop
lw gp,0x10(sp)
sw s0,0x2c(sp)
or a2,zero,zero
li a1,0x1
li a0,0x2
lw t9,-0x7c9c(gp)
jalr t9
_nop
lw gp,0x10(sp)
or s0,v0,zero
lw a3,-0x7fac(gp)
addiu a3,a3,-0x3164
addiu a2,sp,0x1c
ori a1,zero,0x89f3
or a0,s0,zero
lw t9,-0x7d20(gp)
jalr t9
_nop
lw gp,0x10(sp)
or a0,s0,zero
lw t9,-0x74a8(gp)
jalr t9
_nop
lw gp,0x10(sp)
or v0,zero,zero
lw a0,0x3c(sp)
lw v1,-0x6fec(gp)
lw v1,0x0(v1)
beq a0,v1,0x0005fb20
_lw t9,-0x706c(gp)
jalr t9
_nop
addiu s1,sp,0x1c
or a0,s1,zero
jalr t9
_nop
lw gp,0x10(sp)
sw s0,0x2c(sp)
or a2,zero,zero
li a1,0x1
li a0,0x2
lw t9,-0x7c9c(gp)
jalr t9
_nop
lw gp,0x10(sp)
or s0,v0,zero
lw a3,-0x7fac(gp)
addiu a3,a3,-0x3154
or a2,s1,zero
ori a1,zero,0x89f1
or a0,v0,zero
lw t9,-0x7d20(gp)
jalr t9
_nop
lw gp,0x10(sp)
b 0x0005fa54
_or a0,s0,zero
lw t9,-0x7c94(gp)
jalr t9
_nop
lw gp,0x10(sp)
sw s0,0x2c(sp)
or a2,zero,zero
li a1,0x1
li a0,0x2
lw t9,-0x7c9c(gp)
jalr t9
_nop
lw gp,0x10(sp)
b 0x0005fa2c
_or s0,v0,zero
lw ra,0x4c(sp)
lw s1,0x48(sp)
lw s0,0x44(sp)
jr ra
_addiu sp,sp,0x50
(translation_unit "undefined4 FUN_0005f9ac(int param_1,undefined4 param_2,char *param_3)\n\n{\n  code *pcVar1;\n  undefined1 auStack_34 [16];\n  char *local_24;\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_00132164;\n  pcVar1 = (code *)PTR_FUN_001314bc;\n  if (param_1 != 0x89f3) goto LAB_0005fa84;\n  local_24 = param_3;\n  if (*param_3 == '\0') {\n    (*(code *)PTR_FUN_001314bc)(auStack_34);\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n  }\n  else {\n    (*(code *)PTR_FUN_001314bc)(auStack_34,param_3);\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n  }\n  (*(code *)PTR_FUN_00131430)(param_3,0x89f3,auStack_34,PTR_FUN_001311a4 + -0x3164);\n  while( true ) {\n    (*(code *)PTR_close_00131ca8)(param_3);\n    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;\n    pcVar1 = (code *)PTR___stack_chk_fail_001320e4;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0005fa84:\n    (*pcVar1)(auStack_34);\n    local_24 = param_3;\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n    (*(code *)PTR_FUN_00131430)(param_3,0x89f1,auStack_34,PTR_FUN_001311a4 + -0x3154);\n  }\n  return 0;\n}\n\n" (function_definition "undefined4 FUN_0005f9ac(int param_1,undefined4 param_2,char *param_3)\n\n{\n  code *pcVar1;\n  undefined1 auStack_34 [16];\n  char *local_24;\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_00132164;\n  pcVar1 = (code *)PTR_FUN_001314bc;\n  if (param_1 != 0x89f3) goto LAB_0005fa84;\n  local_24 = param_3;\n  if (*param_3 == '\0') {\n    (*(code *)PTR_FUN_001314bc)(auStack_34);\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n  }\n  else {\n    (*(code *)PTR_FUN_001314bc)(auStack_34,param_3);\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n  }\n  (*(code *)PTR_FUN_00131430)(param_3,0x89f3,auStack_34,PTR_FUN_001311a4 + -0x3164);\n  while( true ) {\n    (*(code *)PTR_close_00131ca8)(param_3);\n    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;\n    pcVar1 = (code *)PTR___stack_chk_fail_001320e4;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0005fa84:\n    (*pcVar1)(auStack_34);\n    local_24 = param_3;\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n    (*(code *)PTR_FUN_00131430)(param_3,0x89f1,auStack_34,PTR_FUN_001311a4 + -0x3154);\n  }\n  return 0;\n}" type_identifier (function_declarator "FUN_0005f9ac(int param_1,undefined4 param_2,char *param_3)" identifier (parameter_list "(int param_1,undefined4 param_2,char *param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  code *pcVar1;\n  undefined1 auStack_34 [16];\n  char *local_24;\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_00132164;\n  pcVar1 = (code *)PTR_FUN_001314bc;\n  if (param_1 != 0x89f3) goto LAB_0005fa84;\n  local_24 = param_3;\n  if (*param_3 == '\0') {\n    (*(code *)PTR_FUN_001314bc)(auStack_34);\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n  }\n  else {\n    (*(code *)PTR_FUN_001314bc)(auStack_34,param_3);\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n  }\n  (*(code *)PTR_FUN_00131430)(param_3,0x89f3,auStack_34,PTR_FUN_001311a4 + -0x3164);\n  while( true ) {\n    (*(code *)PTR_close_00131ca8)(param_3);\n    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;\n    pcVar1 = (code *)PTR___stack_chk_fail_001320e4;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0005fa84:\n    (*pcVar1)(auStack_34);\n    local_24 = param_3;\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n    (*(code *)PTR_FUN_00131430)(param_3,0x89f1,auStack_34,PTR_FUN_001311a4 + -0x3154);\n  }\n  return 0;\n}" { (declaration "code *pcVar1;" type_identifier (pointer_declarator "*pcVar1" * identifier) ;) (declaration "undefined1 auStack_34 [16];" type_identifier (array_declarator "auStack_34 [16]" identifier [ number_literal ]) ;) (declaration "char *local_24;" primitive_type (pointer_declarator "*local_24" * identifier) ;) (declaration "int local_14;" primitive_type identifier ;) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_00132164;" (assignment_expression "local_14 = *(int *)PTR___stack_chk_guard_00132164" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00132164" * (cast_expression "(int *)PTR___stack_chk_guard_00132164" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar1 = (code *)PTR_FUN_001314bc;" (assignment_expression "pcVar1 = (code *)PTR_FUN_001314bc" identifier = (cast_expression "(code *)PTR_FUN_001314bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (param_1 != 0x89f3) goto LAB_0005fa84;" if (parenthesized_expression "(param_1 != 0x89f3)" ( (binary_expression "param_1 != 0x89f3" identifier != number_literal) )) (goto_statement "goto LAB_0005fa84;" goto statement_identifier ;)) (expression_statement "local_24 = param_3;" (assignment_expression "local_24 = param_3" identifier = identifier) ;) (if_statement "if (*param_3 == '\0') {\n    (*(code *)PTR_FUN_001314bc)(auStack_34);\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n  }\n  else {\n    (*(code *)PTR_FUN_001314bc)(auStack_34,param_3);\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n  }" if (parenthesized_expression "(*param_3 == '\0')" ( (binary_expression "*param_3 == '\0'" (pointer_expression "*param_3" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    (*(code *)PTR_FUN_001314bc)(auStack_34);\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n  }" { (expression_statement "(*(code *)PTR_FUN_001314bc)(auStack_34);" (call_expression "(*(code *)PTR_FUN_001314bc)(auStack_34)" (parenthesized_expression "(*(code *)PTR_FUN_001314bc)" ( (pointer_expression "*(code *)PTR_FUN_001314bc" * (cast_expression "(code *)PTR_FUN_001314bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_34)" ( identifier ))) ;) (expression_statement "param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);" (assignment_expression "param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0)" identifier = (cast_expression "(char *)(*(code *)PTR_FUN_001314b4)(2,1,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_FUN_001314b4)(2,1,0)" (parenthesized_expression "(*(code *)PTR_FUN_001314b4)" ( (pointer_expression "*(code *)PTR_FUN_001314b4" * (cast_expression "(code *)PTR_FUN_001314b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(2,1,0)" ( number_literal , number_literal , number_literal ))))) ;) }) (else_clause "else {\n    (*(code *)PTR_FUN_001314bc)(auStack_34,param_3);\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n  }" else (compound_statement "{\n    (*(code *)PTR_FUN_001314bc)(auStack_34,param_3);\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n  }" { (expression_statement "(*(code *)PTR_FUN_001314bc)(auStack_34,param_3);" (call_expression "(*(code *)PTR_FUN_001314bc)(auStack_34,param_3)" (parenthesized_expression "(*(code *)PTR_FUN_001314bc)" ( (pointer_expression "*(code *)PTR_FUN_001314bc" * (cast_expression "(code *)PTR_FUN_001314bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_34,param_3)" ( identifier , identifier ))) ;) (expression_statement "param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);" (assignment_expression "param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0)" identifier = (cast_expression "(char *)(*(code *)PTR_FUN_001314b4)(2,1,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_FUN_001314b4)(2,1,0)" (parenthesized_expression "(*(code *)PTR_FUN_001314b4)" ( (pointer_expression "*(code *)PTR_FUN_001314b4" * (cast_expression "(code *)PTR_FUN_001314b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(2,1,0)" ( number_literal , number_literal , number_literal ))))) ;) }))) (expression_statement "(*(code *)PTR_FUN_00131430)(param_3,0x89f3,auStack_34,PTR_FUN_001311a4 + -0x3164);" (call_expression "(*(code *)PTR_FUN_00131430)(param_3,0x89f3,auStack_34,PTR_FUN_001311a4 + -0x3164)" (parenthesized_expression "(*(code *)PTR_FUN_00131430)" ( (pointer_expression "*(code *)PTR_FUN_00131430" * (cast_expression "(code *)PTR_FUN_00131430" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_3,0x89f3,auStack_34,PTR_FUN_001311a4 + -0x3164)" ( identifier , number_literal , identifier , (binary_expression "PTR_FUN_001311a4 + -0x3164" identifier + number_literal) ))) ;) (while_statement "while( true ) {\n    (*(code *)PTR_close_00131ca8)(param_3);\n    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;\n    pcVar1 = (code *)PTR___stack_chk_fail_001320e4;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0005fa84:\n    (*pcVar1)(auStack_34);\n    local_24 = param_3;\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n    (*(code *)PTR_FUN_00131430)(param_3,0x89f1,auStack_34,PTR_FUN_001311a4 + -0x3154);\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    (*(code *)PTR_close_00131ca8)(param_3);\n    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;\n    pcVar1 = (code *)PTR___stack_chk_fail_001320e4;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0005fa84:\n    (*pcVar1)(auStack_34);\n    local_24 = param_3;\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n    (*(code *)PTR_FUN_00131430)(param_3,0x89f1,auStack_34,PTR_FUN_001311a4 + -0x3154);\n  }" { (expression_statement "(*(code *)PTR_close_00131ca8)(param_3);" (call_expression "(*(code *)PTR_close_00131ca8)(param_3)" (parenthesized_expression "(*(code *)PTR_close_00131ca8)" ( (pointer_expression "*(code *)PTR_close_00131ca8" * (cast_expression "(code *)PTR_close_00131ca8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_3)" ( identifier ))) ;) (if_statement "if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;" if (parenthesized_expression "(local_14 == *(int *)PTR___stack_chk_guard_00132164)" ( (binary_expression "local_14 == *(int *)PTR___stack_chk_guard_00132164" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_00132164" * (cast_expression "(int *)PTR___stack_chk_guard_00132164" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (break_statement "break;" break ;)) (expression_statement "pcVar1 = (code *)PTR___stack_chk_fail_001320e4;" (assignment_expression "pcVar1 = (code *)PTR___stack_chk_fail_001320e4" identifier = (cast_expression "(code *)PTR___stack_chk_fail_001320e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_001320e4)();" (call_expression "(*(code *)PTR___stack_chk_fail_001320e4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_001320e4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_001320e4" * (cast_expression "(code *)PTR___stack_chk_fail_001320e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_0005fa84:\n    (*pcVar1)(auStack_34);" statement_identifier : (expression_statement "(*pcVar1)(auStack_34);" (call_expression "(*pcVar1)(auStack_34)" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "(auStack_34)" ( identifier ))) ;)) (expression_statement "local_24 = param_3;" (assignment_expression "local_24 = param_3" identifier = identifier) ;) (expression_statement "param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);" (assignment_expression "param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0)" identifier = (cast_expression "(char *)(*(code *)PTR_FUN_001314b4)(2,1,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_FUN_001314b4)(2,1,0)" (parenthesized_expression "(*(code *)PTR_FUN_001314b4)" ( (pointer_expression "*(code *)PTR_FUN_001314b4" * (cast_expression "(code *)PTR_FUN_001314b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(2,1,0)" ( number_literal , number_literal , number_literal ))))) ;) (expression_statement "(*(code *)PTR_FUN_00131430)(param_3,0x89f1,auStack_34,PTR_FUN_001311a4 + -0x3154);" (call_expression "(*(code *)PTR_FUN_00131430)(param_3,0x89f1,auStack_34,PTR_FUN_001311a4 + -0x3154)" (parenthesized_expression "(*(code *)PTR_FUN_00131430)" ( (pointer_expression "*(code *)PTR_FUN_00131430" * (cast_expression "(code *)PTR_FUN_00131430" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_3,0x89f1,auStack_34,PTR_FUN_001311a4 + -0x3154)" ( identifier , number_literal , identifier , (binary_expression "PTR_FUN_001311a4 + -0x3154" identifier + number_literal) ))) ;) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "int do_add_ioctl(int cmd,char *basedev,ip_tunnel_parm *p)\n\n{\n  int iVar1;\n  code *pcVar2;\n  ifreq ifr;\n  \n  iVar1 = *(int *)PTR___stack_chk_guard_00132164;\n  pcVar2 = (code *)PTR_strncpy_IFNAMSIZ_001314bc;\n  if (cmd != 0x89f3) goto LAB_0005fa84;\n  ifr.ifr_ifru.ifru_data = p->name;\n  if (p->name[0] == '\0') {\n    (*(code *)PTR_strncpy_IFNAMSIZ_001314bc)(&ifr);\n    p = (ip_tunnel_parm *)(*(code *)PTR_xsocket_001314b4)(2,1,0);\n  }\n  else {\n    (*(code *)PTR_strncpy_IFNAMSIZ_001314bc)(&ifr,p);\n    p = (ip_tunnel_parm *)(*(code *)PTR_xsocket_001314b4)(2,1,0);\n  }\n  (*(code *)PTR_bb_xioctl_00131430)(p,0x89f3,&ifr,PTR_bdcommands_4__name_4__001311a4 + -0x3164);\n  while( true ) {\n    (*(code *)PTR_close_00131ca8)(p);\n    if (iVar1 == *(int *)PTR___stack_chk_guard_00132164) break;\n    pcVar2 = (code *)PTR___stack_chk_fail_001320e4;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0005fa84:\n    (*pcVar2)(&ifr);\n    ifr.ifr_ifru.ifru_data = p->name;\n    p = (ip_tunnel_parm *)(*(code *)PTR_xsocket_001314b4)(2,1,0);\n    (*(code *)PTR_bb_xioctl_00131430)(p,0x89f1,&ifr,PTR_bdcommands_4__name_4__001311a4 + -0x3154);\n  }\n  return 0;\n}\n\n" (function_definition "int do_add_ioctl(int cmd,char *basedev,ip_tunnel_parm *p)\n\n{\n  int iVar1;\n  code *pcVar2;\n  ifreq ifr;\n  \n  iVar1 = *(int *)PTR___stack_chk_guard_00132164;\n  pcVar2 = (code *)PTR_strncpy_IFNAMSIZ_001314bc;\n  if (cmd != 0x89f3) goto LAB_0005fa84;\n  ifr.ifr_ifru.ifru_data = p->name;\n  if (p->name[0] == '\0') {\n    (*(code *)PTR_strncpy_IFNAMSIZ_001314bc)(&ifr);\n    p = (ip_tunnel_parm *)(*(code *)PTR_xsocket_001314b4)(2,1,0);\n  }\n  else {\n    (*(code *)PTR_strncpy_IFNAMSIZ_001314bc)(&ifr,p);\n    p = (ip_tunnel_parm *)(*(code *)PTR_xsocket_001314b4)(2,1,0);\n  }\n  (*(code *)PTR_bb_xioctl_00131430)(p,0x89f3,&ifr,PTR_bdcommands_4__name_4__001311a4 + -0x3164);\n  while( true ) {\n    (*(code *)PTR_close_00131ca8)(p);\n    if (iVar1 == *(int *)PTR___stack_chk_guard_00132164) break;\n    pcVar2 = (code *)PTR___stack_chk_fail_001320e4;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0005fa84:\n    (*pcVar2)(&ifr);\n    ifr.ifr_ifru.ifru_data = p->name;\n    p = (ip_tunnel_parm *)(*(code *)PTR_xsocket_001314b4)(2,1,0);\n    (*(code *)PTR_bb_xioctl_00131430)(p,0x89f1,&ifr,PTR_bdcommands_4__name_4__001311a4 + -0x3154);\n  }\n  return 0;\n}" primitive_type (function_declarator "do_add_ioctl(int cmd,char *basedev,ip_tunnel_parm *p)" identifier (parameter_list "(int cmd,char *basedev,ip_tunnel_parm *p)" ( (parameter_declaration "int cmd" primitive_type identifier) , (parameter_declaration "char *basedev" primitive_type (pointer_declarator "*basedev" * identifier)) , (parameter_declaration "ip_tunnel_parm *p" type_identifier (pointer_declarator "*p" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  code *pcVar2;\n  ifreq ifr;\n  \n  iVar1 = *(int *)PTR___stack_chk_guard_00132164;\n  pcVar2 = (code *)PTR_strncpy_IFNAMSIZ_001314bc;\n  if (cmd != 0x89f3) goto LAB_0005fa84;\n  ifr.ifr_ifru.ifru_data = p->name;\n  if (p->name[0] == '\0') {\n    (*(code *)PTR_strncpy_IFNAMSIZ_001314bc)(&ifr);\n    p = (ip_tunnel_parm *)(*(code *)PTR_xsocket_001314b4)(2,1,0);\n  }\n  else {\n    (*(code *)PTR_strncpy_IFNAMSIZ_001314bc)(&ifr,p);\n    p = (ip_tunnel_parm *)(*(code *)PTR_xsocket_001314b4)(2,1,0);\n  }\n  (*(code *)PTR_bb_xioctl_00131430)(p,0x89f3,&ifr,PTR_bdcommands_4__name_4__001311a4 + -0x3164);\n  while( true ) {\n    (*(code *)PTR_close_00131ca8)(p);\n    if (iVar1 == *(int *)PTR___stack_chk_guard_00132164) break;\n    pcVar2 = (code *)PTR___stack_chk_fail_001320e4;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0005fa84:\n    (*pcVar2)(&ifr);\n    ifr.ifr_ifru.ifru_data = p->name;\n    p = (ip_tunnel_parm *)(*(code *)PTR_xsocket_001314b4)(2,1,0);\n    (*(code *)PTR_bb_xioctl_00131430)(p,0x89f1,&ifr,PTR_bdcommands_4__name_4__001311a4 + -0x3154);\n  }\n  return 0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "code *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "ifreq ifr;" type_identifier identifier ;) (expression_statement "iVar1 = *(int *)PTR___stack_chk_guard_00132164;" (assignment_expression "iVar1 = *(int *)PTR___stack_chk_guard_00132164" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00132164" * (cast_expression "(int *)PTR___stack_chk_guard_00132164" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar2 = (code *)PTR_strncpy_IFNAMSIZ_001314bc;" (assignment_expression "pcVar2 = (code *)PTR_strncpy_IFNAMSIZ_001314bc" identifier = (cast_expression "(code *)PTR_strncpy_IFNAMSIZ_001314bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (cmd != 0x89f3) goto LAB_0005fa84;" if (parenthesized_expression "(cmd != 0x89f3)" ( (binary_expression "cmd != 0x89f3" identifier != number_literal) )) (goto_statement "goto LAB_0005fa84;" goto statement_identifier ;)) (expression_statement "ifr.ifr_ifru.ifru_data = p->name;" (assignment_expression "ifr.ifr_ifru.ifru_data = p->name" (field_expression "ifr.ifr_ifru.ifru_data" (field_expression "ifr.ifr_ifru" identifier . field_identifier) . field_identifier) = (field_expression "p->name" identifier -> field_identifier)) ;) (if_statement "if (p->name[0] == '\0') {\n    (*(code *)PTR_strncpy_IFNAMSIZ_001314bc)(&ifr);\n    p = (ip_tunnel_parm *)(*(code *)PTR_xsocket_001314b4)(2,1,0);\n  }\n  else {\n    (*(code *)PTR_strncpy_IFNAMSIZ_001314bc)(&ifr,p);\n    p = (ip_tunnel_parm *)(*(code *)PTR_xsocket_001314b4)(2,1,0);\n  }" if (parenthesized_expression "(p->name[0] == '\0')" ( (binary_expression "p->name[0] == '\0'" (subscript_expression "p->name[0]" (field_expression "p->name" identifier -> field_identifier) [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    (*(code *)PTR_strncpy_IFNAMSIZ_001314bc)(&ifr);\n    p = (ip_tunnel_parm *)(*(code *)PTR_xsocket_001314b4)(2,1,0);\n  }" { (expression_statement "(*(code *)PTR_strncpy_IFNAMSIZ_001314bc)(&ifr);" (call_expression "(*(code *)PTR_strncpy_IFNAMSIZ_001314bc)(&ifr)" (parenthesized_expression "(*(code *)PTR_strncpy_IFNAMSIZ_001314bc)" ( (pointer_expression "*(code *)PTR_strncpy_IFNAMSIZ_001314bc" * (cast_expression "(code *)PTR_strncpy_IFNAMSIZ_001314bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&ifr)" ( (pointer_expression "&ifr" & identifier) ))) ;) (expression_statement "p = (ip_tunnel_parm *)(*(code *)PTR_xsocket_001314b4)(2,1,0);" (assignment_expression "p = (ip_tunnel_parm *)(*(code *)PTR_xsocket_001314b4)(2,1,0)" identifier = (cast_expression "(ip_tunnel_parm *)(*(code *)PTR_xsocket_001314b4)(2,1,0)" ( (type_descriptor "ip_tunnel_parm *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_xsocket_001314b4)(2,1,0)" (parenthesized_expression "(*(code *)PTR_xsocket_001314b4)" ( (pointer_expression "*(code *)PTR_xsocket_001314b4" * (cast_expression "(code *)PTR_xsocket_001314b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(2,1,0)" ( number_literal , number_literal , number_literal ))))) ;) }) (else_clause "else {\n    (*(code *)PTR_strncpy_IFNAMSIZ_001314bc)(&ifr,p);\n    p = (ip_tunnel_parm *)(*(code *)PTR_xsocket_001314b4)(2,1,0);\n  }" else (compound_statement "{\n    (*(code *)PTR_strncpy_IFNAMSIZ_001314bc)(&ifr,p);\n    p = (ip_tunnel_parm *)(*(code *)PTR_xsocket_001314b4)(2,1,0);\n  }" { (expression_statement "(*(code *)PTR_strncpy_IFNAMSIZ_001314bc)(&ifr,p);" (call_expression "(*(code *)PTR_strncpy_IFNAMSIZ_001314bc)(&ifr,p)" (parenthesized_expression "(*(code *)PTR_strncpy_IFNAMSIZ_001314bc)" ( (pointer_expression "*(code *)PTR_strncpy_IFNAMSIZ_001314bc" * (cast_expression "(code *)PTR_strncpy_IFNAMSIZ_001314bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&ifr,p)" ( (pointer_expression "&ifr" & identifier) , identifier ))) ;) (expression_statement "p = (ip_tunnel_parm *)(*(code *)PTR_xsocket_001314b4)(2,1,0);" (assignment_expression "p = (ip_tunnel_parm *)(*(code *)PTR_xsocket_001314b4)(2,1,0)" identifier = (cast_expression "(ip_tunnel_parm *)(*(code *)PTR_xsocket_001314b4)(2,1,0)" ( (type_descriptor "ip_tunnel_parm *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_xsocket_001314b4)(2,1,0)" (parenthesized_expression "(*(code *)PTR_xsocket_001314b4)" ( (pointer_expression "*(code *)PTR_xsocket_001314b4" * (cast_expression "(code *)PTR_xsocket_001314b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(2,1,0)" ( number_literal , number_literal , number_literal ))))) ;) }))) (expression_statement "(*(code *)PTR_bb_xioctl_00131430)(p,0x89f3,&ifr,PTR_bdcommands_4__name_4__001311a4 + -0x3164);" (call_expression "(*(code *)PTR_bb_xioctl_00131430)(p,0x89f3,&ifr,PTR_bdcommands_4__name_4__001311a4 + -0x3164)" (parenthesized_expression "(*(code *)PTR_bb_xioctl_00131430)" ( (pointer_expression "*(code *)PTR_bb_xioctl_00131430" * (cast_expression "(code *)PTR_bb_xioctl_00131430" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(p,0x89f3,&ifr,PTR_bdcommands_4__name_4__001311a4 + -0x3164)" ( identifier , number_literal , (pointer_expression "&ifr" & identifier) , (binary_expression "PTR_bdcommands_4__name_4__001311a4 + -0x3164" identifier + number_literal) ))) ;) (while_statement "while( true ) {\n    (*(code *)PTR_close_00131ca8)(p);\n    if (iVar1 == *(int *)PTR___stack_chk_guard_00132164) break;\n    pcVar2 = (code *)PTR___stack_chk_fail_001320e4;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0005fa84:\n    (*pcVar2)(&ifr);\n    ifr.ifr_ifru.ifru_data = p->name;\n    p = (ip_tunnel_parm *)(*(code *)PTR_xsocket_001314b4)(2,1,0);\n    (*(code *)PTR_bb_xioctl_00131430)(p,0x89f1,&ifr,PTR_bdcommands_4__name_4__001311a4 + -0x3154);\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    (*(code *)PTR_close_00131ca8)(p);\n    if (iVar1 == *(int *)PTR___stack_chk_guard_00132164) break;\n    pcVar2 = (code *)PTR___stack_chk_fail_001320e4;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0005fa84:\n    (*pcVar2)(&ifr);\n    ifr.ifr_ifru.ifru_data = p->name;\n    p = (ip_tunnel_parm *)(*(code *)PTR_xsocket_001314b4)(2,1,0);\n    (*(code *)PTR_bb_xioctl_00131430)(p,0x89f1,&ifr,PTR_bdcommands_4__name_4__001311a4 + -0x3154);\n  }" { (expression_statement "(*(code *)PTR_close_00131ca8)(p);" (call_expression "(*(code *)PTR_close_00131ca8)(p)" (parenthesized_expression "(*(code *)PTR_close_00131ca8)" ( (pointer_expression "*(code *)PTR_close_00131ca8" * (cast_expression "(code *)PTR_close_00131ca8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(p)" ( identifier ))) ;) (if_statement "if (iVar1 == *(int *)PTR___stack_chk_guard_00132164) break;" if (parenthesized_expression "(iVar1 == *(int *)PTR___stack_chk_guard_00132164)" ( (binary_expression "iVar1 == *(int *)PTR___stack_chk_guard_00132164" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_00132164" * (cast_expression "(int *)PTR___stack_chk_guard_00132164" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (break_statement "break;" break ;)) (expression_statement "pcVar2 = (code *)PTR___stack_chk_fail_001320e4;" (assignment_expression "pcVar2 = (code *)PTR___stack_chk_fail_001320e4" identifier = (cast_expression "(code *)PTR___stack_chk_fail_001320e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_001320e4)();" (call_expression "(*(code *)PTR___stack_chk_fail_001320e4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_001320e4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_001320e4" * (cast_expression "(code *)PTR___stack_chk_fail_001320e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_0005fa84:\n    (*pcVar2)(&ifr);" statement_identifier : (expression_statement "(*pcVar2)(&ifr);" (call_expression "(*pcVar2)(&ifr)" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "(&ifr)" ( (pointer_expression "&ifr" & identifier) ))) ;)) (expression_statement "ifr.ifr_ifru.ifru_data = p->name;" (assignment_expression "ifr.ifr_ifru.ifru_data = p->name" (field_expression "ifr.ifr_ifru.ifru_data" (field_expression "ifr.ifr_ifru" identifier . field_identifier) . field_identifier) = (field_expression "p->name" identifier -> field_identifier)) ;) (expression_statement "p = (ip_tunnel_parm *)(*(code *)PTR_xsocket_001314b4)(2,1,0);" (assignment_expression "p = (ip_tunnel_parm *)(*(code *)PTR_xsocket_001314b4)(2,1,0)" identifier = (cast_expression "(ip_tunnel_parm *)(*(code *)PTR_xsocket_001314b4)(2,1,0)" ( (type_descriptor "ip_tunnel_parm *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_xsocket_001314b4)(2,1,0)" (parenthesized_expression "(*(code *)PTR_xsocket_001314b4)" ( (pointer_expression "*(code *)PTR_xsocket_001314b4" * (cast_expression "(code *)PTR_xsocket_001314b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(2,1,0)" ( number_literal , number_literal , number_literal ))))) ;) (expression_statement "(*(code *)PTR_bb_xioctl_00131430)(p,0x89f1,&ifr,PTR_bdcommands_4__name_4__001311a4 + -0x3154);" (call_expression "(*(code *)PTR_bb_xioctl_00131430)(p,0x89f1,&ifr,PTR_bdcommands_4__name_4__001311a4 + -0x3154)" (parenthesized_expression "(*(code *)PTR_bb_xioctl_00131430)" ( (pointer_expression "*(code *)PTR_bb_xioctl_00131430" * (cast_expression "(code *)PTR_bb_xioctl_00131430" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(p,0x89f1,&ifr,PTR_bdcommands_4__name_4__001311a4 + -0x3154)" ( identifier , number_literal , (pointer_expression "&ifr" & identifier) , (binary_expression "PTR_bdcommands_4__name_4__001311a4 + -0x3154" identifier + number_literal) ))) ;) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "undefined4 FUN_0005f9ac(int param_1,undefined4 param_2,char *param_3)\n\n{\n  code *pcVar1;\n  undefined1 auStack_34 [16];\n  char *local_24;\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_00132164;\n  pcVar1 = (code *)PTR_FUN_001314bc;\n  if (param_1 != 0x89f3) goto LAB_0005fa84;\n  local_24 = param_3;\n  if (*param_3 == '\0') {\n    (*(code *)PTR_FUN_001314bc)(auStack_34);\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n  }\n  else {\n    (*(code *)PTR_FUN_001314bc)(auStack_34,param_3);\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n  }\n  (*(code *)PTR_FUN_00131430)(param_3,0x89f3,auStack_34,PTR_FUN_001311a4 + -0x3164);\n  while( true ) {\n    (*(code *)PTR_close_00131ca8)(param_3);\n    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;\n    pcVar1 = (code *)PTR___stack_chk_fail_001320e4;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0005fa84:\n    (*pcVar1)(auStack_34);\n    local_24 = param_3;\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n    (*(code *)PTR_FUN_00131430)(param_3,0x89f1,auStack_34,PTR_FUN_001311a4 + -0x3154);\n  }\n  return 0;\n}\n\n" (function_definition "undefined4 FUN_0005f9ac(int param_1,undefined4 param_2,char *param_3)\n\n{\n  code *pcVar1;\n  undefined1 auStack_34 [16];\n  char *local_24;\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_00132164;\n  pcVar1 = (code *)PTR_FUN_001314bc;\n  if (param_1 != 0x89f3) goto LAB_0005fa84;\n  local_24 = param_3;\n  if (*param_3 == '\0') {\n    (*(code *)PTR_FUN_001314bc)(auStack_34);\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n  }\n  else {\n    (*(code *)PTR_FUN_001314bc)(auStack_34,param_3);\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n  }\n  (*(code *)PTR_FUN_00131430)(param_3,0x89f3,auStack_34,PTR_FUN_001311a4 + -0x3164);\n  while( true ) {\n    (*(code *)PTR_close_00131ca8)(param_3);\n    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;\n    pcVar1 = (code *)PTR___stack_chk_fail_001320e4;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0005fa84:\n    (*pcVar1)(auStack_34);\n    local_24 = param_3;\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n    (*(code *)PTR_FUN_00131430)(param_3,0x89f1,auStack_34,PTR_FUN_001311a4 + -0x3154);\n  }\n  return 0;\n}" type_identifier (function_declarator "FUN_0005f9ac(int param_1,undefined4 param_2,char *param_3)" identifier (parameter_list "(int param_1,undefined4 param_2,char *param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  code *pcVar1;\n  undefined1 auStack_34 [16];\n  char *local_24;\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_00132164;\n  pcVar1 = (code *)PTR_FUN_001314bc;\n  if (param_1 != 0x89f3) goto LAB_0005fa84;\n  local_24 = param_3;\n  if (*param_3 == '\0') {\n    (*(code *)PTR_FUN_001314bc)(auStack_34);\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n  }\n  else {\n    (*(code *)PTR_FUN_001314bc)(auStack_34,param_3);\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n  }\n  (*(code *)PTR_FUN_00131430)(param_3,0x89f3,auStack_34,PTR_FUN_001311a4 + -0x3164);\n  while( true ) {\n    (*(code *)PTR_close_00131ca8)(param_3);\n    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;\n    pcVar1 = (code *)PTR___stack_chk_fail_001320e4;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0005fa84:\n    (*pcVar1)(auStack_34);\n    local_24 = param_3;\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n    (*(code *)PTR_FUN_00131430)(param_3,0x89f1,auStack_34,PTR_FUN_001311a4 + -0x3154);\n  }\n  return 0;\n}" { (declaration "code *pcVar1;" type_identifier (pointer_declarator "*pcVar1" * identifier) ;) (declaration "undefined1 auStack_34 [16];" type_identifier (array_declarator "auStack_34 [16]" identifier [ number_literal ]) ;) (declaration "char *local_24;" primitive_type (pointer_declarator "*local_24" * identifier) ;) (declaration "int local_14;" primitive_type identifier ;) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_00132164;" (assignment_expression "local_14 = *(int *)PTR___stack_chk_guard_00132164" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00132164" * (cast_expression "(int *)PTR___stack_chk_guard_00132164" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar1 = (code *)PTR_FUN_001314bc;" (assignment_expression "pcVar1 = (code *)PTR_FUN_001314bc" identifier = (cast_expression "(code *)PTR_FUN_001314bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (param_1 != 0x89f3) goto LAB_0005fa84;" if (parenthesized_expression "(param_1 != 0x89f3)" ( (binary_expression "param_1 != 0x89f3" identifier != number_literal) )) (goto_statement "goto LAB_0005fa84;" goto statement_identifier ;)) (expression_statement "local_24 = param_3;" (assignment_expression "local_24 = param_3" identifier = identifier) ;) (if_statement "if (*param_3 == '\0') {\n    (*(code *)PTR_FUN_001314bc)(auStack_34);\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n  }\n  else {\n    (*(code *)PTR_FUN_001314bc)(auStack_34,param_3);\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n  }" if (parenthesized_expression "(*param_3 == '\0')" ( (binary_expression "*param_3 == '\0'" (pointer_expression "*param_3" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    (*(code *)PTR_FUN_001314bc)(auStack_34);\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n  }" { (expression_statement "(*(code *)PTR_FUN_001314bc)(auStack_34);" (call_expression "(*(code *)PTR_FUN_001314bc)(auStack_34)" (parenthesized_expression "(*(code *)PTR_FUN_001314bc)" ( (pointer_expression "*(code *)PTR_FUN_001314bc" * (cast_expression "(code *)PTR_FUN_001314bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_34)" ( identifier ))) ;) (expression_statement "param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);" (assignment_expression "param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0)" identifier = (cast_expression "(char *)(*(code *)PTR_FUN_001314b4)(2,1,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_FUN_001314b4)(2,1,0)" (parenthesized_expression "(*(code *)PTR_FUN_001314b4)" ( (pointer_expression "*(code *)PTR_FUN_001314b4" * (cast_expression "(code *)PTR_FUN_001314b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(2,1,0)" ( number_literal , number_literal , number_literal ))))) ;) }) (else_clause "else {\n    (*(code *)PTR_FUN_001314bc)(auStack_34,param_3);\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n  }" else (compound_statement "{\n    (*(code *)PTR_FUN_001314bc)(auStack_34,param_3);\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n  }" { (expression_statement "(*(code *)PTR_FUN_001314bc)(auStack_34,param_3);" (call_expression "(*(code *)PTR_FUN_001314bc)(auStack_34,param_3)" (parenthesized_expression "(*(code *)PTR_FUN_001314bc)" ( (pointer_expression "*(code *)PTR_FUN_001314bc" * (cast_expression "(code *)PTR_FUN_001314bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_34,param_3)" ( identifier , identifier ))) ;) (expression_statement "param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);" (assignment_expression "param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0)" identifier = (cast_expression "(char *)(*(code *)PTR_FUN_001314b4)(2,1,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_FUN_001314b4)(2,1,0)" (parenthesized_expression "(*(code *)PTR_FUN_001314b4)" ( (pointer_expression "*(code *)PTR_FUN_001314b4" * (cast_expression "(code *)PTR_FUN_001314b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(2,1,0)" ( number_literal , number_literal , number_literal ))))) ;) }))) (expression_statement "(*(code *)PTR_FUN_00131430)(param_3,0x89f3,auStack_34,PTR_FUN_001311a4 + -0x3164);" (call_expression "(*(code *)PTR_FUN_00131430)(param_3,0x89f3,auStack_34,PTR_FUN_001311a4 + -0x3164)" (parenthesized_expression "(*(code *)PTR_FUN_00131430)" ( (pointer_expression "*(code *)PTR_FUN_00131430" * (cast_expression "(code *)PTR_FUN_00131430" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_3,0x89f3,auStack_34,PTR_FUN_001311a4 + -0x3164)" ( identifier , number_literal , identifier , (binary_expression "PTR_FUN_001311a4 + -0x3164" identifier + number_literal) ))) ;) (while_statement "while( true ) {\n    (*(code *)PTR_close_00131ca8)(param_3);\n    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;\n    pcVar1 = (code *)PTR___stack_chk_fail_001320e4;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0005fa84:\n    (*pcVar1)(auStack_34);\n    local_24 = param_3;\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n    (*(code *)PTR_FUN_00131430)(param_3,0x89f1,auStack_34,PTR_FUN_001311a4 + -0x3154);\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    (*(code *)PTR_close_00131ca8)(param_3);\n    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;\n    pcVar1 = (code *)PTR___stack_chk_fail_001320e4;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0005fa84:\n    (*pcVar1)(auStack_34);\n    local_24 = param_3;\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n    (*(code *)PTR_FUN_00131430)(param_3,0x89f1,auStack_34,PTR_FUN_001311a4 + -0x3154);\n  }" { (expression_statement "(*(code *)PTR_close_00131ca8)(param_3);" (call_expression "(*(code *)PTR_close_00131ca8)(param_3)" (parenthesized_expression "(*(code *)PTR_close_00131ca8)" ( (pointer_expression "*(code *)PTR_close_00131ca8" * (cast_expression "(code *)PTR_close_00131ca8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_3)" ( identifier ))) ;) (if_statement "if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;" if (parenthesized_expression "(local_14 == *(int *)PTR___stack_chk_guard_00132164)" ( (binary_expression "local_14 == *(int *)PTR___stack_chk_guard_00132164" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_00132164" * (cast_expression "(int *)PTR___stack_chk_guard_00132164" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (break_statement "break;" break ;)) (expression_statement "pcVar1 = (code *)PTR___stack_chk_fail_001320e4;" (assignment_expression "pcVar1 = (code *)PTR___stack_chk_fail_001320e4" identifier = (cast_expression "(code *)PTR___stack_chk_fail_001320e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_001320e4)();" (call_expression "(*(code *)PTR___stack_chk_fail_001320e4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_001320e4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_001320e4" * (cast_expression "(code *)PTR___stack_chk_fail_001320e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_0005fa84:\n    (*pcVar1)(auStack_34);" statement_identifier : (expression_statement "(*pcVar1)(auStack_34);" (call_expression "(*pcVar1)(auStack_34)" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "(auStack_34)" ( identifier ))) ;)) (expression_statement "local_24 = param_3;" (assignment_expression "local_24 = param_3" identifier = identifier) ;) (expression_statement "param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);" (assignment_expression "param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0)" identifier = (cast_expression "(char *)(*(code *)PTR_FUN_001314b4)(2,1,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_FUN_001314b4)(2,1,0)" (parenthesized_expression "(*(code *)PTR_FUN_001314b4)" ( (pointer_expression "*(code *)PTR_FUN_001314b4" * (cast_expression "(code *)PTR_FUN_001314b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(2,1,0)" ( number_literal , number_literal , number_literal ))))) ;) (expression_statement "(*(code *)PTR_FUN_00131430)(param_3,0x89f1,auStack_34,PTR_FUN_001311a4 + -0x3154);" (call_expression "(*(code *)PTR_FUN_00131430)(param_3,0x89f1,auStack_34,PTR_FUN_001311a4 + -0x3154)" (parenthesized_expression "(*(code *)PTR_FUN_00131430)" ( (pointer_expression "*(code *)PTR_FUN_00131430" * (cast_expression "(code *)PTR_FUN_00131430" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_3,0x89f1,auStack_34,PTR_FUN_001311a4 + -0x3154)" ( identifier , number_literal , identifier , (binary_expression "PTR_FUN_001311a4 + -0x3154" identifier + number_literal) ))) ;) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , LIT , LIT ))))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , LIT , LIT ))))) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , IDENT , (binary_expression IDENT + LIT) ))) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , LIT , LIT ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , IDENT , (binary_expression IDENT + LIT) ))) ;) })) (return_statement return LIT ;) })))
(function_definition "undefined4 FUN_0005f9ac(int param_1,undefined4 param_2,char *param_3)\n\n{\n  code *pcVar1;\n  undefined1 auStack_34 [16];\n  char *local_24;\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_00132164;\n  pcVar1 = (code *)PTR_FUN_001314bc;\n  if (param_1 != 0x89f3) goto LAB_0005fa84;\n  local_24 = param_3;\n  if (*param_3 == '\0') {\n    (*(code *)PTR_FUN_001314bc)(auStack_34);\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n  }\n  else {\n    (*(code *)PTR_FUN_001314bc)(auStack_34,param_3);\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n  }\n  (*(code *)PTR_FUN_00131430)(param_3,0x89f3,auStack_34,PTR_FUN_001311a4 + -0x3164);\n  while( true ) {\n    (*(code *)PTR_close_00131ca8)(param_3);\n    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;\n    pcVar1 = (code *)PTR___stack_chk_fail_001320e4;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0005fa84:\n    (*pcVar1)(auStack_34);\n    local_24 = param_3;\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n    (*(code *)PTR_FUN_00131430)(param_3,0x89f1,auStack_34,PTR_FUN_001311a4 + -0x3154);\n  }\n  return 0;\n}" (type_identifier "undefined4") (function_declarator "FUN_0005f9ac(int param_1,undefined4 param_2,char *param_3)" (identifier "FUN_0005f9ac") (parameter_list "(int param_1,undefined4 param_2,char *param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "char *param_3" (primitive_type "char") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  code *pcVar1;\n  undefined1 auStack_34 [16];\n  char *local_24;\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_00132164;\n  pcVar1 = (code *)PTR_FUN_001314bc;\n  if (param_1 != 0x89f3) goto LAB_0005fa84;\n  local_24 = param_3;\n  if (*param_3 == '\0') {\n    (*(code *)PTR_FUN_001314bc)(auStack_34);\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n  }\n  else {\n    (*(code *)PTR_FUN_001314bc)(auStack_34,param_3);\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n  }\n  (*(code *)PTR_FUN_00131430)(param_3,0x89f3,auStack_34,PTR_FUN_001311a4 + -0x3164);\n  while( true ) {\n    (*(code *)PTR_close_00131ca8)(param_3);\n    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;\n    pcVar1 = (code *)PTR___stack_chk_fail_001320e4;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0005fa84:\n    (*pcVar1)(auStack_34);\n    local_24 = param_3;\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n    (*(code *)PTR_FUN_00131430)(param_3,0x89f1,auStack_34,PTR_FUN_001311a4 + -0x3154);\n  }\n  return 0;\n}" ({ "{") (declaration "code *pcVar1;" (type_identifier "code") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "undefined1 auStack_34 [16];" (type_identifier "undefined1") (array_declarator "auStack_34 [16]" (identifier "auStack_34") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "char *local_24;" (primitive_type "char") (pointer_declarator "*local_24" (* "*") (identifier "local_24")) (; ";")) (declaration "int local_14;" (primitive_type "int") (identifier "local_14") (; ";")) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_00132164;" (assignment_expression "local_14 = *(int *)PTR___stack_chk_guard_00132164" (identifier "local_14") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_00132164" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_00132164" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_00132164")))) (; ";")) (expression_statement "pcVar1 = (code *)PTR_FUN_001314bc;" (assignment_expression "pcVar1 = (code *)PTR_FUN_001314bc" (identifier "pcVar1") (= "=") (cast_expression "(code *)PTR_FUN_001314bc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_001314bc"))) (; ";")) (if_statement "if (param_1 != 0x89f3) goto LAB_0005fa84;" (if "if") (parenthesized_expression "(param_1 != 0x89f3)" (( "(") (binary_expression "param_1 != 0x89f3" (identifier "param_1") (!= "!=") (number_literal "0x89f3")) () ")")) (goto_statement "goto LAB_0005fa84;" (goto "goto") (statement_identifier "LAB_0005fa84") (; ";"))) (expression_statement "local_24 = param_3;" (assignment_expression "local_24 = param_3" (identifier "local_24") (= "=") (identifier "param_3")) (; ";")) (if_statement "if (*param_3 == '\0') {\n    (*(code *)PTR_FUN_001314bc)(auStack_34);\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n  }\n  else {\n    (*(code *)PTR_FUN_001314bc)(auStack_34,param_3);\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n  }" (if "if") (parenthesized_expression "(*param_3 == '\0')" (( "(") (binary_expression "*param_3 == '\0'" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    (*(code *)PTR_FUN_001314bc)(auStack_34);\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n  }" ({ "{") (expression_statement "(*(code *)PTR_FUN_001314bc)(auStack_34);" (call_expression "(*(code *)PTR_FUN_001314bc)(auStack_34)" (parenthesized_expression "(*(code *)PTR_FUN_001314bc)" (( "(") (pointer_expression "*(code *)PTR_FUN_001314bc" (* "*") (cast_expression "(code *)PTR_FUN_001314bc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_001314bc"))) () ")")) (argument_list "(auStack_34)" (( "(") (identifier "auStack_34") () ")"))) (; ";")) (expression_statement "param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);" (assignment_expression "param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0)" (identifier "param_3") (= "=") (cast_expression "(char *)(*(code *)PTR_FUN_001314b4)(2,1,0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_FUN_001314b4)(2,1,0)" (parenthesized_expression "(*(code *)PTR_FUN_001314b4)" (( "(") (pointer_expression "*(code *)PTR_FUN_001314b4" (* "*") (cast_expression "(code *)PTR_FUN_001314b4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_001314b4"))) () ")")) (argument_list "(2,1,0)" (( "(") (number_literal "2") (, ",") (number_literal "1") (, ",") (number_literal "0") () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    (*(code *)PTR_FUN_001314bc)(auStack_34,param_3);\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n  }" (else "else") (compound_statement "{\n    (*(code *)PTR_FUN_001314bc)(auStack_34,param_3);\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n  }" ({ "{") (expression_statement "(*(code *)PTR_FUN_001314bc)(auStack_34,param_3);" (call_expression "(*(code *)PTR_FUN_001314bc)(auStack_34,param_3)" (parenthesized_expression "(*(code *)PTR_FUN_001314bc)" (( "(") (pointer_expression "*(code *)PTR_FUN_001314bc" (* "*") (cast_expression "(code *)PTR_FUN_001314bc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_001314bc"))) () ")")) (argument_list "(auStack_34,param_3)" (( "(") (identifier "auStack_34") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);" (assignment_expression "param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0)" (identifier "param_3") (= "=") (cast_expression "(char *)(*(code *)PTR_FUN_001314b4)(2,1,0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_FUN_001314b4)(2,1,0)" (parenthesized_expression "(*(code *)PTR_FUN_001314b4)" (( "(") (pointer_expression "*(code *)PTR_FUN_001314b4" (* "*") (cast_expression "(code *)PTR_FUN_001314b4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_001314b4"))) () ")")) (argument_list "(2,1,0)" (( "(") (number_literal "2") (, ",") (number_literal "1") (, ",") (number_literal "0") () ")"))))) (; ";")) (} "}")))) (expression_statement "(*(code *)PTR_FUN_00131430)(param_3,0x89f3,auStack_34,PTR_FUN_001311a4 + -0x3164);" (call_expression "(*(code *)PTR_FUN_00131430)(param_3,0x89f3,auStack_34,PTR_FUN_001311a4 + -0x3164)" (parenthesized_expression "(*(code *)PTR_FUN_00131430)" (( "(") (pointer_expression "*(code *)PTR_FUN_00131430" (* "*") (cast_expression "(code *)PTR_FUN_00131430" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_00131430"))) () ")")) (argument_list "(param_3,0x89f3,auStack_34,PTR_FUN_001311a4 + -0x3164)" (( "(") (identifier "param_3") (, ",") (number_literal "0x89f3") (, ",") (identifier "auStack_34") (, ",") (binary_expression "PTR_FUN_001311a4 + -0x3164" (identifier "PTR_FUN_001311a4") (+ "+") (number_literal "-0x3164")) () ")"))) (; ";")) (while_statement "while( true ) {\n    (*(code *)PTR_close_00131ca8)(param_3);\n    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;\n    pcVar1 = (code *)PTR___stack_chk_fail_001320e4;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0005fa84:\n    (*pcVar1)(auStack_34);\n    local_24 = param_3;\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n    (*(code *)PTR_FUN_00131430)(param_3,0x89f1,auStack_34,PTR_FUN_001311a4 + -0x3154);\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    (*(code *)PTR_close_00131ca8)(param_3);\n    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;\n    pcVar1 = (code *)PTR___stack_chk_fail_001320e4;\n    (*(code *)PTR___stack_chk_fail_001320e4)();\nLAB_0005fa84:\n    (*pcVar1)(auStack_34);\n    local_24 = param_3;\n    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);\n    (*(code *)PTR_FUN_00131430)(param_3,0x89f1,auStack_34,PTR_FUN_001311a4 + -0x3154);\n  }" ({ "{") (expression_statement "(*(code *)PTR_close_00131ca8)(param_3);" (call_expression "(*(code *)PTR_close_00131ca8)(param_3)" (parenthesized_expression "(*(code *)PTR_close_00131ca8)" (( "(") (pointer_expression "*(code *)PTR_close_00131ca8" (* "*") (cast_expression "(code *)PTR_close_00131ca8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_close_00131ca8"))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")"))) (; ";")) (if_statement "if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;" (if "if") (parenthesized_expression "(local_14 == *(int *)PTR___stack_chk_guard_00132164)" (( "(") (binary_expression "local_14 == *(int *)PTR___stack_chk_guard_00132164" (identifier "local_14") (== "==") (pointer_expression "*(int *)PTR___stack_chk_guard_00132164" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_00132164" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_00132164")))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pcVar1 = (code *)PTR___stack_chk_fail_001320e4;" (assignment_expression "pcVar1 = (code *)PTR___stack_chk_fail_001320e4" (identifier "pcVar1") (= "=") (cast_expression "(code *)PTR___stack_chk_fail_001320e4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_001320e4"))) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_001320e4)();" (call_expression "(*(code *)PTR___stack_chk_fail_001320e4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_001320e4)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_001320e4" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_001320e4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_001320e4"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_0005fa84:\n    (*pcVar1)(auStack_34);" (statement_identifier "LAB_0005fa84") (: ":") (expression_statement "(*pcVar1)(auStack_34);" (call_expression "(*pcVar1)(auStack_34)" (parenthesized_expression "(*pcVar1)" (( "(") (pointer_expression "*pcVar1" (* "*") (identifier "pcVar1")) () ")")) (argument_list "(auStack_34)" (( "(") (identifier "auStack_34") () ")"))) (; ";"))) (expression_statement "local_24 = param_3;" (assignment_expression "local_24 = param_3" (identifier "local_24") (= "=") (identifier "param_3")) (; ";")) (expression_statement "param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);" (assignment_expression "param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0)" (identifier "param_3") (= "=") (cast_expression "(char *)(*(code *)PTR_FUN_001314b4)(2,1,0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_FUN_001314b4)(2,1,0)" (parenthesized_expression "(*(code *)PTR_FUN_001314b4)" (( "(") (pointer_expression "*(code *)PTR_FUN_001314b4" (* "*") (cast_expression "(code *)PTR_FUN_001314b4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_001314b4"))) () ")")) (argument_list "(2,1,0)" (( "(") (number_literal "2") (, ",") (number_literal "1") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "(*(code *)PTR_FUN_00131430)(param_3,0x89f1,auStack_34,PTR_FUN_001311a4 + -0x3154);" (call_expression "(*(code *)PTR_FUN_00131430)(param_3,0x89f1,auStack_34,PTR_FUN_001311a4 + -0x3154)" (parenthesized_expression "(*(code *)PTR_FUN_00131430)" (( "(") (pointer_expression "*(code *)PTR_FUN_00131430" (* "*") (cast_expression "(code *)PTR_FUN_00131430" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_00131430"))) () ")")) (argument_list "(param_3,0x89f1,auStack_34,PTR_FUN_001311a4 + -0x3154)" (( "(") (identifier "param_3") (, ",") (number_literal "0x89f1") (, ",") (identifier "auStack_34") (, ",") (binary_expression "PTR_FUN_001311a4 + -0x3154" (identifier "PTR_FUN_001311a4") (+ "+") (number_literal "-0x3154")) () ")"))) (; ";")) (} "}"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (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 (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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 (number_literal) (number_literal) (number_literal))))))) alternative: (else_clause (compound_statement (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 (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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 (number_literal) (number_literal) (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 (identifier) (number_literal) (identifier) (binary_expression left: (identifier) right: (number_literal))))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (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 (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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 (number_literal) (number_literal) (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 (identifier) (number_literal) (identifier) (binary_expression left: (identifier) right: (number_literal))))))) (return_statement (number_literal)))))

undefined4 MASKED(int param_1,undefined4 param_2,char *param_3)

{
  code *pcVar1;
  undefined1 auStack_34 [16];
  char *local_24;
  int local_14;
  
  local_14 = *(int *)PTR___stack_chk_guard_00132164;
  pcVar1 = (code *)PTR_FUN_001314bc;
  if (param_1 != 0x89f3) goto LAB_0005fa84;
  local_24 = param_3;
  if (*param_3 == '\0') {
    (*(code *)PTR_FUN_001314bc)(auStack_34);
    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);
  }
  else {
    (*(code *)PTR_FUN_001314bc)(auStack_34,param_3);
    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);
  }
  (*(code *)PTR_FUN_00131430)(param_3,0x89f3,auStack_34,PTR_FUN_001311a4 + -0x3164);
  while( true ) {
    (*(code *)PTR_close_00131ca8)(param_3);
    if (local_14 == *(int *)PTR___stack_chk_guard_00132164) break;
    pcVar1 = (code *)PTR___stack_chk_fail_001320e4;
    (*(code *)PTR___stack_chk_fail_001320e4)();
LAB_0005fa84:
    (*pcVar1)(auStack_34);
    local_24 = param_3;
    param_3 = (char *)(*(code *)PTR_FUN_001314b4)(2,1,0);
    (*(code *)PTR_FUN_00131430)(param_3,0x89f1,auStack_34,PTR_FUN_001311a4 + -0x3154);
  }
  return 0;
}

