
int debug_stat(char *file,stat *bufp)

{
  int iVar1;
  
  stat_count = stat_count + 1;
  __fprintf_chk(stderr,1,"debug_stat (%s)\n",file);
  if (options.symlink_handling == SYMLINK_ALWAYS_DEREF) {
    iVar1 = optionl_stat(file,bufp);
  }
  else if (options.symlink_handling == SYMLINK_NEVER_DEREF) {
    iVar1 = optionp_stat(file,bufp);
  }
  else {
    if (options.symlink_handling != SYMLINK_DEREF_ARGSONLY) {
                    /* WARNING: Subroutine does not return */
      __assert_fail("0","util.c",0x2c1,"debug_stat");
    }
    iVar1 = optionh_stat(file,bufp);
  }
  return iVar1;
}



/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_0010d1a5(undefined8 param_1,undefined8 param_2)

{
  _DAT_0014ba88 = _DAT_0014ba88 + 1;
  __fprintf_chk(stderr,1,"debug_stat (%s)\n",param_1);
  if (DAT_0014c448 == 1) {
    FUN_0010d0ee(param_1,param_2);
  }
  else if (DAT_0014c448 == 0) {
    FUN_0010d158(param_1,param_2);
  }
  else {
    if (DAT_0014c448 != 2) {
                    /* WARNING: Subroutine does not return */
      __assert_fail("0","util.c",0x2c1,"debug_stat");
    }
    FUN_0010d063(param_1,param_2);
  }
  return;
}


PUSH RBP
PUSH RBX
SUB RSP,0x8
MOV RBX,RDI
MOV RBP,RSI
ADD qword ptr [0x0014ba88],0x1
MOV RCX,RDI
LEA RDX,[0x13962b]
MOV ESI,0x1
MOV RDI,qword ptr [0x0014ba20]
MOV EAX,0x0
CALL 0x001078e0
MOV EAX,dword ptr [0x0014c448]
CMP EAX,0x1
JZ 0x0010d1fa
TEST EAX,EAX
JZ 0x0010d20c
CMP EAX,0x2
JNZ 0x0010d219
MOV RSI,RBP
MOV RDI,RBX
CALL 0x0010d063
JMP 0x0010d205
MOV RSI,RBP
MOV RDI,RBX
CALL 0x0010d0ee
ADD RSP,0x8
POP RBX
POP RBP
RET
MOV RSI,RBP
MOV RDI,RBX
CALL 0x0010d158
JMP 0x0010d205
LEA RCX,[0x13a1c8]
MOV EDX,0x2c1
LEA RSI,[0x13957c]
LEA RDI,[0x13847e]
CALL 0x001073b0
(translation_unit "/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nvoid FUN_0010d1a5(undefined8 param_1,undefined8 param_2)\n\n{\n  _DAT_0014ba88 = _DAT_0014ba88 + 1;\n  __fprintf_chk(stderr,1,"debug_stat (%s)\n",param_1);\n  if (DAT_0014c448 == 1) {\n    FUN_0010d0ee(param_1,param_2);\n  }\n  else if (DAT_0014c448 == 0) {\n    FUN_0010d158(param_1,param_2);\n  }\n  else {\n    if (DAT_0014c448 != 2) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }\n    FUN_0010d063(param_1,param_2);\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_0010d1a5(undefined8 param_1,undefined8 param_2)\n\n{\n  _DAT_0014ba88 = _DAT_0014ba88 + 1;\n  __fprintf_chk(stderr,1,"debug_stat (%s)\n",param_1);\n  if (DAT_0014c448 == 1) {\n    FUN_0010d0ee(param_1,param_2);\n  }\n  else if (DAT_0014c448 == 0) {\n    FUN_0010d158(param_1,param_2);\n  }\n  else {\n    if (DAT_0014c448 != 2) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }\n    FUN_0010d063(param_1,param_2);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0010d1a5(undefined8 param_1,undefined8 param_2)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) ))) (compound_statement "{\n  _DAT_0014ba88 = _DAT_0014ba88 + 1;\n  __fprintf_chk(stderr,1,"debug_stat (%s)\n",param_1);\n  if (DAT_0014c448 == 1) {\n    FUN_0010d0ee(param_1,param_2);\n  }\n  else if (DAT_0014c448 == 0) {\n    FUN_0010d158(param_1,param_2);\n  }\n  else {\n    if (DAT_0014c448 != 2) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }\n    FUN_0010d063(param_1,param_2);\n  }\n  return;\n}" { (expression_statement "_DAT_0014ba88 = _DAT_0014ba88 + 1;" (assignment_expression "_DAT_0014ba88 = _DAT_0014ba88 + 1" identifier = (binary_expression "_DAT_0014ba88 + 1" identifier + number_literal)) ;) (expression_statement "__fprintf_chk(stderr,1,"debug_stat (%s)\n",param_1);" (call_expression "__fprintf_chk(stderr,1,"debug_stat (%s)\n",param_1)" identifier (argument_list "(stderr,1,"debug_stat (%s)\n",param_1)" ( identifier , number_literal , (string_literal ""debug_stat (%s)\n"" " string_content escape_sequence ") , identifier ))) ;) (if_statement "if (DAT_0014c448 == 1) {\n    FUN_0010d0ee(param_1,param_2);\n  }\n  else if (DAT_0014c448 == 0) {\n    FUN_0010d158(param_1,param_2);\n  }\n  else {\n    if (DAT_0014c448 != 2) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }\n    FUN_0010d063(param_1,param_2);\n  }" if (parenthesized_expression "(DAT_0014c448 == 1)" ( (binary_expression "DAT_0014c448 == 1" identifier == number_literal) )) (compound_statement "{\n    FUN_0010d0ee(param_1,param_2);\n  }" { (expression_statement "FUN_0010d0ee(param_1,param_2);" (call_expression "FUN_0010d0ee(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) }) (else_clause "else if (DAT_0014c448 == 0) {\n    FUN_0010d158(param_1,param_2);\n  }\n  else {\n    if (DAT_0014c448 != 2) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }\n    FUN_0010d063(param_1,param_2);\n  }" else (if_statement "if (DAT_0014c448 == 0) {\n    FUN_0010d158(param_1,param_2);\n  }\n  else {\n    if (DAT_0014c448 != 2) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }\n    FUN_0010d063(param_1,param_2);\n  }" if (parenthesized_expression "(DAT_0014c448 == 0)" ( (binary_expression "DAT_0014c448 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_0010d158(param_1,param_2);\n  }" { (expression_statement "FUN_0010d158(param_1,param_2);" (call_expression "FUN_0010d158(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) }) (else_clause "else {\n    if (DAT_0014c448 != 2) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }\n    FUN_0010d063(param_1,param_2);\n  }" else (compound_statement "{\n    if (DAT_0014c448 != 2) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }\n    FUN_0010d063(param_1,param_2);\n  }" { (if_statement "if (DAT_0014c448 != 2) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }" if (parenthesized_expression "(DAT_0014c448 != 2)" ( (binary_expression "DAT_0014c448 != 2" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }" { comment (expression_statement "__assert_fail("0","util.c",0x2c1,"debug_stat");" (call_expression "__assert_fail("0","util.c",0x2c1,"debug_stat")" identifier (argument_list "("0","util.c",0x2c1,"debug_stat")" ( (string_literal ""0"" " string_content ") , (string_literal ""util.c"" " string_content ") , number_literal , (string_literal ""debug_stat"" " string_content ") ))) ;) })) (expression_statement "FUN_0010d063(param_1,param_2);" (call_expression "FUN_0010d063(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) }))))) (return_statement "return;" return ;) })))
(translation_unit "int debug_stat(char *file,stat *bufp)\n\n{\n  int iVar1;\n  \n  stat_count = stat_count + 1;\n  __fprintf_chk(stderr,1,"debug_stat (%s)\n",file);\n  if (options.symlink_handling == SYMLINK_ALWAYS_DEREF) {\n    iVar1 = optionl_stat(file,bufp);\n  }\n  else if (options.symlink_handling == SYMLINK_NEVER_DEREF) {\n    iVar1 = optionp_stat(file,bufp);\n  }\n  else {\n    if (options.symlink_handling != SYMLINK_DEREF_ARGSONLY) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }\n    iVar1 = optionh_stat(file,bufp);\n  }\n  return iVar1;\n}\n\n" (function_definition "int debug_stat(char *file,stat *bufp)\n\n{\n  int iVar1;\n  \n  stat_count = stat_count + 1;\n  __fprintf_chk(stderr,1,"debug_stat (%s)\n",file);\n  if (options.symlink_handling == SYMLINK_ALWAYS_DEREF) {\n    iVar1 = optionl_stat(file,bufp);\n  }\n  else if (options.symlink_handling == SYMLINK_NEVER_DEREF) {\n    iVar1 = optionp_stat(file,bufp);\n  }\n  else {\n    if (options.symlink_handling != SYMLINK_DEREF_ARGSONLY) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }\n    iVar1 = optionh_stat(file,bufp);\n  }\n  return iVar1;\n}" primitive_type (function_declarator "debug_stat(char *file,stat *bufp)" identifier (parameter_list "(char *file,stat *bufp)" ( (parameter_declaration "char *file" primitive_type (pointer_declarator "*file" * identifier)) , (parameter_declaration "stat *bufp" type_identifier (pointer_declarator "*bufp" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  \n  stat_count = stat_count + 1;\n  __fprintf_chk(stderr,1,"debug_stat (%s)\n",file);\n  if (options.symlink_handling == SYMLINK_ALWAYS_DEREF) {\n    iVar1 = optionl_stat(file,bufp);\n  }\n  else if (options.symlink_handling == SYMLINK_NEVER_DEREF) {\n    iVar1 = optionp_stat(file,bufp);\n  }\n  else {\n    if (options.symlink_handling != SYMLINK_DEREF_ARGSONLY) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }\n    iVar1 = optionh_stat(file,bufp);\n  }\n  return iVar1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (expression_statement "stat_count = stat_count + 1;" (assignment_expression "stat_count = stat_count + 1" identifier = (binary_expression "stat_count + 1" identifier + number_literal)) ;) (expression_statement "__fprintf_chk(stderr,1,"debug_stat (%s)\n",file);" (call_expression "__fprintf_chk(stderr,1,"debug_stat (%s)\n",file)" identifier (argument_list "(stderr,1,"debug_stat (%s)\n",file)" ( identifier , number_literal , (string_literal ""debug_stat (%s)\n"" " string_content escape_sequence ") , identifier ))) ;) (if_statement "if (options.symlink_handling == SYMLINK_ALWAYS_DEREF) {\n    iVar1 = optionl_stat(file,bufp);\n  }\n  else if (options.symlink_handling == SYMLINK_NEVER_DEREF) {\n    iVar1 = optionp_stat(file,bufp);\n  }\n  else {\n    if (options.symlink_handling != SYMLINK_DEREF_ARGSONLY) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }\n    iVar1 = optionh_stat(file,bufp);\n  }" if (parenthesized_expression "(options.symlink_handling == SYMLINK_ALWAYS_DEREF)" ( (binary_expression "options.symlink_handling == SYMLINK_ALWAYS_DEREF" (field_expression "options.symlink_handling" identifier . field_identifier) == identifier) )) (compound_statement "{\n    iVar1 = optionl_stat(file,bufp);\n  }" { (expression_statement "iVar1 = optionl_stat(file,bufp);" (assignment_expression "iVar1 = optionl_stat(file,bufp)" identifier = (call_expression "optionl_stat(file,bufp)" identifier (argument_list "(file,bufp)" ( identifier , identifier )))) ;) }) (else_clause "else if (options.symlink_handling == SYMLINK_NEVER_DEREF) {\n    iVar1 = optionp_stat(file,bufp);\n  }\n  else {\n    if (options.symlink_handling != SYMLINK_DEREF_ARGSONLY) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }\n    iVar1 = optionh_stat(file,bufp);\n  }" else (if_statement "if (options.symlink_handling == SYMLINK_NEVER_DEREF) {\n    iVar1 = optionp_stat(file,bufp);\n  }\n  else {\n    if (options.symlink_handling != SYMLINK_DEREF_ARGSONLY) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }\n    iVar1 = optionh_stat(file,bufp);\n  }" if (parenthesized_expression "(options.symlink_handling == SYMLINK_NEVER_DEREF)" ( (binary_expression "options.symlink_handling == SYMLINK_NEVER_DEREF" (field_expression "options.symlink_handling" identifier . field_identifier) == identifier) )) (compound_statement "{\n    iVar1 = optionp_stat(file,bufp);\n  }" { (expression_statement "iVar1 = optionp_stat(file,bufp);" (assignment_expression "iVar1 = optionp_stat(file,bufp)" identifier = (call_expression "optionp_stat(file,bufp)" identifier (argument_list "(file,bufp)" ( identifier , identifier )))) ;) }) (else_clause "else {\n    if (options.symlink_handling != SYMLINK_DEREF_ARGSONLY) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }\n    iVar1 = optionh_stat(file,bufp);\n  }" else (compound_statement "{\n    if (options.symlink_handling != SYMLINK_DEREF_ARGSONLY) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }\n    iVar1 = optionh_stat(file,bufp);\n  }" { (if_statement "if (options.symlink_handling != SYMLINK_DEREF_ARGSONLY) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }" if (parenthesized_expression "(options.symlink_handling != SYMLINK_DEREF_ARGSONLY)" ( (binary_expression "options.symlink_handling != SYMLINK_DEREF_ARGSONLY" (field_expression "options.symlink_handling" identifier . field_identifier) != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }" { comment (expression_statement "__assert_fail("0","util.c",0x2c1,"debug_stat");" (call_expression "__assert_fail("0","util.c",0x2c1,"debug_stat")" identifier (argument_list "("0","util.c",0x2c1,"debug_stat")" ( (string_literal ""0"" " string_content ") , (string_literal ""util.c"" " string_content ") , number_literal , (string_literal ""debug_stat"" " string_content ") ))) ;) })) (expression_statement "iVar1 = optionh_stat(file,bufp);" (assignment_expression "iVar1 = optionh_stat(file,bufp)" identifier = (call_expression "optionh_stat(file,bufp)" identifier (argument_list "(file,bufp)" ( identifier , identifier )))) ;) }))))) (return_statement "return iVar1;" return identifier ;) })))
(translation_unit "void FUN_0010d1a5(undefined8 param_1,undefined8 param_2)\n\n{\n  _DAT_0014ba88 = _DAT_0014ba88 + 1;\n  __fprintf_chk(stderr,1,"debug_stat (%s)\n",param_1);\n  if (DAT_0014c448 == 1) {\n    FUN_0010d0ee(param_1,param_2);\n  }\n  else if (DAT_0014c448 == 0) {\n    FUN_0010d158(param_1,param_2);\n  }\n  else {\n    if (DAT_0014c448 != 2) {\n                    \n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }\n    FUN_0010d063(param_1,param_2);\n  }\n  return;\n}\n\n" (function_definition "void FUN_0010d1a5(undefined8 param_1,undefined8 param_2)\n\n{\n  _DAT_0014ba88 = _DAT_0014ba88 + 1;\n  __fprintf_chk(stderr,1,"debug_stat (%s)\n",param_1);\n  if (DAT_0014c448 == 1) {\n    FUN_0010d0ee(param_1,param_2);\n  }\n  else if (DAT_0014c448 == 0) {\n    FUN_0010d158(param_1,param_2);\n  }\n  else {\n    if (DAT_0014c448 != 2) {\n                    \n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }\n    FUN_0010d063(param_1,param_2);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0010d1a5(undefined8 param_1,undefined8 param_2)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) ))) (compound_statement "{\n  _DAT_0014ba88 = _DAT_0014ba88 + 1;\n  __fprintf_chk(stderr,1,"debug_stat (%s)\n",param_1);\n  if (DAT_0014c448 == 1) {\n    FUN_0010d0ee(param_1,param_2);\n  }\n  else if (DAT_0014c448 == 0) {\n    FUN_0010d158(param_1,param_2);\n  }\n  else {\n    if (DAT_0014c448 != 2) {\n                    \n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }\n    FUN_0010d063(param_1,param_2);\n  }\n  return;\n}" { (expression_statement "_DAT_0014ba88 = _DAT_0014ba88 + 1;" (assignment_expression "_DAT_0014ba88 = _DAT_0014ba88 + 1" identifier = (binary_expression "_DAT_0014ba88 + 1" identifier + number_literal)) ;) (expression_statement "__fprintf_chk(stderr,1,"debug_stat (%s)\n",param_1);" (call_expression "__fprintf_chk(stderr,1,"debug_stat (%s)\n",param_1)" identifier (argument_list "(stderr,1,"debug_stat (%s)\n",param_1)" ( identifier , number_literal , (string_literal ""debug_stat (%s)\n"" " string_content escape_sequence ") , identifier ))) ;) (if_statement "if (DAT_0014c448 == 1) {\n    FUN_0010d0ee(param_1,param_2);\n  }\n  else if (DAT_0014c448 == 0) {\n    FUN_0010d158(param_1,param_2);\n  }\n  else {\n    if (DAT_0014c448 != 2) {\n                    \n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }\n    FUN_0010d063(param_1,param_2);\n  }" if (parenthesized_expression "(DAT_0014c448 == 1)" ( (binary_expression "DAT_0014c448 == 1" identifier == number_literal) )) (compound_statement "{\n    FUN_0010d0ee(param_1,param_2);\n  }" { (expression_statement "FUN_0010d0ee(param_1,param_2);" (call_expression "FUN_0010d0ee(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) }) (else_clause "else if (DAT_0014c448 == 0) {\n    FUN_0010d158(param_1,param_2);\n  }\n  else {\n    if (DAT_0014c448 != 2) {\n                    \n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }\n    FUN_0010d063(param_1,param_2);\n  }" else (if_statement "if (DAT_0014c448 == 0) {\n    FUN_0010d158(param_1,param_2);\n  }\n  else {\n    if (DAT_0014c448 != 2) {\n                    \n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }\n    FUN_0010d063(param_1,param_2);\n  }" if (parenthesized_expression "(DAT_0014c448 == 0)" ( (binary_expression "DAT_0014c448 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_0010d158(param_1,param_2);\n  }" { (expression_statement "FUN_0010d158(param_1,param_2);" (call_expression "FUN_0010d158(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) }) (else_clause "else {\n    if (DAT_0014c448 != 2) {\n                    \n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }\n    FUN_0010d063(param_1,param_2);\n  }" else (compound_statement "{\n    if (DAT_0014c448 != 2) {\n                    \n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }\n    FUN_0010d063(param_1,param_2);\n  }" { (if_statement "if (DAT_0014c448 != 2) {\n                    \n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }" if (parenthesized_expression "(DAT_0014c448 != 2)" ( (binary_expression "DAT_0014c448 != 2" identifier != number_literal) )) (compound_statement "{\n                    \n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }" { (expression_statement "__assert_fail("0","util.c",0x2c1,"debug_stat");" (call_expression "__assert_fail("0","util.c",0x2c1,"debug_stat")" identifier (argument_list "("0","util.c",0x2c1,"debug_stat")" ( (string_literal ""0"" " string_content ") , (string_literal ""util.c"" " string_content ") , number_literal , (string_literal ""debug_stat"" " string_content ") ))) ;) })) (expression_statement "FUN_0010d063(param_1,param_2);" (call_expression "FUN_0010d063(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) }))))) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content escape_sequence ") , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }))))) (return_statement return ;) })))
(function_definition "void FUN_0010d1a5(undefined8 param_1,undefined8 param_2)\n\n{\n  _DAT_0014ba88 = _DAT_0014ba88 + 1;\n  __fprintf_chk(stderr,1,"debug_stat (%s)\n",param_1);\n  if (DAT_0014c448 == 1) {\n    FUN_0010d0ee(param_1,param_2);\n  }\n  else if (DAT_0014c448 == 0) {\n    FUN_0010d158(param_1,param_2);\n  }\n  else {\n    if (DAT_0014c448 != 2) {\n                    \n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }\n    FUN_0010d063(param_1,param_2);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0010d1a5(undefined8 param_1,undefined8 param_2)" (identifier "FUN_0010d1a5") (parameter_list "(undefined8 param_1,undefined8 param_2)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) () ")"))) (compound_statement "{\n  _DAT_0014ba88 = _DAT_0014ba88 + 1;\n  __fprintf_chk(stderr,1,"debug_stat (%s)\n",param_1);\n  if (DAT_0014c448 == 1) {\n    FUN_0010d0ee(param_1,param_2);\n  }\n  else if (DAT_0014c448 == 0) {\n    FUN_0010d158(param_1,param_2);\n  }\n  else {\n    if (DAT_0014c448 != 2) {\n                    \n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }\n    FUN_0010d063(param_1,param_2);\n  }\n  return;\n}" ({ "{") (expression_statement "_DAT_0014ba88 = _DAT_0014ba88 + 1;" (assignment_expression "_DAT_0014ba88 = _DAT_0014ba88 + 1" (identifier "_DAT_0014ba88") (= "=") (binary_expression "_DAT_0014ba88 + 1" (identifier "_DAT_0014ba88") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "__fprintf_chk(stderr,1,"debug_stat (%s)\n",param_1);" (call_expression "__fprintf_chk(stderr,1,"debug_stat (%s)\n",param_1)" (identifier "__fprintf_chk") (argument_list "(stderr,1,"debug_stat (%s)\n",param_1)" (( "(") (identifier "stderr") (, ",") (number_literal "1") (, ",") (string_literal ""debug_stat (%s)\n"" (" """) (string_content "debug_stat (%s)") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") () ")"))) (; ";")) (if_statement "if (DAT_0014c448 == 1) {\n    FUN_0010d0ee(param_1,param_2);\n  }\n  else if (DAT_0014c448 == 0) {\n    FUN_0010d158(param_1,param_2);\n  }\n  else {\n    if (DAT_0014c448 != 2) {\n                    \n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }\n    FUN_0010d063(param_1,param_2);\n  }" (if "if") (parenthesized_expression "(DAT_0014c448 == 1)" (( "(") (binary_expression "DAT_0014c448 == 1" (identifier "DAT_0014c448") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    FUN_0010d0ee(param_1,param_2);\n  }" ({ "{") (expression_statement "FUN_0010d0ee(param_1,param_2);" (call_expression "FUN_0010d0ee(param_1,param_2)" (identifier "FUN_0010d0ee") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}")) (else_clause "else if (DAT_0014c448 == 0) {\n    FUN_0010d158(param_1,param_2);\n  }\n  else {\n    if (DAT_0014c448 != 2) {\n                    \n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }\n    FUN_0010d063(param_1,param_2);\n  }" (else "else") (if_statement "if (DAT_0014c448 == 0) {\n    FUN_0010d158(param_1,param_2);\n  }\n  else {\n    if (DAT_0014c448 != 2) {\n                    \n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }\n    FUN_0010d063(param_1,param_2);\n  }" (if "if") (parenthesized_expression "(DAT_0014c448 == 0)" (( "(") (binary_expression "DAT_0014c448 == 0" (identifier "DAT_0014c448") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0010d158(param_1,param_2);\n  }" ({ "{") (expression_statement "FUN_0010d158(param_1,param_2);" (call_expression "FUN_0010d158(param_1,param_2)" (identifier "FUN_0010d158") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    if (DAT_0014c448 != 2) {\n                    \n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }\n    FUN_0010d063(param_1,param_2);\n  }" (else "else") (compound_statement "{\n    if (DAT_0014c448 != 2) {\n                    \n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }\n    FUN_0010d063(param_1,param_2);\n  }" ({ "{") (if_statement "if (DAT_0014c448 != 2) {\n                    \n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }" (if "if") (parenthesized_expression "(DAT_0014c448 != 2)" (( "(") (binary_expression "DAT_0014c448 != 2" (identifier "DAT_0014c448") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n                    \n      __assert_fail("0","util.c",0x2c1,"debug_stat");\n    }" ({ "{") (expression_statement "__assert_fail("0","util.c",0x2c1,"debug_stat");" (call_expression "__assert_fail("0","util.c",0x2c1,"debug_stat")" (identifier "__assert_fail") (argument_list "("0","util.c",0x2c1,"debug_stat")" (( "(") (string_literal ""0"" (" """) (string_content "0") (" """)) (, ",") (string_literal ""util.c"" (" """) (string_content "util.c") (" """)) (, ",") (number_literal "0x2c1") (, ",") (string_literal ""debug_stat"" (" """) (string_content "debug_stat") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0010d063(param_1,param_2);" (call_expression "FUN_0010d063(param_1,param_2)" (identifier "FUN_0010d063") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}")))))) (return_statement "return;" (return "return") (; ";")) (} "}")))

int function_1(char *file,type_1 *bufp)

{
  int iVar1;
  
  var_1 = var_1 + 1;
  var_2(stderr,1,"debug_stat (%s)\n",file);
  if (options.symlink_handling == var_3) {
    iVar1 = var_4(file,bufp);
  }
  else if (options.symlink_handling == var_5) {
    iVar1 = var_6(file,bufp);
  }
  else {
    if (options.symlink_handling != var_7) {
                    /* WARNING: Subroutine does not return */
      var_8("0","util.c",0x2c1,"debug_stat");
    }
    iVar1 = var_9(file,bufp);
  }
  return iVar1;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (string_literal (string_content) (escape_sequence)) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))))))) (return_statement))))

/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void MASKED(undefined8 param_1,undefined8 param_2)

{
  _DAT_0014ba88 = _DAT_0014ba88 + 1;
  __fprintf_chk(stderr,1,"debug_stat (%s)\n",param_1);
  if (DAT_0014c448 == 1) {
    FUN_0010d0ee(param_1,param_2);
  }
  else if (DAT_0014c448 == 0) {
    FUN_0010d158(param_1,param_2);
  }
  else {
    if (DAT_0014c448 != 2) {
                    /* WARNING: Subroutine does not return */
      __assert_fail("0","util.c",0x2c1,"debug_stat");
    }
    FUN_0010d063(param_1,param_2);
  }
  return;
}

