
char * make_temp_file(char *suffix)

{
  int iVar1;
  char *__s;
  size_t sVar2;
  char *pcVar3;
  int *piVar4;
  long lVar5;
  long lVar6;
  
  __s = choose_tmpdir();
  if (suffix == (char *)0x0) {
    iVar1 = 0;
    lVar6 = 0;
    suffix = "";
  }
  else {
    sVar2 = strlen(suffix);
    iVar1 = (int)sVar2;
    lVar6 = (long)iVar1;
  }
  sVar2 = strlen(__s);
  lVar5 = (long)(int)sVar2;
  pcVar3 = (char *)xmalloc(lVar5 + 9 + lVar6);
  strcpy(pcVar3,__s);
  builtin_strncpy(pcVar3 + lVar5,"ccXXXXXX",9);
  strcpy(pcVar3 + lVar5 + 8,suffix);
  iVar1 = mkstemps(pcVar3,iVar1);
  if (iVar1 != -1) {
    iVar1 = close(iVar1);
    if (iVar1 == 0) {
      return pcVar3;
    }
                    /* WARNING: Subroutine does not return */
    abort();
  }
  piVar4 = __errno_location();
  pcVar3 = strerror(*piVar4);
  fprintf(*(FILE **)PTR_stderr_0010fff8,"Cannot create temporary file in %s: %s\n",__s,pcVar3);
                    /* WARNING: Subroutine does not return */
  abort();
}



char * FUN_001091c0(char *param_1)

{
  int iVar1;
  char *__s;
  size_t sVar2;
  char *pcVar3;
  int *piVar4;
  long lVar5;
  long lVar6;
  
  __s = (char *)FUN_00108f60();
  if (param_1 == (char *)0x0) {
    iVar1 = 0;
    lVar6 = 0;
    param_1 = "";
  }
  else {
    sVar2 = strlen(param_1);
    iVar1 = (int)sVar2;
    lVar6 = (long)iVar1;
  }
  sVar2 = strlen(__s);
  lVar5 = (long)(int)sVar2;
  pcVar3 = (char *)xmalloc(lVar5 + 9 + lVar6);
  strcpy(pcVar3,__s);
  builtin_strncpy(pcVar3 + lVar5,"ccXXXXXX",9);
  strcpy(pcVar3 + lVar5 + 8,param_1);
  iVar1 = mkstemps(pcVar3,iVar1);
  if (iVar1 != -1) {
    iVar1 = close(iVar1);
    if (iVar1 == 0) {
      return pcVar3;
    }
                    /* WARNING: Subroutine does not return */
    abort();
  }
  piVar4 = __errno_location();
  pcVar3 = strerror(*piVar4);
  fprintf(*(FILE **)PTR_stderr_0010fff8,"Cannot create temporary file in %s: %s\n",__s,pcVar3);
                    /* WARNING: Subroutine does not return */
  abort();
}


PUSH R14
PUSH R13
PUSH R12
MOV R12,RDI
PUSH RBP
PUSH RBX
CALL 0x00108f60
MOV R13,RAX
TEST R12,R12
JZ 0x00109260
MOV RDI,R12
CALL 0x001021c0
MOV R14D,EAX
MOVSXD RBP,EAX
MOV RDI,R13
CALL 0x001021c0
MOVSXD RBX,EAX
LEA RDI,[RBX + RBP*0x1 + 0x9]
CALL 0x00102270
MOV RSI,R13
MOV RBP,RAX
MOV RDI,RAX
CALL 0x001020c0
LEA RAX,[RBP + RBX*0x1]
LEA RDI,[RBP + RBX*0x1 + 0x8]
MOV RSI,R12
MOV RDX,0x5858585858586363
MOV byte ptr [RAX + 0x8],0x0
MOV qword ptr [RAX],RDX
CALL 0x001020c0
MOV ESI,R14D
MOV RDI,RBP
CALL 0x00102030
CMP EAX,-0x1
JZ 0x00109271
MOV EDI,EAX
CALL 0x001022a0
TEST EAX,EAX
JNZ 0x00102610
POP RBX
MOV RAX,RBP
POP RBP
POP R12
POP R13
POP R14
RET
XOR R14D,R14D
XOR EBP,EBP
LEA R12,[0x10b043]
JMP 0x001091ea
CALL 0x001020a0
MOV EDI,dword ptr [RAX]
CALL 0x001025d0
MOV RDX,R13
LEA RSI,[0x10c6f8]
MOV RCX,RAX
MOV RAX,qword ptr [0x0010fff8]
MOV RDI,qword ptr [RAX]
XOR EAX,EAX
CALL 0x00102340
CALL 0x00102090
(translation_unit "char * FUN_001091c0(char *param_1)\n\n{\n  int iVar1;\n  char *__s;\n  size_t sVar2;\n  char *pcVar3;\n  int *piVar4;\n  long lVar5;\n  long lVar6;\n  \n  __s = (char *)FUN_00108f60();\n  if (param_1 == (char *)0x0) {\n    iVar1 = 0;\n    lVar6 = 0;\n    param_1 = "";\n  }\n  else {\n    sVar2 = strlen(param_1);\n    iVar1 = (int)sVar2;\n    lVar6 = (long)iVar1;\n  }\n  sVar2 = strlen(__s);\n  lVar5 = (long)(int)sVar2;\n  pcVar3 = (char *)xmalloc(lVar5 + 9 + lVar6);\n  strcpy(pcVar3,__s);\n  builtin_strncpy(pcVar3 + lVar5,"ccXXXXXX",9);\n  strcpy(pcVar3 + lVar5 + 8,param_1);\n  iVar1 = mkstemps(pcVar3,iVar1);\n  if (iVar1 != -1) {\n    iVar1 = close(iVar1);\n    if (iVar1 == 0) {\n      return pcVar3;\n    }\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }\n  piVar4 = __errno_location();\n  pcVar3 = strerror(*piVar4);\n  fprintf(*(FILE **)PTR_stderr_0010fff8,"Cannot create temporary file in %s: %s\n",__s,pcVar3);\n                    /* WARNING: Subroutine does not return */\n  abort();\n}\n\n" (function_definition "char * FUN_001091c0(char *param_1)\n\n{\n  int iVar1;\n  char *__s;\n  size_t sVar2;\n  char *pcVar3;\n  int *piVar4;\n  long lVar5;\n  long lVar6;\n  \n  __s = (char *)FUN_00108f60();\n  if (param_1 == (char *)0x0) {\n    iVar1 = 0;\n    lVar6 = 0;\n    param_1 = "";\n  }\n  else {\n    sVar2 = strlen(param_1);\n    iVar1 = (int)sVar2;\n    lVar6 = (long)iVar1;\n  }\n  sVar2 = strlen(__s);\n  lVar5 = (long)(int)sVar2;\n  pcVar3 = (char *)xmalloc(lVar5 + 9 + lVar6);\n  strcpy(pcVar3,__s);\n  builtin_strncpy(pcVar3 + lVar5,"ccXXXXXX",9);\n  strcpy(pcVar3 + lVar5 + 8,param_1);\n  iVar1 = mkstemps(pcVar3,iVar1);\n  if (iVar1 != -1) {\n    iVar1 = close(iVar1);\n    if (iVar1 == 0) {\n      return pcVar3;\n    }\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }\n  piVar4 = __errno_location();\n  pcVar3 = strerror(*piVar4);\n  fprintf(*(FILE **)PTR_stderr_0010fff8,"Cannot create temporary file in %s: %s\n",__s,pcVar3);\n                    /* WARNING: Subroutine does not return */\n  abort();\n}" primitive_type (pointer_declarator "* FUN_001091c0(char *param_1)" * (function_declarator "FUN_001091c0(char *param_1)" identifier (parameter_list "(char *param_1)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) )))) (compound_statement "{\n  int iVar1;\n  char *__s;\n  size_t sVar2;\n  char *pcVar3;\n  int *piVar4;\n  long lVar5;\n  long lVar6;\n  \n  __s = (char *)FUN_00108f60();\n  if (param_1 == (char *)0x0) {\n    iVar1 = 0;\n    lVar6 = 0;\n    param_1 = "";\n  }\n  else {\n    sVar2 = strlen(param_1);\n    iVar1 = (int)sVar2;\n    lVar6 = (long)iVar1;\n  }\n  sVar2 = strlen(__s);\n  lVar5 = (long)(int)sVar2;\n  pcVar3 = (char *)xmalloc(lVar5 + 9 + lVar6);\n  strcpy(pcVar3,__s);\n  builtin_strncpy(pcVar3 + lVar5,"ccXXXXXX",9);\n  strcpy(pcVar3 + lVar5 + 8,param_1);\n  iVar1 = mkstemps(pcVar3,iVar1);\n  if (iVar1 != -1) {\n    iVar1 = close(iVar1);\n    if (iVar1 == 0) {\n      return pcVar3;\n    }\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }\n  piVar4 = __errno_location();\n  pcVar3 = strerror(*piVar4);\n  fprintf(*(FILE **)PTR_stderr_0010fff8,"Cannot create temporary file in %s: %s\n",__s,pcVar3);\n                    /* WARNING: Subroutine does not return */\n  abort();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (expression_statement "__s = (char *)FUN_00108f60();" (assignment_expression "__s = (char *)FUN_00108f60()" identifier = (cast_expression "(char *)FUN_00108f60()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00108f60()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (param_1 == (char *)0x0) {\n    iVar1 = 0;\n    lVar6 = 0;\n    param_1 = "";\n  }\n  else {\n    sVar2 = strlen(param_1);\n    iVar1 = (int)sVar2;\n    lVar6 = (long)iVar1;\n  }" if (parenthesized_expression "(param_1 == (char *)0x0)" ( (binary_expression "param_1 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar1 = 0;\n    lVar6 = 0;\n    param_1 = "";\n  }" { (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) (expression_statement "lVar6 = 0;" (assignment_expression "lVar6 = 0" identifier = number_literal) ;) (expression_statement "param_1 = "";" (assignment_expression "param_1 = """ identifier = (string_literal """" " ")) ;) }) (else_clause "else {\n    sVar2 = strlen(param_1);\n    iVar1 = (int)sVar2;\n    lVar6 = (long)iVar1;\n  }" else (compound_statement "{\n    sVar2 = strlen(param_1);\n    iVar1 = (int)sVar2;\n    lVar6 = (long)iVar1;\n  }" { (expression_statement "sVar2 = strlen(param_1);" (assignment_expression "sVar2 = strlen(param_1)" identifier = (call_expression "strlen(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "iVar1 = (int)sVar2;" (assignment_expression "iVar1 = (int)sVar2" identifier = (cast_expression "(int)sVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "lVar6 = (long)iVar1;" (assignment_expression "lVar6 = (long)iVar1" identifier = (cast_expression "(long)iVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) }))) (expression_statement "sVar2 = strlen(__s);" (assignment_expression "sVar2 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "lVar5 = (long)(int)sVar2;" (assignment_expression "lVar5 = (long)(int)sVar2" identifier = (cast_expression "(long)(int)sVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)sVar2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar3 = (char *)xmalloc(lVar5 + 9 + lVar6);" (assignment_expression "pcVar3 = (char *)xmalloc(lVar5 + 9 + lVar6)" identifier = (cast_expression "(char *)xmalloc(lVar5 + 9 + lVar6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(lVar5 + 9 + lVar6)" identifier (argument_list "(lVar5 + 9 + lVar6)" ( (binary_expression "lVar5 + 9 + lVar6" (binary_expression "lVar5 + 9" identifier + number_literal) + identifier) ))))) ;) (expression_statement "strcpy(pcVar3,__s);" (call_expression "strcpy(pcVar3,__s)" identifier (argument_list "(pcVar3,__s)" ( identifier , identifier ))) ;) (expression_statement "builtin_strncpy(pcVar3 + lVar5,"ccXXXXXX",9);" (call_expression "builtin_strncpy(pcVar3 + lVar5,"ccXXXXXX",9)" identifier (argument_list "(pcVar3 + lVar5,"ccXXXXXX",9)" ( (binary_expression "pcVar3 + lVar5" identifier + identifier) , (string_literal ""ccXXXXXX"" " string_content ") , number_literal ))) ;) (expression_statement "strcpy(pcVar3 + lVar5 + 8,param_1);" (call_expression "strcpy(pcVar3 + lVar5 + 8,param_1)" identifier (argument_list "(pcVar3 + lVar5 + 8,param_1)" ( (binary_expression "pcVar3 + lVar5 + 8" (binary_expression "pcVar3 + lVar5" identifier + identifier) + number_literal) , identifier ))) ;) (expression_statement "iVar1 = mkstemps(pcVar3,iVar1);" (assignment_expression "iVar1 = mkstemps(pcVar3,iVar1)" identifier = (call_expression "mkstemps(pcVar3,iVar1)" identifier (argument_list "(pcVar3,iVar1)" ( identifier , identifier )))) ;) (if_statement "if (iVar1 != -1) {\n    iVar1 = close(iVar1);\n    if (iVar1 == 0) {\n      return pcVar3;\n    }\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }" if (parenthesized_expression "(iVar1 != -1)" ( (binary_expression "iVar1 != -1" identifier != number_literal) )) (compound_statement "{\n    iVar1 = close(iVar1);\n    if (iVar1 == 0) {\n      return pcVar3;\n    }\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }" { (expression_statement "iVar1 = close(iVar1);" (assignment_expression "iVar1 = close(iVar1)" identifier = (call_expression "close(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;) (if_statement "if (iVar1 == 0) {\n      return pcVar3;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      return pcVar3;\n    }" { (return_statement "return pcVar3;" return identifier ;) })) comment (expression_statement "abort();" (call_expression "abort()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "piVar4 = __errno_location();" (assignment_expression "piVar4 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar3 = strerror(*piVar4);" (assignment_expression "pcVar3 = strerror(*piVar4)" identifier = (call_expression "strerror(*piVar4)" identifier (argument_list "(*piVar4)" ( (pointer_expression "*piVar4" * identifier) )))) ;) (expression_statement "fprintf(*(FILE **)PTR_stderr_0010fff8,"Cannot create temporary file in %s: %s\n",__s,pcVar3);" (call_expression "fprintf(*(FILE **)PTR_stderr_0010fff8,"Cannot create temporary file in %s: %s\n",__s,pcVar3)" identifier (argument_list "(*(FILE **)PTR_stderr_0010fff8,"Cannot create temporary file in %s: %s\n",__s,pcVar3)" ( (pointer_expression "*(FILE **)PTR_stderr_0010fff8" * (cast_expression "(FILE **)PTR_stderr_0010fff8" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , (string_literal ""Cannot create temporary file in %s: %s\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) comment (expression_statement "abort();" (call_expression "abort()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "char * make_temp_file(char *suffix)\n\n{\n  int iVar1;\n  char *__s;\n  size_t sVar2;\n  char *pcVar3;\n  int *piVar4;\n  long lVar5;\n  long lVar6;\n  \n  __s = choose_tmpdir();\n  if (suffix == (char *)0x0) {\n    iVar1 = 0;\n    lVar6 = 0;\n    suffix = "";\n  }\n  else {\n    sVar2 = strlen(suffix);\n    iVar1 = (int)sVar2;\n    lVar6 = (long)iVar1;\n  }\n  sVar2 = strlen(__s);\n  lVar5 = (long)(int)sVar2;\n  pcVar3 = (char *)xmalloc(lVar5 + 9 + lVar6);\n  strcpy(pcVar3,__s);\n  builtin_strncpy(pcVar3 + lVar5,"ccXXXXXX",9);\n  strcpy(pcVar3 + lVar5 + 8,suffix);\n  iVar1 = mkstemps(pcVar3,iVar1);\n  if (iVar1 != -1) {\n    iVar1 = close(iVar1);\n    if (iVar1 == 0) {\n      return pcVar3;\n    }\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }\n  piVar4 = __errno_location();\n  pcVar3 = strerror(*piVar4);\n  fprintf(*(FILE **)PTR_stderr_0010fff8,"Cannot create temporary file in %s: %s\n",__s,pcVar3);\n                    /* WARNING: Subroutine does not return */\n  abort();\n}\n\n" (function_definition "char * make_temp_file(char *suffix)\n\n{\n  int iVar1;\n  char *__s;\n  size_t sVar2;\n  char *pcVar3;\n  int *piVar4;\n  long lVar5;\n  long lVar6;\n  \n  __s = choose_tmpdir();\n  if (suffix == (char *)0x0) {\n    iVar1 = 0;\n    lVar6 = 0;\n    suffix = "";\n  }\n  else {\n    sVar2 = strlen(suffix);\n    iVar1 = (int)sVar2;\n    lVar6 = (long)iVar1;\n  }\n  sVar2 = strlen(__s);\n  lVar5 = (long)(int)sVar2;\n  pcVar3 = (char *)xmalloc(lVar5 + 9 + lVar6);\n  strcpy(pcVar3,__s);\n  builtin_strncpy(pcVar3 + lVar5,"ccXXXXXX",9);\n  strcpy(pcVar3 + lVar5 + 8,suffix);\n  iVar1 = mkstemps(pcVar3,iVar1);\n  if (iVar1 != -1) {\n    iVar1 = close(iVar1);\n    if (iVar1 == 0) {\n      return pcVar3;\n    }\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }\n  piVar4 = __errno_location();\n  pcVar3 = strerror(*piVar4);\n  fprintf(*(FILE **)PTR_stderr_0010fff8,"Cannot create temporary file in %s: %s\n",__s,pcVar3);\n                    /* WARNING: Subroutine does not return */\n  abort();\n}" primitive_type (pointer_declarator "* make_temp_file(char *suffix)" * (function_declarator "make_temp_file(char *suffix)" identifier (parameter_list "(char *suffix)" ( (parameter_declaration "char *suffix" primitive_type (pointer_declarator "*suffix" * identifier)) )))) (compound_statement "{\n  int iVar1;\n  char *__s;\n  size_t sVar2;\n  char *pcVar3;\n  int *piVar4;\n  long lVar5;\n  long lVar6;\n  \n  __s = choose_tmpdir();\n  if (suffix == (char *)0x0) {\n    iVar1 = 0;\n    lVar6 = 0;\n    suffix = "";\n  }\n  else {\n    sVar2 = strlen(suffix);\n    iVar1 = (int)sVar2;\n    lVar6 = (long)iVar1;\n  }\n  sVar2 = strlen(__s);\n  lVar5 = (long)(int)sVar2;\n  pcVar3 = (char *)xmalloc(lVar5 + 9 + lVar6);\n  strcpy(pcVar3,__s);\n  builtin_strncpy(pcVar3 + lVar5,"ccXXXXXX",9);\n  strcpy(pcVar3 + lVar5 + 8,suffix);\n  iVar1 = mkstemps(pcVar3,iVar1);\n  if (iVar1 != -1) {\n    iVar1 = close(iVar1);\n    if (iVar1 == 0) {\n      return pcVar3;\n    }\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }\n  piVar4 = __errno_location();\n  pcVar3 = strerror(*piVar4);\n  fprintf(*(FILE **)PTR_stderr_0010fff8,"Cannot create temporary file in %s: %s\n",__s,pcVar3);\n                    /* WARNING: Subroutine does not return */\n  abort();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (expression_statement "__s = choose_tmpdir();" (assignment_expression "__s = choose_tmpdir()" identifier = (call_expression "choose_tmpdir()" identifier (argument_list "()" ( )))) ;) (if_statement "if (suffix == (char *)0x0) {\n    iVar1 = 0;\n    lVar6 = 0;\n    suffix = "";\n  }\n  else {\n    sVar2 = strlen(suffix);\n    iVar1 = (int)sVar2;\n    lVar6 = (long)iVar1;\n  }" if (parenthesized_expression "(suffix == (char *)0x0)" ( (binary_expression "suffix == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar1 = 0;\n    lVar6 = 0;\n    suffix = "";\n  }" { (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) (expression_statement "lVar6 = 0;" (assignment_expression "lVar6 = 0" identifier = number_literal) ;) (expression_statement "suffix = "";" (assignment_expression "suffix = """ identifier = (string_literal """" " ")) ;) }) (else_clause "else {\n    sVar2 = strlen(suffix);\n    iVar1 = (int)sVar2;\n    lVar6 = (long)iVar1;\n  }" else (compound_statement "{\n    sVar2 = strlen(suffix);\n    iVar1 = (int)sVar2;\n    lVar6 = (long)iVar1;\n  }" { (expression_statement "sVar2 = strlen(suffix);" (assignment_expression "sVar2 = strlen(suffix)" identifier = (call_expression "strlen(suffix)" identifier (argument_list "(suffix)" ( identifier )))) ;) (expression_statement "iVar1 = (int)sVar2;" (assignment_expression "iVar1 = (int)sVar2" identifier = (cast_expression "(int)sVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "lVar6 = (long)iVar1;" (assignment_expression "lVar6 = (long)iVar1" identifier = (cast_expression "(long)iVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) }))) (expression_statement "sVar2 = strlen(__s);" (assignment_expression "sVar2 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "lVar5 = (long)(int)sVar2;" (assignment_expression "lVar5 = (long)(int)sVar2" identifier = (cast_expression "(long)(int)sVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)sVar2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar3 = (char *)xmalloc(lVar5 + 9 + lVar6);" (assignment_expression "pcVar3 = (char *)xmalloc(lVar5 + 9 + lVar6)" identifier = (cast_expression "(char *)xmalloc(lVar5 + 9 + lVar6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(lVar5 + 9 + lVar6)" identifier (argument_list "(lVar5 + 9 + lVar6)" ( (binary_expression "lVar5 + 9 + lVar6" (binary_expression "lVar5 + 9" identifier + number_literal) + identifier) ))))) ;) (expression_statement "strcpy(pcVar3,__s);" (call_expression "strcpy(pcVar3,__s)" identifier (argument_list "(pcVar3,__s)" ( identifier , identifier ))) ;) (expression_statement "builtin_strncpy(pcVar3 + lVar5,"ccXXXXXX",9);" (call_expression "builtin_strncpy(pcVar3 + lVar5,"ccXXXXXX",9)" identifier (argument_list "(pcVar3 + lVar5,"ccXXXXXX",9)" ( (binary_expression "pcVar3 + lVar5" identifier + identifier) , (string_literal ""ccXXXXXX"" " string_content ") , number_literal ))) ;) (expression_statement "strcpy(pcVar3 + lVar5 + 8,suffix);" (call_expression "strcpy(pcVar3 + lVar5 + 8,suffix)" identifier (argument_list "(pcVar3 + lVar5 + 8,suffix)" ( (binary_expression "pcVar3 + lVar5 + 8" (binary_expression "pcVar3 + lVar5" identifier + identifier) + number_literal) , identifier ))) ;) (expression_statement "iVar1 = mkstemps(pcVar3,iVar1);" (assignment_expression "iVar1 = mkstemps(pcVar3,iVar1)" identifier = (call_expression "mkstemps(pcVar3,iVar1)" identifier (argument_list "(pcVar3,iVar1)" ( identifier , identifier )))) ;) (if_statement "if (iVar1 != -1) {\n    iVar1 = close(iVar1);\n    if (iVar1 == 0) {\n      return pcVar3;\n    }\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }" if (parenthesized_expression "(iVar1 != -1)" ( (binary_expression "iVar1 != -1" identifier != number_literal) )) (compound_statement "{\n    iVar1 = close(iVar1);\n    if (iVar1 == 0) {\n      return pcVar3;\n    }\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }" { (expression_statement "iVar1 = close(iVar1);" (assignment_expression "iVar1 = close(iVar1)" identifier = (call_expression "close(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;) (if_statement "if (iVar1 == 0) {\n      return pcVar3;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      return pcVar3;\n    }" { (return_statement "return pcVar3;" return identifier ;) })) comment (expression_statement "abort();" (call_expression "abort()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "piVar4 = __errno_location();" (assignment_expression "piVar4 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar3 = strerror(*piVar4);" (assignment_expression "pcVar3 = strerror(*piVar4)" identifier = (call_expression "strerror(*piVar4)" identifier (argument_list "(*piVar4)" ( (pointer_expression "*piVar4" * identifier) )))) ;) (expression_statement "fprintf(*(FILE **)PTR_stderr_0010fff8,"Cannot create temporary file in %s: %s\n",__s,pcVar3);" (call_expression "fprintf(*(FILE **)PTR_stderr_0010fff8,"Cannot create temporary file in %s: %s\n",__s,pcVar3)" identifier (argument_list "(*(FILE **)PTR_stderr_0010fff8,"Cannot create temporary file in %s: %s\n",__s,pcVar3)" ( (pointer_expression "*(FILE **)PTR_stderr_0010fff8" * (cast_expression "(FILE **)PTR_stderr_0010fff8" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , (string_literal ""Cannot create temporary file in %s: %s\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) comment (expression_statement "abort();" (call_expression "abort()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "char * FUN_001091c0(char *param_1)\n\n{\n  int iVar1;\n  char *__s;\n  size_t sVar2;\n  char *pcVar3;\n  int *piVar4;\n  long lVar5;\n  long lVar6;\n  \n  __s = (char *)FUN_00108f60();\n  if (param_1 == (char *)0x0) {\n    iVar1 = 0;\n    lVar6 = 0;\n    param_1 = "";\n  }\n  else {\n    sVar2 = strlen(param_1);\n    iVar1 = (int)sVar2;\n    lVar6 = (long)iVar1;\n  }\n  sVar2 = strlen(__s);\n  lVar5 = (long)(int)sVar2;\n  pcVar3 = (char *)xmalloc(lVar5 + 9 + lVar6);\n  strcpy(pcVar3,__s);\n  builtin_strncpy(pcVar3 + lVar5,"ccXXXXXX",9);\n  strcpy(pcVar3 + lVar5 + 8,param_1);\n  iVar1 = mkstemps(pcVar3,iVar1);\n  if (iVar1 != -1) {\n    iVar1 = close(iVar1);\n    if (iVar1 == 0) {\n      return pcVar3;\n    }\n                    \n    abort();\n  }\n  piVar4 = __errno_location();\n  pcVar3 = strerror(*piVar4);\n  fprintf(*(FILE **)PTR_stderr_0010fff8,"Cannot create temporary file in %s: %s\n",__s,pcVar3);\n                    \n  abort();\n}\n\n" (function_definition "char * FUN_001091c0(char *param_1)\n\n{\n  int iVar1;\n  char *__s;\n  size_t sVar2;\n  char *pcVar3;\n  int *piVar4;\n  long lVar5;\n  long lVar6;\n  \n  __s = (char *)FUN_00108f60();\n  if (param_1 == (char *)0x0) {\n    iVar1 = 0;\n    lVar6 = 0;\n    param_1 = "";\n  }\n  else {\n    sVar2 = strlen(param_1);\n    iVar1 = (int)sVar2;\n    lVar6 = (long)iVar1;\n  }\n  sVar2 = strlen(__s);\n  lVar5 = (long)(int)sVar2;\n  pcVar3 = (char *)xmalloc(lVar5 + 9 + lVar6);\n  strcpy(pcVar3,__s);\n  builtin_strncpy(pcVar3 + lVar5,"ccXXXXXX",9);\n  strcpy(pcVar3 + lVar5 + 8,param_1);\n  iVar1 = mkstemps(pcVar3,iVar1);\n  if (iVar1 != -1) {\n    iVar1 = close(iVar1);\n    if (iVar1 == 0) {\n      return pcVar3;\n    }\n                    \n    abort();\n  }\n  piVar4 = __errno_location();\n  pcVar3 = strerror(*piVar4);\n  fprintf(*(FILE **)PTR_stderr_0010fff8,"Cannot create temporary file in %s: %s\n",__s,pcVar3);\n                    \n  abort();\n}" primitive_type (pointer_declarator "* FUN_001091c0(char *param_1)" * (function_declarator "FUN_001091c0(char *param_1)" identifier (parameter_list "(char *param_1)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) )))) (compound_statement "{\n  int iVar1;\n  char *__s;\n  size_t sVar2;\n  char *pcVar3;\n  int *piVar4;\n  long lVar5;\n  long lVar6;\n  \n  __s = (char *)FUN_00108f60();\n  if (param_1 == (char *)0x0) {\n    iVar1 = 0;\n    lVar6 = 0;\n    param_1 = "";\n  }\n  else {\n    sVar2 = strlen(param_1);\n    iVar1 = (int)sVar2;\n    lVar6 = (long)iVar1;\n  }\n  sVar2 = strlen(__s);\n  lVar5 = (long)(int)sVar2;\n  pcVar3 = (char *)xmalloc(lVar5 + 9 + lVar6);\n  strcpy(pcVar3,__s);\n  builtin_strncpy(pcVar3 + lVar5,"ccXXXXXX",9);\n  strcpy(pcVar3 + lVar5 + 8,param_1);\n  iVar1 = mkstemps(pcVar3,iVar1);\n  if (iVar1 != -1) {\n    iVar1 = close(iVar1);\n    if (iVar1 == 0) {\n      return pcVar3;\n    }\n                    \n    abort();\n  }\n  piVar4 = __errno_location();\n  pcVar3 = strerror(*piVar4);\n  fprintf(*(FILE **)PTR_stderr_0010fff8,"Cannot create temporary file in %s: %s\n",__s,pcVar3);\n                    \n  abort();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (expression_statement "__s = (char *)FUN_00108f60();" (assignment_expression "__s = (char *)FUN_00108f60()" identifier = (cast_expression "(char *)FUN_00108f60()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00108f60()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (param_1 == (char *)0x0) {\n    iVar1 = 0;\n    lVar6 = 0;\n    param_1 = "";\n  }\n  else {\n    sVar2 = strlen(param_1);\n    iVar1 = (int)sVar2;\n    lVar6 = (long)iVar1;\n  }" if (parenthesized_expression "(param_1 == (char *)0x0)" ( (binary_expression "param_1 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar1 = 0;\n    lVar6 = 0;\n    param_1 = "";\n  }" { (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) (expression_statement "lVar6 = 0;" (assignment_expression "lVar6 = 0" identifier = number_literal) ;) (expression_statement "param_1 = "";" (assignment_expression "param_1 = """ identifier = (string_literal """" " ")) ;) }) (else_clause "else {\n    sVar2 = strlen(param_1);\n    iVar1 = (int)sVar2;\n    lVar6 = (long)iVar1;\n  }" else (compound_statement "{\n    sVar2 = strlen(param_1);\n    iVar1 = (int)sVar2;\n    lVar6 = (long)iVar1;\n  }" { (expression_statement "sVar2 = strlen(param_1);" (assignment_expression "sVar2 = strlen(param_1)" identifier = (call_expression "strlen(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "iVar1 = (int)sVar2;" (assignment_expression "iVar1 = (int)sVar2" identifier = (cast_expression "(int)sVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "lVar6 = (long)iVar1;" (assignment_expression "lVar6 = (long)iVar1" identifier = (cast_expression "(long)iVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) }))) (expression_statement "sVar2 = strlen(__s);" (assignment_expression "sVar2 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "lVar5 = (long)(int)sVar2;" (assignment_expression "lVar5 = (long)(int)sVar2" identifier = (cast_expression "(long)(int)sVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)sVar2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar3 = (char *)xmalloc(lVar5 + 9 + lVar6);" (assignment_expression "pcVar3 = (char *)xmalloc(lVar5 + 9 + lVar6)" identifier = (cast_expression "(char *)xmalloc(lVar5 + 9 + lVar6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(lVar5 + 9 + lVar6)" identifier (argument_list "(lVar5 + 9 + lVar6)" ( (binary_expression "lVar5 + 9 + lVar6" (binary_expression "lVar5 + 9" identifier + number_literal) + identifier) ))))) ;) (expression_statement "strcpy(pcVar3,__s);" (call_expression "strcpy(pcVar3,__s)" identifier (argument_list "(pcVar3,__s)" ( identifier , identifier ))) ;) (expression_statement "builtin_strncpy(pcVar3 + lVar5,"ccXXXXXX",9);" (call_expression "builtin_strncpy(pcVar3 + lVar5,"ccXXXXXX",9)" identifier (argument_list "(pcVar3 + lVar5,"ccXXXXXX",9)" ( (binary_expression "pcVar3 + lVar5" identifier + identifier) , (string_literal ""ccXXXXXX"" " string_content ") , number_literal ))) ;) (expression_statement "strcpy(pcVar3 + lVar5 + 8,param_1);" (call_expression "strcpy(pcVar3 + lVar5 + 8,param_1)" identifier (argument_list "(pcVar3 + lVar5 + 8,param_1)" ( (binary_expression "pcVar3 + lVar5 + 8" (binary_expression "pcVar3 + lVar5" identifier + identifier) + number_literal) , identifier ))) ;) (expression_statement "iVar1 = mkstemps(pcVar3,iVar1);" (assignment_expression "iVar1 = mkstemps(pcVar3,iVar1)" identifier = (call_expression "mkstemps(pcVar3,iVar1)" identifier (argument_list "(pcVar3,iVar1)" ( identifier , identifier )))) ;) (if_statement "if (iVar1 != -1) {\n    iVar1 = close(iVar1);\n    if (iVar1 == 0) {\n      return pcVar3;\n    }\n                    \n    abort();\n  }" if (parenthesized_expression "(iVar1 != -1)" ( (binary_expression "iVar1 != -1" identifier != number_literal) )) (compound_statement "{\n    iVar1 = close(iVar1);\n    if (iVar1 == 0) {\n      return pcVar3;\n    }\n                    \n    abort();\n  }" { (expression_statement "iVar1 = close(iVar1);" (assignment_expression "iVar1 = close(iVar1)" identifier = (call_expression "close(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;) (if_statement "if (iVar1 == 0) {\n      return pcVar3;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      return pcVar3;\n    }" { (return_statement "return pcVar3;" return identifier ;) })) (expression_statement "abort();" (call_expression "abort()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "piVar4 = __errno_location();" (assignment_expression "piVar4 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar3 = strerror(*piVar4);" (assignment_expression "pcVar3 = strerror(*piVar4)" identifier = (call_expression "strerror(*piVar4)" identifier (argument_list "(*piVar4)" ( (pointer_expression "*piVar4" * identifier) )))) ;) (expression_statement "fprintf(*(FILE **)PTR_stderr_0010fff8,"Cannot create temporary file in %s: %s\n",__s,pcVar3);" (call_expression "fprintf(*(FILE **)PTR_stderr_0010fff8,"Cannot create temporary file in %s: %s\n",__s,pcVar3)" identifier (argument_list "(*(FILE **)PTR_stderr_0010fff8,"Cannot create temporary file in %s: %s\n",__s,pcVar3)" ( (pointer_expression "*(FILE **)PTR_stderr_0010fff8" * (cast_expression "(FILE **)PTR_stderr_0010fff8" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , (string_literal ""Cannot create temporary file in %s: %s\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "abort();" (call_expression "abort()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (string_literal " ")) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (binary_expression IDENT + LIT) + IDENT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , (string_literal " string_content ") , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression (binary_expression IDENT + IDENT) + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) , (string_literal " string_content escape_sequence ") , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "char * FUN_001091c0(char *param_1)\n\n{\n  int iVar1;\n  char *__s;\n  size_t sVar2;\n  char *pcVar3;\n  int *piVar4;\n  long lVar5;\n  long lVar6;\n  \n  __s = (char *)FUN_00108f60();\n  if (param_1 == (char *)0x0) {\n    iVar1 = 0;\n    lVar6 = 0;\n    param_1 = "";\n  }\n  else {\n    sVar2 = strlen(param_1);\n    iVar1 = (int)sVar2;\n    lVar6 = (long)iVar1;\n  }\n  sVar2 = strlen(__s);\n  lVar5 = (long)(int)sVar2;\n  pcVar3 = (char *)xmalloc(lVar5 + 9 + lVar6);\n  strcpy(pcVar3,__s);\n  builtin_strncpy(pcVar3 + lVar5,"ccXXXXXX",9);\n  strcpy(pcVar3 + lVar5 + 8,param_1);\n  iVar1 = mkstemps(pcVar3,iVar1);\n  if (iVar1 != -1) {\n    iVar1 = close(iVar1);\n    if (iVar1 == 0) {\n      return pcVar3;\n    }\n                    \n    abort();\n  }\n  piVar4 = __errno_location();\n  pcVar3 = strerror(*piVar4);\n  fprintf(*(FILE **)PTR_stderr_0010fff8,"Cannot create temporary file in %s: %s\n",__s,pcVar3);\n                    \n  abort();\n}" (primitive_type "char") (pointer_declarator "* FUN_001091c0(char *param_1)" (* "*") (function_declarator "FUN_001091c0(char *param_1)" (identifier "FUN_001091c0") (parameter_list "(char *param_1)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")")))) (compound_statement "{\n  int iVar1;\n  char *__s;\n  size_t sVar2;\n  char *pcVar3;\n  int *piVar4;\n  long lVar5;\n  long lVar6;\n  \n  __s = (char *)FUN_00108f60();\n  if (param_1 == (char *)0x0) {\n    iVar1 = 0;\n    lVar6 = 0;\n    param_1 = "";\n  }\n  else {\n    sVar2 = strlen(param_1);\n    iVar1 = (int)sVar2;\n    lVar6 = (long)iVar1;\n  }\n  sVar2 = strlen(__s);\n  lVar5 = (long)(int)sVar2;\n  pcVar3 = (char *)xmalloc(lVar5 + 9 + lVar6);\n  strcpy(pcVar3,__s);\n  builtin_strncpy(pcVar3 + lVar5,"ccXXXXXX",9);\n  strcpy(pcVar3 + lVar5 + 8,param_1);\n  iVar1 = mkstemps(pcVar3,iVar1);\n  if (iVar1 != -1) {\n    iVar1 = close(iVar1);\n    if (iVar1 == 0) {\n      return pcVar3;\n    }\n                    \n    abort();\n  }\n  piVar4 = __errno_location();\n  pcVar3 = strerror(*piVar4);\n  fprintf(*(FILE **)PTR_stderr_0010fff8,"Cannot create temporary file in %s: %s\n",__s,pcVar3);\n                    \n  abort();\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "char *__s;" (primitive_type "char") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "size_t sVar2;" (primitive_type "size_t") (identifier "sVar2") (; ";")) (declaration "char *pcVar3;" (primitive_type "char") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "long lVar5;" (sized_type_specifier "long" (long "long")) (identifier "lVar5") (; ";")) (declaration "long lVar6;" (sized_type_specifier "long" (long "long")) (identifier "lVar6") (; ";")) (expression_statement "__s = (char *)FUN_00108f60();" (assignment_expression "__s = (char *)FUN_00108f60()" (identifier "__s") (= "=") (cast_expression "(char *)FUN_00108f60()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00108f60()" (identifier "FUN_00108f60") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (param_1 == (char *)0x0) {\n    iVar1 = 0;\n    lVar6 = 0;\n    param_1 = "";\n  }\n  else {\n    sVar2 = strlen(param_1);\n    iVar1 = (int)sVar2;\n    lVar6 = (long)iVar1;\n  }" (if "if") (parenthesized_expression "(param_1 == (char *)0x0)" (( "(") (binary_expression "param_1 == (char *)0x0" (identifier "param_1") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    iVar1 = 0;\n    lVar6 = 0;\n    param_1 = "";\n  }" ({ "{") (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" (identifier "iVar1") (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar6 = 0;" (assignment_expression "lVar6 = 0" (identifier "lVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1 = "";" (assignment_expression "param_1 = """ (identifier "param_1") (= "=") (string_literal """" (" """) (" """))) (; ";")) (} "}")) (else_clause "else {\n    sVar2 = strlen(param_1);\n    iVar1 = (int)sVar2;\n    lVar6 = (long)iVar1;\n  }" (else "else") (compound_statement "{\n    sVar2 = strlen(param_1);\n    iVar1 = (int)sVar2;\n    lVar6 = (long)iVar1;\n  }" ({ "{") (expression_statement "sVar2 = strlen(param_1);" (assignment_expression "sVar2 = strlen(param_1)" (identifier "sVar2") (= "=") (call_expression "strlen(param_1)" (identifier "strlen") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "iVar1 = (int)sVar2;" (assignment_expression "iVar1 = (int)sVar2" (identifier "iVar1") (= "=") (cast_expression "(int)sVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar2"))) (; ";")) (expression_statement "lVar6 = (long)iVar1;" (assignment_expression "lVar6 = (long)iVar1" (identifier "lVar6") (= "=") (cast_expression "(long)iVar1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar1"))) (; ";")) (} "}")))) (expression_statement "sVar2 = strlen(__s);" (assignment_expression "sVar2 = strlen(__s)" (identifier "sVar2") (= "=") (call_expression "strlen(__s)" (identifier "strlen") (argument_list "(__s)" (( "(") (identifier "__s") () ")")))) (; ";")) (expression_statement "lVar5 = (long)(int)sVar2;" (assignment_expression "lVar5 = (long)(int)sVar2" (identifier "lVar5") (= "=") (cast_expression "(long)(int)sVar2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)sVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar2")))) (; ";")) (expression_statement "pcVar3 = (char *)xmalloc(lVar5 + 9 + lVar6);" (assignment_expression "pcVar3 = (char *)xmalloc(lVar5 + 9 + lVar6)" (identifier "pcVar3") (= "=") (cast_expression "(char *)xmalloc(lVar5 + 9 + lVar6)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(lVar5 + 9 + lVar6)" (identifier "xmalloc") (argument_list "(lVar5 + 9 + lVar6)" (( "(") (binary_expression "lVar5 + 9 + lVar6" (binary_expression "lVar5 + 9" (identifier "lVar5") (+ "+") (number_literal "9")) (+ "+") (identifier "lVar6")) () ")"))))) (; ";")) (expression_statement "strcpy(pcVar3,__s);" (call_expression "strcpy(pcVar3,__s)" (identifier "strcpy") (argument_list "(pcVar3,__s)" (( "(") (identifier "pcVar3") (, ",") (identifier "__s") () ")"))) (; ";")) (expression_statement "builtin_strncpy(pcVar3 + lVar5,"ccXXXXXX",9);" (call_expression "builtin_strncpy(pcVar3 + lVar5,"ccXXXXXX",9)" (identifier "builtin_strncpy") (argument_list "(pcVar3 + lVar5,"ccXXXXXX",9)" (( "(") (binary_expression "pcVar3 + lVar5" (identifier "pcVar3") (+ "+") (identifier "lVar5")) (, ",") (string_literal ""ccXXXXXX"" (" """) (string_content "ccXXXXXX") (" """)) (, ",") (number_literal "9") () ")"))) (; ";")) (expression_statement "strcpy(pcVar3 + lVar5 + 8,param_1);" (call_expression "strcpy(pcVar3 + lVar5 + 8,param_1)" (identifier "strcpy") (argument_list "(pcVar3 + lVar5 + 8,param_1)" (( "(") (binary_expression "pcVar3 + lVar5 + 8" (binary_expression "pcVar3 + lVar5" (identifier "pcVar3") (+ "+") (identifier "lVar5")) (+ "+") (number_literal "8")) (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "iVar1 = mkstemps(pcVar3,iVar1);" (assignment_expression "iVar1 = mkstemps(pcVar3,iVar1)" (identifier "iVar1") (= "=") (call_expression "mkstemps(pcVar3,iVar1)" (identifier "mkstemps") (argument_list "(pcVar3,iVar1)" (( "(") (identifier "pcVar3") (, ",") (identifier "iVar1") () ")")))) (; ";")) (if_statement "if (iVar1 != -1) {\n    iVar1 = close(iVar1);\n    if (iVar1 == 0) {\n      return pcVar3;\n    }\n                    \n    abort();\n  }" (if "if") (parenthesized_expression "(iVar1 != -1)" (( "(") (binary_expression "iVar1 != -1" (identifier "iVar1") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n    iVar1 = close(iVar1);\n    if (iVar1 == 0) {\n      return pcVar3;\n    }\n                    \n    abort();\n  }" ({ "{") (expression_statement "iVar1 = close(iVar1);" (assignment_expression "iVar1 = close(iVar1)" (identifier "iVar1") (= "=") (call_expression "close(iVar1)" (identifier "close") (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n      return pcVar3;\n    }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return pcVar3;\n    }" ({ "{") (return_statement "return pcVar3;" (return "return") (identifier "pcVar3") (; ";")) (} "}"))) (expression_statement "abort();" (call_expression "abort()" (identifier "abort") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar4 = __errno_location();" (assignment_expression "piVar4 = __errno_location()" (identifier "piVar4") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pcVar3 = strerror(*piVar4);" (assignment_expression "pcVar3 = strerror(*piVar4)" (identifier "pcVar3") (= "=") (call_expression "strerror(*piVar4)" (identifier "strerror") (argument_list "(*piVar4)" (( "(") (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) () ")")))) (; ";")) (expression_statement "fprintf(*(FILE **)PTR_stderr_0010fff8,"Cannot create temporary file in %s: %s\n",__s,pcVar3);" (call_expression "fprintf(*(FILE **)PTR_stderr_0010fff8,"Cannot create temporary file in %s: %s\n",__s,pcVar3)" (identifier "fprintf") (argument_list "(*(FILE **)PTR_stderr_0010fff8,"Cannot create temporary file in %s: %s\n",__s,pcVar3)" (( "(") (pointer_expression "*(FILE **)PTR_stderr_0010fff8" (* "*") (cast_expression "(FILE **)PTR_stderr_0010fff8" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_stderr_0010fff8"))) (, ",") (string_literal ""Cannot create temporary file in %s: %s\n"" (" """) (string_content "Cannot create temporary file in %s: %s") (escape_sequence "\n") (" """)) (, ",") (identifier "__s") (, ",") (identifier "pcVar3") () ")"))) (; ";")) (expression_statement "abort();" (call_expression "abort()" (identifier "abort") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

char * function_1(char *var_2)

{
  int var_11;
  char *__s;
  size_t sVar2;
  char *var_9;
  int *piVar4;
  long var_5;
  long var_6;
  
  __s = var_1();
  if (var_2 == (char *)0x0) {
    var_11 = 0;
    var_6 = 0;
    var_2 = "";
  }
  else {
    sVar2 = var_3(var_2);
    var_11 = (int)sVar2;
    var_6 = (long)var_11;
  }
  sVar2 = var_3(__s);
  var_5 = (long)(int)sVar2;
  var_9 = (char *)var_4(var_5 + 9 + var_6);
  var_7(var_9,__s);
  var_8(var_9 + var_5,"ccXXXXXX",9);
  var_7(var_9 + var_5 + 8,var_2);
  var_11 = var_10(var_9,var_11);
  if (var_11 != -1) {
    var_11 = var_12(var_11);
    if (var_11 == 0) {
      return var_9;
    }
                    /* WARNING: Subroutine does not return */
    var_13();
  }
  piVar4 = var_14();
  var_9 = var_15(*piVar4);
  var_16(*(type_1 **)PTR_stderr_0010fff8,"Cannot create temporary file in %s: %s\n",__s,var_9);
                    /* WARNING: Subroutine does not return */
  var_13();
}


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

char * MASKED(char *param_1)

{
  int iVar1;
  char *__s;
  size_t sVar2;
  char *pcVar3;
  int *piVar4;
  long lVar5;
  long lVar6;
  
  __s = (char *)FUN_00108f60();
  if (param_1 == (char *)0x0) {
    iVar1 = 0;
    lVar6 = 0;
    param_1 = "";
  }
  else {
    sVar2 = strlen(param_1);
    iVar1 = (int)sVar2;
    lVar6 = (long)iVar1;
  }
  sVar2 = strlen(__s);
  lVar5 = (long)(int)sVar2;
  pcVar3 = (char *)xmalloc(lVar5 + 9 + lVar6);
  strcpy(pcVar3,__s);
  builtin_strncpy(pcVar3 + lVar5,"ccXXXXXX",9);
  strcpy(pcVar3 + lVar5 + 8,param_1);
  iVar1 = mkstemps(pcVar3,iVar1);
  if (iVar1 != -1) {
    iVar1 = close(iVar1);
    if (iVar1 == 0) {
      return pcVar3;
    }
                    /* WARNING: Subroutine does not return */
    abort();
  }
  piVar4 = __errno_location();
  pcVar3 = strerror(*piVar4);
  fprintf(*(FILE **)PTR_stderr_0010fff8,"Cannot create temporary file in %s: %s\n",__s,pcVar3);
                    /* WARNING: Subroutine does not return */
  abort();
}

