
_Bool create_hard_link(char *src_name,char *dst_name,_Bool replace,_Bool verbose,_Bool dereference)

{
  int iVar1;
  char *pcVar2;
  int *piVar3;
  char *pcVar4;
  undefined8 uVar5;
  _Bool _Var6;
  
  iVar1 = force_linkat(-100,src_name,-100,dst_name,(uint)dereference << 10,replace);
  if (iVar1 < 0) {
    pcVar4 = quotearg_n_style(L'\x01',shell_escape_always_quoting_style,src_name);
    pcVar2 = quotearg_n_style(L'\0',shell_escape_always_quoting_style,dst_name);
    uVar5 = dcgettext(0,"cannot create hard link %s to %s",5);
    piVar3 = __errno_location();
    error(0,*piVar3,uVar5,pcVar2,pcVar4);
    _Var6 = false;
  }
  else {
    _Var6 = 0 < iVar1 && verbose;
    if (_Var6) {
      pcVar4 = quotearg_style(shell_escape_always_quoting_style,dst_name);
      uVar5 = dcgettext(0,"removed %s\n",5);
      __printf_chk(1,uVar5,pcVar4);
    }
    else {
      _Var6 = true;
    }
  }
  return _Var6;
}



ulong FUN_00107893(undefined8 param_1,undefined8 param_2,undefined1 param_3,byte param_4,
                  char param_5)

{
  int iVar1;
  undefined8 uVar2;
  int *piVar3;
  undefined8 uVar4;
  undefined8 uVar5;
  ulong uVar6;
  
  iVar1 = FUN_0010cf08(0xffffff9c,param_1,0xffffff9c,param_2,(ulong)(param_5 != '\0') << 10,param_3)
  ;
  if (iVar1 < 0) {
    uVar4 = FUN_001121ee(1,4,param_1);
    uVar5 = FUN_001121ee(0,4,param_2);
    uVar2 = dcgettext(0,"cannot create hard link %s to %s",5);
    piVar3 = __errno_location();
    error(0,*piVar3,uVar2,uVar5,uVar4);
    uVar6 = 0;
  }
  else {
    param_4 = 0 < iVar1 & param_4;
    uVar6 = CONCAT71((int7)((ulong)param_1 >> 8),param_4);
    if (param_4 == 0) {
      uVar6 = 1;
    }
    else {
      uVar4 = FUN_00112342(4,param_2);
      uVar5 = dcgettext(0,"removed %s\n",5);
      __printf_chk(1,uVar5,uVar4);
    }
  }
  return uVar6 & 0xffffffff;
}


PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x8
MOV RBX,RDI
MOV R12,RSI
MOV EBP,ECX
TEST R8B,R8B
SETNZ R8B
MOVZX R8D,R8B
MOVZX R9D,DL
SHL R8D,0xa
MOV RCX,RSI
MOV EDX,0xffffff9c
MOV RSI,RDI
MOV EDI,EDX
CALL 0x0010cf08
TEST EAX,EAX
JS 0x001078e8
SETG BL
AND BL,BPL
JNZ 0x00107951
MOV EBX,0x1
MOV EAX,EBX
ADD RSP,0x8
POP RBX
POP RBP
POP R12
POP R13
RET
MOV RDX,RBX
MOV ESI,0x4
MOV EDI,0x1
CALL 0x001121ee
MOV R13,RAX
MOV RDX,R12
MOV ESI,0x4
MOV EDI,0x0
CALL 0x001121ee
MOV RBP,RAX
MOV EDX,0x5
LEA RSI,[0x11e420]
MOV EDI,0x0
CALL 0x00104280
MOV RBX,RAX
CALL 0x001040b0
MOV R8,R13
MOV RCX,RBP
MOV RDX,RBX
MOV ESI,dword ptr [RAX]
MOV EDI,0x0
MOV EAX,0x0
CALL 0x00104800
MOV EBX,0x0
JMP 0x001078db
MOV RSI,R12
MOV EDI,0x4
CALL 0x00112342
MOV RBP,RAX
MOV EDX,0x5
LEA RSI,[0x11ea98]
MOV EDI,0x0
CALL 0x00104280
MOV RDX,RBP
MOV RSI,RAX
MOV EDI,0x1
MOV EAX,0x0
CALL 0x00104790
JMP 0x001078db
(translation_unit "ulong FUN_00107893(undefined8 param_1,undefined8 param_2,undefined1 param_3,byte param_4,\n                  char param_5)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  int *piVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  ulong uVar6;\n  \n  iVar1 = FUN_0010cf08(0xffffff9c,param_1,0xffffff9c,param_2,(ulong)(param_5 != '\0') << 10,param_3)\n  ;\n  if (iVar1 < 0) {\n    uVar4 = FUN_001121ee(1,4,param_1);\n    uVar5 = FUN_001121ee(0,4,param_2);\n    uVar2 = dcgettext(0,"cannot create hard link %s to %s",5);\n    piVar3 = __errno_location();\n    error(0,*piVar3,uVar2,uVar5,uVar4);\n    uVar6 = 0;\n  }\n  else {\n    param_4 = 0 < iVar1 & param_4;\n    uVar6 = CONCAT71((int7)((ulong)param_1 >> 8),param_4);\n    if (param_4 == 0) {\n      uVar6 = 1;\n    }\n    else {\n      uVar4 = FUN_00112342(4,param_2);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,uVar4);\n    }\n  }\n  return uVar6 & 0xffffffff;\n}\n\n" (function_definition "ulong FUN_00107893(undefined8 param_1,undefined8 param_2,undefined1 param_3,byte param_4,\n                  char param_5)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  int *piVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  ulong uVar6;\n  \n  iVar1 = FUN_0010cf08(0xffffff9c,param_1,0xffffff9c,param_2,(ulong)(param_5 != '\0') << 10,param_3)\n  ;\n  if (iVar1 < 0) {\n    uVar4 = FUN_001121ee(1,4,param_1);\n    uVar5 = FUN_001121ee(0,4,param_2);\n    uVar2 = dcgettext(0,"cannot create hard link %s to %s",5);\n    piVar3 = __errno_location();\n    error(0,*piVar3,uVar2,uVar5,uVar4);\n    uVar6 = 0;\n  }\n  else {\n    param_4 = 0 < iVar1 & param_4;\n    uVar6 = CONCAT71((int7)((ulong)param_1 >> 8),param_4);\n    if (param_4 == 0) {\n      uVar6 = 1;\n    }\n    else {\n      uVar4 = FUN_00112342(4,param_2);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,uVar4);\n    }\n  }\n  return uVar6 & 0xffffffff;\n}" type_identifier (function_declarator "FUN_00107893(undefined8 param_1,undefined8 param_2,undefined1 param_3,byte param_4,\n                  char param_5)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2,undefined1 param_3,byte param_4,\n                  char param_5)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined1 param_3" type_identifier identifier) , (parameter_declaration "byte param_4" type_identifier identifier) , (parameter_declaration "char param_5" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined8 uVar2;\n  int *piVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  ulong uVar6;\n  \n  iVar1 = FUN_0010cf08(0xffffff9c,param_1,0xffffff9c,param_2,(ulong)(param_5 != '\0') << 10,param_3)\n  ;\n  if (iVar1 < 0) {\n    uVar4 = FUN_001121ee(1,4,param_1);\n    uVar5 = FUN_001121ee(0,4,param_2);\n    uVar2 = dcgettext(0,"cannot create hard link %s to %s",5);\n    piVar3 = __errno_location();\n    error(0,*piVar3,uVar2,uVar5,uVar4);\n    uVar6 = 0;\n  }\n  else {\n    param_4 = 0 < iVar1 & param_4;\n    uVar6 = CONCAT71((int7)((ulong)param_1 >> 8),param_4);\n    if (param_4 == 0) {\n      uVar6 = 1;\n    }\n    else {\n      uVar4 = FUN_00112342(4,param_2);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,uVar4);\n    }\n  }\n  return uVar6 & 0xffffffff;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (expression_statement "iVar1 = FUN_0010cf08(0xffffff9c,param_1,0xffffff9c,param_2,(ulong)(param_5 != '\0') << 10,param_3)\n  ;" (assignment_expression "iVar1 = FUN_0010cf08(0xffffff9c,param_1,0xffffff9c,param_2,(ulong)(param_5 != '\0') << 10,param_3)" identifier = (call_expression "FUN_0010cf08(0xffffff9c,param_1,0xffffff9c,param_2,(ulong)(param_5 != '\0') << 10,param_3)" identifier (argument_list "(0xffffff9c,param_1,0xffffff9c,param_2,(ulong)(param_5 != '\0') << 10,param_3)" ( number_literal , identifier , number_literal , identifier , (binary_expression "(ulong)(param_5 != '\0') << 10" (call_expression "(ulong)(param_5 != '\0')" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(param_5 != '\0')" ( (binary_expression "param_5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) << number_literal) , identifier )))) ;) (if_statement "if (iVar1 < 0) {\n    uVar4 = FUN_001121ee(1,4,param_1);\n    uVar5 = FUN_001121ee(0,4,param_2);\n    uVar2 = dcgettext(0,"cannot create hard link %s to %s",5);\n    piVar3 = __errno_location();\n    error(0,*piVar3,uVar2,uVar5,uVar4);\n    uVar6 = 0;\n  }\n  else {\n    param_4 = 0 < iVar1 & param_4;\n    uVar6 = CONCAT71((int7)((ulong)param_1 >> 8),param_4);\n    if (param_4 == 0) {\n      uVar6 = 1;\n    }\n    else {\n      uVar4 = FUN_00112342(4,param_2);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,uVar4);\n    }\n  }" if (parenthesized_expression "(iVar1 < 0)" ( (binary_expression "iVar1 < 0" identifier < number_literal) )) (compound_statement "{\n    uVar4 = FUN_001121ee(1,4,param_1);\n    uVar5 = FUN_001121ee(0,4,param_2);\n    uVar2 = dcgettext(0,"cannot create hard link %s to %s",5);\n    piVar3 = __errno_location();\n    error(0,*piVar3,uVar2,uVar5,uVar4);\n    uVar6 = 0;\n  }" { (expression_statement "uVar4 = FUN_001121ee(1,4,param_1);" (assignment_expression "uVar4 = FUN_001121ee(1,4,param_1)" identifier = (call_expression "FUN_001121ee(1,4,param_1)" identifier (argument_list "(1,4,param_1)" ( number_literal , number_literal , identifier )))) ;) (expression_statement "uVar5 = FUN_001121ee(0,4,param_2);" (assignment_expression "uVar5 = FUN_001121ee(0,4,param_2)" identifier = (call_expression "FUN_001121ee(0,4,param_2)" identifier (argument_list "(0,4,param_2)" ( number_literal , number_literal , identifier )))) ;) (expression_statement "uVar2 = dcgettext(0,"cannot create hard link %s to %s",5);" (assignment_expression "uVar2 = dcgettext(0,"cannot create hard link %s to %s",5)" identifier = (call_expression "dcgettext(0,"cannot create hard link %s to %s",5)" identifier (argument_list "(0,"cannot create hard link %s to %s",5)" ( number_literal , (string_literal ""cannot create hard link %s to %s"" " string_content ") , number_literal )))) ;) (expression_statement "piVar3 = __errno_location();" (assignment_expression "piVar3 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "error(0,*piVar3,uVar2,uVar5,uVar4);" (call_expression "error(0,*piVar3,uVar2,uVar5,uVar4)" identifier (argument_list "(0,*piVar3,uVar2,uVar5,uVar4)" ( number_literal , (pointer_expression "*piVar3" * identifier) , identifier , identifier , identifier ))) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    param_4 = 0 < iVar1 & param_4;\n    uVar6 = CONCAT71((int7)((ulong)param_1 >> 8),param_4);\n    if (param_4 == 0) {\n      uVar6 = 1;\n    }\n    else {\n      uVar4 = FUN_00112342(4,param_2);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,uVar4);\n    }\n  }" else (compound_statement "{\n    param_4 = 0 < iVar1 & param_4;\n    uVar6 = CONCAT71((int7)((ulong)param_1 >> 8),param_4);\n    if (param_4 == 0) {\n      uVar6 = 1;\n    }\n    else {\n      uVar4 = FUN_00112342(4,param_2);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,uVar4);\n    }\n  }" { (expression_statement "param_4 = 0 < iVar1 & param_4;" (assignment_expression "param_4 = 0 < iVar1 & param_4" identifier = (binary_expression "0 < iVar1 & param_4" (binary_expression "0 < iVar1" number_literal < identifier) & identifier)) ;) (expression_statement "uVar6 = CONCAT71((int7)((ulong)param_1 >> 8),param_4);" (assignment_expression "uVar6 = CONCAT71((int7)((ulong)param_1 >> 8),param_4)" identifier = (call_expression "CONCAT71((int7)((ulong)param_1 >> 8),param_4)" identifier (argument_list "((int7)((ulong)param_1 >> 8),param_4)" ( (call_expression "(int7)((ulong)param_1 >> 8)" (parenthesized_expression "(int7)" ( identifier )) (argument_list "((ulong)param_1 >> 8)" ( (binary_expression "(ulong)param_1 >> 8" (cast_expression "(ulong)param_1" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) ))) , identifier )))) ;) (if_statement "if (param_4 == 0) {\n      uVar6 = 1;\n    }\n    else {\n      uVar4 = FUN_00112342(4,param_2);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,uVar4);\n    }" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar6 = 1;\n    }" { (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      uVar4 = FUN_00112342(4,param_2);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,uVar4);\n    }" else (compound_statement "{\n      uVar4 = FUN_00112342(4,param_2);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,uVar4);\n    }" { (expression_statement "uVar4 = FUN_00112342(4,param_2);" (assignment_expression "uVar4 = FUN_00112342(4,param_2)" identifier = (call_expression "FUN_00112342(4,param_2)" identifier (argument_list "(4,param_2)" ( number_literal , identifier )))) ;) (expression_statement "uVar5 = dcgettext(0,"removed %s\n",5);" (assignment_expression "uVar5 = dcgettext(0,"removed %s\n",5)" identifier = (call_expression "dcgettext(0,"removed %s\n",5)" identifier (argument_list "(0,"removed %s\n",5)" ( number_literal , (string_literal ""removed %s\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "__printf_chk(1,uVar5,uVar4);" (call_expression "__printf_chk(1,uVar5,uVar4)" identifier (argument_list "(1,uVar5,uVar4)" ( number_literal , identifier , identifier ))) ;) }))) }))) (return_statement "return uVar6 & 0xffffffff;" return (binary_expression "uVar6 & 0xffffffff" identifier & number_literal) ;) })))
(translation_unit "_Bool create_hard_link(char *src_name,char *dst_name,_Bool replace,_Bool verbose,_Bool dereference)\n\n{\n  int iVar1;\n  char *pcVar2;\n  int *piVar3;\n  char *pcVar4;\n  undefined8 uVar5;\n  _Bool _Var6;\n  \n  iVar1 = force_linkat(-100,src_name,-100,dst_name,(uint)dereference << 10,replace);\n  if (iVar1 < 0) {\n    pcVar4 = quotearg_n_style(L'\x01',shell_escape_always_quoting_style,src_name);\n    pcVar2 = quotearg_n_style(L'\0',shell_escape_always_quoting_style,dst_name);\n    uVar5 = dcgettext(0,"cannot create hard link %s to %s",5);\n    piVar3 = __errno_location();\n    error(0,*piVar3,uVar5,pcVar2,pcVar4);\n    _Var6 = false;\n  }\n  else {\n    _Var6 = 0 < iVar1 && verbose;\n    if (_Var6) {\n      pcVar4 = quotearg_style(shell_escape_always_quoting_style,dst_name);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,pcVar4);\n    }\n    else {\n      _Var6 = true;\n    }\n  }\n  return _Var6;\n}\n\n" (function_definition "_Bool create_hard_link(char *src_name,char *dst_name,_Bool replace,_Bool verbose,_Bool dereference)\n\n{\n  int iVar1;\n  char *pcVar2;\n  int *piVar3;\n  char *pcVar4;\n  undefined8 uVar5;\n  _Bool _Var6;\n  \n  iVar1 = force_linkat(-100,src_name,-100,dst_name,(uint)dereference << 10,replace);\n  if (iVar1 < 0) {\n    pcVar4 = quotearg_n_style(L'\x01',shell_escape_always_quoting_style,src_name);\n    pcVar2 = quotearg_n_style(L'\0',shell_escape_always_quoting_style,dst_name);\n    uVar5 = dcgettext(0,"cannot create hard link %s to %s",5);\n    piVar3 = __errno_location();\n    error(0,*piVar3,uVar5,pcVar2,pcVar4);\n    _Var6 = false;\n  }\n  else {\n    _Var6 = 0 < iVar1 && verbose;\n    if (_Var6) {\n      pcVar4 = quotearg_style(shell_escape_always_quoting_style,dst_name);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,pcVar4);\n    }\n    else {\n      _Var6 = true;\n    }\n  }\n  return _Var6;\n}" type_identifier (function_declarator "create_hard_link(char *src_name,char *dst_name,_Bool replace,_Bool verbose,_Bool dereference)" identifier (parameter_list "(char *src_name,char *dst_name,_Bool replace,_Bool verbose,_Bool dereference)" ( (parameter_declaration "char *src_name" primitive_type (pointer_declarator "*src_name" * identifier)) , (parameter_declaration "char *dst_name" primitive_type (pointer_declarator "*dst_name" * identifier)) , (parameter_declaration "_Bool replace" type_identifier identifier) , (parameter_declaration "_Bool verbose" type_identifier identifier) , (parameter_declaration "_Bool dereference" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  char *pcVar2;\n  int *piVar3;\n  char *pcVar4;\n  undefined8 uVar5;\n  _Bool _Var6;\n  \n  iVar1 = force_linkat(-100,src_name,-100,dst_name,(uint)dereference << 10,replace);\n  if (iVar1 < 0) {\n    pcVar4 = quotearg_n_style(L'\x01',shell_escape_always_quoting_style,src_name);\n    pcVar2 = quotearg_n_style(L'\0',shell_escape_always_quoting_style,dst_name);\n    uVar5 = dcgettext(0,"cannot create hard link %s to %s",5);\n    piVar3 = __errno_location();\n    error(0,*piVar3,uVar5,pcVar2,pcVar4);\n    _Var6 = false;\n  }\n  else {\n    _Var6 = 0 < iVar1 && verbose;\n    if (_Var6) {\n      pcVar4 = quotearg_style(shell_escape_always_quoting_style,dst_name);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,pcVar4);\n    }\n    else {\n      _Var6 = true;\n    }\n  }\n  return _Var6;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "_Bool _Var6;" type_identifier identifier ;) (expression_statement "iVar1 = force_linkat(-100,src_name,-100,dst_name,(uint)dereference << 10,replace);" (assignment_expression "iVar1 = force_linkat(-100,src_name,-100,dst_name,(uint)dereference << 10,replace)" identifier = (call_expression "force_linkat(-100,src_name,-100,dst_name,(uint)dereference << 10,replace)" identifier (argument_list "(-100,src_name,-100,dst_name,(uint)dereference << 10,replace)" ( number_literal , identifier , number_literal , identifier , (binary_expression "(uint)dereference << 10" (cast_expression "(uint)dereference" ( (type_descriptor "uint" type_identifier) ) identifier) << number_literal) , identifier )))) ;) (if_statement "if (iVar1 < 0) {\n    pcVar4 = quotearg_n_style(L'\x01',shell_escape_always_quoting_style,src_name);\n    pcVar2 = quotearg_n_style(L'\0',shell_escape_always_quoting_style,dst_name);\n    uVar5 = dcgettext(0,"cannot create hard link %s to %s",5);\n    piVar3 = __errno_location();\n    error(0,*piVar3,uVar5,pcVar2,pcVar4);\n    _Var6 = false;\n  }\n  else {\n    _Var6 = 0 < iVar1 && verbose;\n    if (_Var6) {\n      pcVar4 = quotearg_style(shell_escape_always_quoting_style,dst_name);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,pcVar4);\n    }\n    else {\n      _Var6 = true;\n    }\n  }" if (parenthesized_expression "(iVar1 < 0)" ( (binary_expression "iVar1 < 0" identifier < number_literal) )) (compound_statement "{\n    pcVar4 = quotearg_n_style(L'\x01',shell_escape_always_quoting_style,src_name);\n    pcVar2 = quotearg_n_style(L'\0',shell_escape_always_quoting_style,dst_name);\n    uVar5 = dcgettext(0,"cannot create hard link %s to %s",5);\n    piVar3 = __errno_location();\n    error(0,*piVar3,uVar5,pcVar2,pcVar4);\n    _Var6 = false;\n  }" { (expression_statement "pcVar4 = quotearg_n_style(L'\x01',shell_escape_always_quoting_style,src_name);" (assignment_expression "pcVar4 = quotearg_n_style(L'\x01',shell_escape_always_quoting_style,src_name)" identifier = (call_expression "quotearg_n_style(L'\x01',shell_escape_always_quoting_style,src_name)" identifier (argument_list "(L'\x01',shell_escape_always_quoting_style,src_name)" ( (char_literal "L'\x01'" L' escape_sequence ') , identifier , identifier )))) ;) (expression_statement "pcVar2 = quotearg_n_style(L'\0',shell_escape_always_quoting_style,dst_name);" (assignment_expression "pcVar2 = quotearg_n_style(L'\0',shell_escape_always_quoting_style,dst_name)" identifier = (call_expression "quotearg_n_style(L'\0',shell_escape_always_quoting_style,dst_name)" identifier (argument_list "(L'\0',shell_escape_always_quoting_style,dst_name)" ( (char_literal "L'\0'" L' escape_sequence ') , identifier , identifier )))) ;) (expression_statement "uVar5 = dcgettext(0,"cannot create hard link %s to %s",5);" (assignment_expression "uVar5 = dcgettext(0,"cannot create hard link %s to %s",5)" identifier = (call_expression "dcgettext(0,"cannot create hard link %s to %s",5)" identifier (argument_list "(0,"cannot create hard link %s to %s",5)" ( number_literal , (string_literal ""cannot create hard link %s to %s"" " string_content ") , number_literal )))) ;) (expression_statement "piVar3 = __errno_location();" (assignment_expression "piVar3 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "error(0,*piVar3,uVar5,pcVar2,pcVar4);" (call_expression "error(0,*piVar3,uVar5,pcVar2,pcVar4)" identifier (argument_list "(0,*piVar3,uVar5,pcVar2,pcVar4)" ( number_literal , (pointer_expression "*piVar3" * identifier) , identifier , identifier , identifier ))) ;) (expression_statement "_Var6 = false;" (assignment_expression "_Var6 = false" identifier = false) ;) }) (else_clause "else {\n    _Var6 = 0 < iVar1 && verbose;\n    if (_Var6) {\n      pcVar4 = quotearg_style(shell_escape_always_quoting_style,dst_name);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,pcVar4);\n    }\n    else {\n      _Var6 = true;\n    }\n  }" else (compound_statement "{\n    _Var6 = 0 < iVar1 && verbose;\n    if (_Var6) {\n      pcVar4 = quotearg_style(shell_escape_always_quoting_style,dst_name);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,pcVar4);\n    }\n    else {\n      _Var6 = true;\n    }\n  }" { (expression_statement "_Var6 = 0 < iVar1 && verbose;" (assignment_expression "_Var6 = 0 < iVar1 && verbose" identifier = (binary_expression "0 < iVar1 && verbose" (binary_expression "0 < iVar1" number_literal < identifier) && identifier)) ;) (if_statement "if (_Var6) {\n      pcVar4 = quotearg_style(shell_escape_always_quoting_style,dst_name);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,pcVar4);\n    }\n    else {\n      _Var6 = true;\n    }" if (parenthesized_expression "(_Var6)" ( identifier )) (compound_statement "{\n      pcVar4 = quotearg_style(shell_escape_always_quoting_style,dst_name);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,pcVar4);\n    }" { (expression_statement "pcVar4 = quotearg_style(shell_escape_always_quoting_style,dst_name);" (assignment_expression "pcVar4 = quotearg_style(shell_escape_always_quoting_style,dst_name)" identifier = (call_expression "quotearg_style(shell_escape_always_quoting_style,dst_name)" identifier (argument_list "(shell_escape_always_quoting_style,dst_name)" ( identifier , identifier )))) ;) (expression_statement "uVar5 = dcgettext(0,"removed %s\n",5);" (assignment_expression "uVar5 = dcgettext(0,"removed %s\n",5)" identifier = (call_expression "dcgettext(0,"removed %s\n",5)" identifier (argument_list "(0,"removed %s\n",5)" ( number_literal , (string_literal ""removed %s\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "__printf_chk(1,uVar5,pcVar4);" (call_expression "__printf_chk(1,uVar5,pcVar4)" identifier (argument_list "(1,uVar5,pcVar4)" ( number_literal , identifier , identifier ))) ;) }) (else_clause "else {\n      _Var6 = true;\n    }" else (compound_statement "{\n      _Var6 = true;\n    }" { (expression_statement "_Var6 = true;" (assignment_expression "_Var6 = true" identifier = true) ;) }))) }))) (return_statement "return _Var6;" return identifier ;) })))
(translation_unit "ulong FUN_00107893(undefined8 param_1,undefined8 param_2,undefined1 param_3,byte param_4,\n                  char param_5)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  int *piVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  ulong uVar6;\n  \n  iVar1 = FUN_0010cf08(0xffffff9c,param_1,0xffffff9c,param_2,(ulong)(param_5 != '\0') << 10,param_3)\n  ;\n  if (iVar1 < 0) {\n    uVar4 = FUN_001121ee(1,4,param_1);\n    uVar5 = FUN_001121ee(0,4,param_2);\n    uVar2 = dcgettext(0,"cannot create hard link %s to %s",5);\n    piVar3 = __errno_location();\n    error(0,*piVar3,uVar2,uVar5,uVar4);\n    uVar6 = 0;\n  }\n  else {\n    param_4 = 0 < iVar1 & param_4;\n    uVar6 = CONCAT71((int7)((ulong)param_1 >> 8),param_4);\n    if (param_4 == 0) {\n      uVar6 = 1;\n    }\n    else {\n      uVar4 = FUN_00112342(4,param_2);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,uVar4);\n    }\n  }\n  return uVar6 & 0xffffffff;\n}\n\n" (function_definition "ulong FUN_00107893(undefined8 param_1,undefined8 param_2,undefined1 param_3,byte param_4,\n                  char param_5)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  int *piVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  ulong uVar6;\n  \n  iVar1 = FUN_0010cf08(0xffffff9c,param_1,0xffffff9c,param_2,(ulong)(param_5 != '\0') << 10,param_3)\n  ;\n  if (iVar1 < 0) {\n    uVar4 = FUN_001121ee(1,4,param_1);\n    uVar5 = FUN_001121ee(0,4,param_2);\n    uVar2 = dcgettext(0,"cannot create hard link %s to %s",5);\n    piVar3 = __errno_location();\n    error(0,*piVar3,uVar2,uVar5,uVar4);\n    uVar6 = 0;\n  }\n  else {\n    param_4 = 0 < iVar1 & param_4;\n    uVar6 = CONCAT71((int7)((ulong)param_1 >> 8),param_4);\n    if (param_4 == 0) {\n      uVar6 = 1;\n    }\n    else {\n      uVar4 = FUN_00112342(4,param_2);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,uVar4);\n    }\n  }\n  return uVar6 & 0xffffffff;\n}" type_identifier (function_declarator "FUN_00107893(undefined8 param_1,undefined8 param_2,undefined1 param_3,byte param_4,\n                  char param_5)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2,undefined1 param_3,byte param_4,\n                  char param_5)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined1 param_3" type_identifier identifier) , (parameter_declaration "byte param_4" type_identifier identifier) , (parameter_declaration "char param_5" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined8 uVar2;\n  int *piVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  ulong uVar6;\n  \n  iVar1 = FUN_0010cf08(0xffffff9c,param_1,0xffffff9c,param_2,(ulong)(param_5 != '\0') << 10,param_3)\n  ;\n  if (iVar1 < 0) {\n    uVar4 = FUN_001121ee(1,4,param_1);\n    uVar5 = FUN_001121ee(0,4,param_2);\n    uVar2 = dcgettext(0,"cannot create hard link %s to %s",5);\n    piVar3 = __errno_location();\n    error(0,*piVar3,uVar2,uVar5,uVar4);\n    uVar6 = 0;\n  }\n  else {\n    param_4 = 0 < iVar1 & param_4;\n    uVar6 = CONCAT71((int7)((ulong)param_1 >> 8),param_4);\n    if (param_4 == 0) {\n      uVar6 = 1;\n    }\n    else {\n      uVar4 = FUN_00112342(4,param_2);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,uVar4);\n    }\n  }\n  return uVar6 & 0xffffffff;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (expression_statement "iVar1 = FUN_0010cf08(0xffffff9c,param_1,0xffffff9c,param_2,(ulong)(param_5 != '\0') << 10,param_3)\n  ;" (assignment_expression "iVar1 = FUN_0010cf08(0xffffff9c,param_1,0xffffff9c,param_2,(ulong)(param_5 != '\0') << 10,param_3)" identifier = (call_expression "FUN_0010cf08(0xffffff9c,param_1,0xffffff9c,param_2,(ulong)(param_5 != '\0') << 10,param_3)" identifier (argument_list "(0xffffff9c,param_1,0xffffff9c,param_2,(ulong)(param_5 != '\0') << 10,param_3)" ( number_literal , identifier , number_literal , identifier , (binary_expression "(ulong)(param_5 != '\0') << 10" (call_expression "(ulong)(param_5 != '\0')" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(param_5 != '\0')" ( (binary_expression "param_5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) << number_literal) , identifier )))) ;) (if_statement "if (iVar1 < 0) {\n    uVar4 = FUN_001121ee(1,4,param_1);\n    uVar5 = FUN_001121ee(0,4,param_2);\n    uVar2 = dcgettext(0,"cannot create hard link %s to %s",5);\n    piVar3 = __errno_location();\n    error(0,*piVar3,uVar2,uVar5,uVar4);\n    uVar6 = 0;\n  }\n  else {\n    param_4 = 0 < iVar1 & param_4;\n    uVar6 = CONCAT71((int7)((ulong)param_1 >> 8),param_4);\n    if (param_4 == 0) {\n      uVar6 = 1;\n    }\n    else {\n      uVar4 = FUN_00112342(4,param_2);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,uVar4);\n    }\n  }" if (parenthesized_expression "(iVar1 < 0)" ( (binary_expression "iVar1 < 0" identifier < number_literal) )) (compound_statement "{\n    uVar4 = FUN_001121ee(1,4,param_1);\n    uVar5 = FUN_001121ee(0,4,param_2);\n    uVar2 = dcgettext(0,"cannot create hard link %s to %s",5);\n    piVar3 = __errno_location();\n    error(0,*piVar3,uVar2,uVar5,uVar4);\n    uVar6 = 0;\n  }" { (expression_statement "uVar4 = FUN_001121ee(1,4,param_1);" (assignment_expression "uVar4 = FUN_001121ee(1,4,param_1)" identifier = (call_expression "FUN_001121ee(1,4,param_1)" identifier (argument_list "(1,4,param_1)" ( number_literal , number_literal , identifier )))) ;) (expression_statement "uVar5 = FUN_001121ee(0,4,param_2);" (assignment_expression "uVar5 = FUN_001121ee(0,4,param_2)" identifier = (call_expression "FUN_001121ee(0,4,param_2)" identifier (argument_list "(0,4,param_2)" ( number_literal , number_literal , identifier )))) ;) (expression_statement "uVar2 = dcgettext(0,"cannot create hard link %s to %s",5);" (assignment_expression "uVar2 = dcgettext(0,"cannot create hard link %s to %s",5)" identifier = (call_expression "dcgettext(0,"cannot create hard link %s to %s",5)" identifier (argument_list "(0,"cannot create hard link %s to %s",5)" ( number_literal , (string_literal ""cannot create hard link %s to %s"" " string_content ") , number_literal )))) ;) (expression_statement "piVar3 = __errno_location();" (assignment_expression "piVar3 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "error(0,*piVar3,uVar2,uVar5,uVar4);" (call_expression "error(0,*piVar3,uVar2,uVar5,uVar4)" identifier (argument_list "(0,*piVar3,uVar2,uVar5,uVar4)" ( number_literal , (pointer_expression "*piVar3" * identifier) , identifier , identifier , identifier ))) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    param_4 = 0 < iVar1 & param_4;\n    uVar6 = CONCAT71((int7)((ulong)param_1 >> 8),param_4);\n    if (param_4 == 0) {\n      uVar6 = 1;\n    }\n    else {\n      uVar4 = FUN_00112342(4,param_2);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,uVar4);\n    }\n  }" else (compound_statement "{\n    param_4 = 0 < iVar1 & param_4;\n    uVar6 = CONCAT71((int7)((ulong)param_1 >> 8),param_4);\n    if (param_4 == 0) {\n      uVar6 = 1;\n    }\n    else {\n      uVar4 = FUN_00112342(4,param_2);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,uVar4);\n    }\n  }" { (expression_statement "param_4 = 0 < iVar1 & param_4;" (assignment_expression "param_4 = 0 < iVar1 & param_4" identifier = (binary_expression "0 < iVar1 & param_4" (binary_expression "0 < iVar1" number_literal < identifier) & identifier)) ;) (expression_statement "uVar6 = CONCAT71((int7)((ulong)param_1 >> 8),param_4);" (assignment_expression "uVar6 = CONCAT71((int7)((ulong)param_1 >> 8),param_4)" identifier = (call_expression "CONCAT71((int7)((ulong)param_1 >> 8),param_4)" identifier (argument_list "((int7)((ulong)param_1 >> 8),param_4)" ( (call_expression "(int7)((ulong)param_1 >> 8)" (parenthesized_expression "(int7)" ( identifier )) (argument_list "((ulong)param_1 >> 8)" ( (binary_expression "(ulong)param_1 >> 8" (cast_expression "(ulong)param_1" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) ))) , identifier )))) ;) (if_statement "if (param_4 == 0) {\n      uVar6 = 1;\n    }\n    else {\n      uVar4 = FUN_00112342(4,param_2);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,uVar4);\n    }" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar6 = 1;\n    }" { (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      uVar4 = FUN_00112342(4,param_2);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,uVar4);\n    }" else (compound_statement "{\n      uVar4 = FUN_00112342(4,param_2);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,uVar4);\n    }" { (expression_statement "uVar4 = FUN_00112342(4,param_2);" (assignment_expression "uVar4 = FUN_00112342(4,param_2)" identifier = (call_expression "FUN_00112342(4,param_2)" identifier (argument_list "(4,param_2)" ( number_literal , identifier )))) ;) (expression_statement "uVar5 = dcgettext(0,"removed %s\n",5);" (assignment_expression "uVar5 = dcgettext(0,"removed %s\n",5)" identifier = (call_expression "dcgettext(0,"removed %s\n",5)" identifier (argument_list "(0,"removed %s\n",5)" ( number_literal , (string_literal ""removed %s\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "__printf_chk(1,uVar5,uVar4);" (call_expression "__printf_chk(1,uVar5,uVar4)" identifier (argument_list "(1,uVar5,uVar4)" ( number_literal , identifier , identifier ))) ;) }))) }))) (return_statement "return uVar6 & 0xffffffff;" return (binary_expression "uVar6 & 0xffffffff" identifier & number_literal) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT , IDENT , (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) << LIT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (pointer_expression * IDENT) , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression LIT < IDENT) & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , IDENT ))) ;) }))) }))) (return_statement return (binary_expression IDENT & LIT) ;) })))
(function_definition "ulong FUN_00107893(undefined8 param_1,undefined8 param_2,undefined1 param_3,byte param_4,\n                  char param_5)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  int *piVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  ulong uVar6;\n  \n  iVar1 = FUN_0010cf08(0xffffff9c,param_1,0xffffff9c,param_2,(ulong)(param_5 != '\0') << 10,param_3)\n  ;\n  if (iVar1 < 0) {\n    uVar4 = FUN_001121ee(1,4,param_1);\n    uVar5 = FUN_001121ee(0,4,param_2);\n    uVar2 = dcgettext(0,"cannot create hard link %s to %s",5);\n    piVar3 = __errno_location();\n    error(0,*piVar3,uVar2,uVar5,uVar4);\n    uVar6 = 0;\n  }\n  else {\n    param_4 = 0 < iVar1 & param_4;\n    uVar6 = CONCAT71((int7)((ulong)param_1 >> 8),param_4);\n    if (param_4 == 0) {\n      uVar6 = 1;\n    }\n    else {\n      uVar4 = FUN_00112342(4,param_2);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,uVar4);\n    }\n  }\n  return uVar6 & 0xffffffff;\n}" (type_identifier "ulong") (function_declarator "FUN_00107893(undefined8 param_1,undefined8 param_2,undefined1 param_3,byte param_4,\n                  char param_5)" (identifier "FUN_00107893") (parameter_list "(undefined8 param_1,undefined8 param_2,undefined1 param_3,byte param_4,\n                  char param_5)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "undefined1 param_3" (type_identifier "undefined1") (identifier "param_3")) (, ",") (parameter_declaration "byte param_4" (type_identifier "byte") (identifier "param_4")) (, ",") (parameter_declaration "char param_5" (primitive_type "char") (identifier "param_5")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined8 uVar2;\n  int *piVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  ulong uVar6;\n  \n  iVar1 = FUN_0010cf08(0xffffff9c,param_1,0xffffff9c,param_2,(ulong)(param_5 != '\0') << 10,param_3)\n  ;\n  if (iVar1 < 0) {\n    uVar4 = FUN_001121ee(1,4,param_1);\n    uVar5 = FUN_001121ee(0,4,param_2);\n    uVar2 = dcgettext(0,"cannot create hard link %s to %s",5);\n    piVar3 = __errno_location();\n    error(0,*piVar3,uVar2,uVar5,uVar4);\n    uVar6 = 0;\n  }\n  else {\n    param_4 = 0 < iVar1 & param_4;\n    uVar6 = CONCAT71((int7)((ulong)param_1 >> 8),param_4);\n    if (param_4 == 0) {\n      uVar6 = 1;\n    }\n    else {\n      uVar4 = FUN_00112342(4,param_2);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,uVar4);\n    }\n  }\n  return uVar6 & 0xffffffff;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (declaration "undefined8 uVar5;" (type_identifier "undefined8") (identifier "uVar5") (; ";")) (declaration "ulong uVar6;" (type_identifier "ulong") (identifier "uVar6") (; ";")) (expression_statement "iVar1 = FUN_0010cf08(0xffffff9c,param_1,0xffffff9c,param_2,(ulong)(param_5 != '\0') << 10,param_3)\n  ;" (assignment_expression "iVar1 = FUN_0010cf08(0xffffff9c,param_1,0xffffff9c,param_2,(ulong)(param_5 != '\0') << 10,param_3)" (identifier "iVar1") (= "=") (call_expression "FUN_0010cf08(0xffffff9c,param_1,0xffffff9c,param_2,(ulong)(param_5 != '\0') << 10,param_3)" (identifier "FUN_0010cf08") (argument_list "(0xffffff9c,param_1,0xffffff9c,param_2,(ulong)(param_5 != '\0') << 10,param_3)" (( "(") (number_literal "0xffffff9c") (, ",") (identifier "param_1") (, ",") (number_literal "0xffffff9c") (, ",") (identifier "param_2") (, ",") (binary_expression "(ulong)(param_5 != '\0') << 10" (call_expression "(ulong)(param_5 != '\0')" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(param_5 != '\0')" (( "(") (binary_expression "param_5 != '\0'" (identifier "param_5") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) (<< "<<") (number_literal "10")) (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (iVar1 < 0) {\n    uVar4 = FUN_001121ee(1,4,param_1);\n    uVar5 = FUN_001121ee(0,4,param_2);\n    uVar2 = dcgettext(0,"cannot create hard link %s to %s",5);\n    piVar3 = __errno_location();\n    error(0,*piVar3,uVar2,uVar5,uVar4);\n    uVar6 = 0;\n  }\n  else {\n    param_4 = 0 < iVar1 & param_4;\n    uVar6 = CONCAT71((int7)((ulong)param_1 >> 8),param_4);\n    if (param_4 == 0) {\n      uVar6 = 1;\n    }\n    else {\n      uVar4 = FUN_00112342(4,param_2);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,uVar4);\n    }\n  }" (if "if") (parenthesized_expression "(iVar1 < 0)" (( "(") (binary_expression "iVar1 < 0" (identifier "iVar1") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    uVar4 = FUN_001121ee(1,4,param_1);\n    uVar5 = FUN_001121ee(0,4,param_2);\n    uVar2 = dcgettext(0,"cannot create hard link %s to %s",5);\n    piVar3 = __errno_location();\n    error(0,*piVar3,uVar2,uVar5,uVar4);\n    uVar6 = 0;\n  }" ({ "{") (expression_statement "uVar4 = FUN_001121ee(1,4,param_1);" (assignment_expression "uVar4 = FUN_001121ee(1,4,param_1)" (identifier "uVar4") (= "=") (call_expression "FUN_001121ee(1,4,param_1)" (identifier "FUN_001121ee") (argument_list "(1,4,param_1)" (( "(") (number_literal "1") (, ",") (number_literal "4") (, ",") (identifier "param_1") () ")")))) (; ";")) (expression_statement "uVar5 = FUN_001121ee(0,4,param_2);" (assignment_expression "uVar5 = FUN_001121ee(0,4,param_2)" (identifier "uVar5") (= "=") (call_expression "FUN_001121ee(0,4,param_2)" (identifier "FUN_001121ee") (argument_list "(0,4,param_2)" (( "(") (number_literal "0") (, ",") (number_literal "4") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "uVar2 = dcgettext(0,"cannot create hard link %s to %s",5);" (assignment_expression "uVar2 = dcgettext(0,"cannot create hard link %s to %s",5)" (identifier "uVar2") (= "=") (call_expression "dcgettext(0,"cannot create hard link %s to %s",5)" (identifier "dcgettext") (argument_list "(0,"cannot create hard link %s to %s",5)" (( "(") (number_literal "0") (, ",") (string_literal ""cannot create hard link %s to %s"" (" """) (string_content "cannot create hard link %s to %s") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "piVar3 = __errno_location();" (assignment_expression "piVar3 = __errno_location()" (identifier "piVar3") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "error(0,*piVar3,uVar2,uVar5,uVar4);" (call_expression "error(0,*piVar3,uVar2,uVar5,uVar4)" (identifier "error") (argument_list "(0,*piVar3,uVar2,uVar5,uVar4)" (( "(") (number_literal "0") (, ",") (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (, ",") (identifier "uVar2") (, ",") (identifier "uVar5") (, ",") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    param_4 = 0 < iVar1 & param_4;\n    uVar6 = CONCAT71((int7)((ulong)param_1 >> 8),param_4);\n    if (param_4 == 0) {\n      uVar6 = 1;\n    }\n    else {\n      uVar4 = FUN_00112342(4,param_2);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,uVar4);\n    }\n  }" (else "else") (compound_statement "{\n    param_4 = 0 < iVar1 & param_4;\n    uVar6 = CONCAT71((int7)((ulong)param_1 >> 8),param_4);\n    if (param_4 == 0) {\n      uVar6 = 1;\n    }\n    else {\n      uVar4 = FUN_00112342(4,param_2);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,uVar4);\n    }\n  }" ({ "{") (expression_statement "param_4 = 0 < iVar1 & param_4;" (assignment_expression "param_4 = 0 < iVar1 & param_4" (identifier "param_4") (= "=") (binary_expression "0 < iVar1 & param_4" (binary_expression "0 < iVar1" (number_literal "0") (< "<") (identifier "iVar1")) (& "&") (identifier "param_4"))) (; ";")) (expression_statement "uVar6 = CONCAT71((int7)((ulong)param_1 >> 8),param_4);" (assignment_expression "uVar6 = CONCAT71((int7)((ulong)param_1 >> 8),param_4)" (identifier "uVar6") (= "=") (call_expression "CONCAT71((int7)((ulong)param_1 >> 8),param_4)" (identifier "CONCAT71") (argument_list "((int7)((ulong)param_1 >> 8),param_4)" (( "(") (call_expression "(int7)((ulong)param_1 >> 8)" (parenthesized_expression "(int7)" (( "(") (identifier "int7") () ")")) (argument_list "((ulong)param_1 >> 8)" (( "(") (binary_expression "(ulong)param_1 >> 8" (cast_expression "(ulong)param_1" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "param_1")) (>> ">>") (number_literal "8")) () ")"))) (, ",") (identifier "param_4") () ")")))) (; ";")) (if_statement "if (param_4 == 0) {\n      uVar6 = 1;\n    }\n    else {\n      uVar4 = FUN_00112342(4,param_2);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,uVar4);\n    }" (if "if") (parenthesized_expression "(param_4 == 0)" (( "(") (binary_expression "param_4 == 0" (identifier "param_4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar6 = 1;\n    }" ({ "{") (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" (identifier "uVar6") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n      uVar4 = FUN_00112342(4,param_2);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,uVar4);\n    }" (else "else") (compound_statement "{\n      uVar4 = FUN_00112342(4,param_2);\n      uVar5 = dcgettext(0,"removed %s\n",5);\n      __printf_chk(1,uVar5,uVar4);\n    }" ({ "{") (expression_statement "uVar4 = FUN_00112342(4,param_2);" (assignment_expression "uVar4 = FUN_00112342(4,param_2)" (identifier "uVar4") (= "=") (call_expression "FUN_00112342(4,param_2)" (identifier "FUN_00112342") (argument_list "(4,param_2)" (( "(") (number_literal "4") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "uVar5 = dcgettext(0,"removed %s\n",5);" (assignment_expression "uVar5 = dcgettext(0,"removed %s\n",5)" (identifier "uVar5") (= "=") (call_expression "dcgettext(0,"removed %s\n",5)" (identifier "dcgettext") (argument_list "(0,"removed %s\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""removed %s\n"" (" """) (string_content "removed %s") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "__printf_chk(1,uVar5,uVar4);" (call_expression "__printf_chk(1,uVar5,uVar4)" (identifier "__printf_chk") (argument_list "(1,uVar5,uVar4)" (( "(") (number_literal "1") (, ",") (identifier "uVar5") (, ",") (identifier "uVar4") () ")"))) (; ";")) (} "}")))) (} "}")))) (return_statement "return uVar6 & 0xffffffff;" (return "return") (binary_expression "uVar6 & 0xffffffff" (identifier "uVar6") (& "&") (number_literal "0xffffffff")) (; ";")) (} "}")))

type_1 function_1(char *src_name,char *dst_name,type_1 replace,type_1 var_7,type_1 dereference)

{
  int var_2;
  char *pcVar2;
  int *piVar3;
  char *pcVar4;
  type_2 uVar5;
  type_1 _Var6;
  
  var_2 = var_1(-100,src_name,-100,dst_name,(type_3)dereference << 10,replace);
  if (var_2 < 0) {
    pcVar4 = var_3(L'\x01',shell_escape_always_quoting_style,src_name);
    pcVar2 = var_3(L'\0',shell_escape_always_quoting_style,dst_name);
    uVar5 = var_4(0,"cannot create hard link %s to %s",5);
    piVar3 = var_5();
    var_6(0,*piVar3,uVar5,pcVar2,pcVar4);
    _Var6 = false;
  }
  else {
    _Var6 = 0 < var_2 && var_7;
    if (_Var6) {
      pcVar4 = var_8(shell_escape_always_quoting_style,dst_name);
      uVar5 = var_4(0,"removed %s\n",5);
      var_9(1,uVar5,pcVar4);
    }
    else {
      _Var6 = true;
    }
  }
  return _Var6;
}


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

ulong MASKED(undefined8 param_1,undefined8 param_2,undefined1 param_3,byte param_4,
                  char param_5)

{
  int iVar1;
  undefined8 uVar2;
  int *piVar3;
  undefined8 uVar4;
  undefined8 uVar5;
  ulong uVar6;
  
  iVar1 = FUN_0010cf08(0xffffff9c,param_1,0xffffff9c,param_2,(ulong)(param_5 != '\0') << 10,param_3)
  ;
  if (iVar1 < 0) {
    uVar4 = FUN_001121ee(1,4,param_1);
    uVar5 = FUN_001121ee(0,4,param_2);
    uVar2 = dcgettext(0,"cannot create hard link %s to %s",5);
    piVar3 = __errno_location();
    error(0,*piVar3,uVar2,uVar5,uVar4);
    uVar6 = 0;
  }
  else {
    param_4 = 0 < iVar1 & param_4;
    uVar6 = CONCAT71((int7)((ulong)param_1 >> 8),param_4);
    if (param_4 == 0) {
      uVar6 = 1;
    }
    else {
      uVar4 = FUN_00112342(4,param_2);
      uVar5 = dcgettext(0,"removed %s\n",5);
      __printf_chk(1,uVar5,uVar4);
    }
  }
  return uVar6 & 0xffffffff;
}

