
void print_arelt_descr(FILE *file,bfd *abfd,bfd_boolean verbose,bfd_boolean offsets)

{
  ufile_ptr uVar1;
  int iVar2;
  char *pcVar3;
  time_t when;
  char modebuf [11];
  char timebuf [40];
  stat buf;
  
  if ((verbose != 0) && (iVar2 = (*abfd->xvec->_bfd_stat_arch_elt)(abfd,&buf), iVar2 == 0)) {
    when = buf.st_mtim.tv_sec;
    pcVar3 = ctime(&when);
    if (pcVar3 == (char *)0x0) {
      pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);
      sprintf(timebuf,pcVar3);
    }
    else {
      sprintf(timebuf,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);
    }
    mode_string((ulong)buf.st_mode,modebuf);
    modebuf[10] = '\0';
    fprintf((FILE *)file,"%s %ld/%ld %6lu %s ",modebuf + 1,(ulong)buf.st_uid,(ulong)buf.st_gid,
            buf.st_size,timebuf);
  }
  fputs(abfd->filename,(FILE *)file);
  if (offsets != 0) {
    if ((abfd->field_0x48 & 1) == 0) {
      uVar1 = abfd->origin;
    }
    else {
      uVar1 = abfd->proxy_origin;
    }
    if (uVar1 != 0) {
      fprintf((FILE *)file," 0x%lx");
    }
  }
  fputc(10,(FILE *)file);
  return;
}



void FUN_00107f70(FILE *param_1,undefined8 *param_2,int param_3,int param_4)

{
  long lVar1;
  int iVar2;
  char *pcVar3;
  time_t local_100;
  undefined1 local_f3;
  undefined1 local_f2 [9];
  undefined1 local_e9;
  char local_e8 [48];
  undefined1 local_b8 [24];
  undefined4 local_a0;
  uint local_9c;
  uint local_98;
  undefined8 local_88;
  time_t local_60;
  
  if ((param_3 != 0) && (iVar2 = (**(code **)(param_2[1] + 0x1e0))(param_2,local_b8), iVar2 == 0)) {
    local_100 = local_60;
    pcVar3 = ctime(&local_100);
    if (pcVar3 == (char *)0x0) {
      pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);
      sprintf(local_e8,pcVar3);
    }
    else {
      sprintf(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);
    }
    FUN_001085e0(local_a0,&local_f3);
    local_e9 = 0;
    fprintf(param_1,"%s %ld/%ld %6lu %s ",local_f2,(ulong)local_9c,(ulong)local_98,local_88,local_e8
           );
  }
  fputs((char *)*param_2,param_1);
  if (param_4 != 0) {
    if ((*(byte *)(param_2 + 9) & 1) == 0) {
      lVar1 = param_2[0xb];
    }
    else {
      lVar1 = param_2[0xc];
    }
    if (lVar1 != 0) {
      fprintf(param_1," 0x%lx");
    }
  }
  fputc(10,param_1);
  return;
}


PUSH R14
PUSH R13
PUSH R12
MOV R12D,ECX
PUSH RBP
MOV RBP,RDI
PUSH RBX
MOV RBX,RSI
SUB RSP,0xe0
TEST EDX,EDX
JZ 0x00107fa2
MOV RAX,qword ptr [RBX + 0x8]
LEA RSI,[RSP + 0x50]
MOV RDI,RBX
CALL qword ptr [RAX + 0x1e0]
TEST EAX,EAX
JZ 0x00108000
MOV RDI,qword ptr [RBX]
MOV RSI,RBP
CALL 0x00102230
TEST R12D,R12D
JZ 0x00107fc1
TEST byte ptr [RBX + 0x48],0x1
JZ 0x00107fe0
MOV RDX,qword ptr [RBX + 0x60]
TEST RDX,RDX
JNZ 0x00107fe9
MOV RSI,RBP
MOV EDI,0xa
CALL 0x001022c0
ADD RSP,0xe0
POP RBX
POP RBP
POP R12
POP R13
POP R14
RET
MOV RDX,qword ptr [RBX + 0x58]
TEST RDX,RDX
JZ 0x00107fc1
LEA RSI,[0x10c3e0]
MOV RDI,RBP
XOR EAX,EAX
CALL 0x00102340
JMP 0x00107fc1
MOV RAX,qword ptr [RSP + 0xa8]
LEA RDI,[RSP + 0x8]
MOV qword ptr [RSP + 0x8],RAX
CALL 0x00102190
TEST RAX,RAX
JZ 0x00108090
LEA R14,[RSP + 0x20]
LEA RCX,[RAX + 0x14]
LEA RDX,[RAX + 0x4]
LEA RSI,[0x10c3c1]
MOV RDI,R14
XOR EAX,EAX
CALL 0x00102570
MOV EDI,dword ptr [RSP + 0x68]
LEA R13,[RSP + 0x15]
MOV RSI,R13
CALL 0x001085e0
MOV byte ptr [RSP + 0x1f],0x0
MOV ECX,dword ptr [RSP + 0x6c]
XOR EAX,EAX
SUB RSP,0x8
LEA RDX,[R13 + 0x1]
LEA RSI,[0x10c3cc]
MOV RDI,RBP
PUSH R14
MOV R9,qword ptr [RSP + 0x90]
MOV R8D,dword ptr [RSP + 0x80]
CALL 0x00102340
POP RAX
POP RDX
JMP 0x00107fa2
XOR EDI,EDI
MOV EDX,0x5
LEA R14,[RSP + 0x20]
LEA RSI,[0x10c3ad]
CALL 0x001021b0
MOV RDI,R14
MOV RSI,RAX
XOR EAX,EAX
CALL 0x00102570
JMP 0x0010803a
(translation_unit "void FUN_00107f70(FILE *param_1,undefined8 *param_2,int param_3,int param_4)\n\n{\n  long lVar1;\n  int iVar2;\n  char *pcVar3;\n  time_t local_100;\n  undefined1 local_f3;\n  undefined1 local_f2 [9];\n  undefined1 local_e9;\n  char local_e8 [48];\n  undefined1 local_b8 [24];\n  undefined4 local_a0;\n  uint local_9c;\n  uint local_98;\n  undefined8 local_88;\n  time_t local_60;\n  \n  if ((param_3 != 0) && (iVar2 = (**(code **)(param_2[1] + 0x1e0))(param_2,local_b8), iVar2 == 0)) {\n    local_100 = local_60;\n    pcVar3 = ctime(&local_100);\n    if (pcVar3 == (char *)0x0) {\n      pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);\n      sprintf(local_e8,pcVar3);\n    }\n    else {\n      sprintf(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);\n    }\n    FUN_001085e0(local_a0,&local_f3);\n    local_e9 = 0;\n    fprintf(param_1,"%s %ld/%ld %6lu %s ",local_f2,(ulong)local_9c,(ulong)local_98,local_88,local_e8\n           );\n  }\n  fputs((char *)*param_2,param_1);\n  if (param_4 != 0) {\n    if ((*(byte *)(param_2 + 9) & 1) == 0) {\n      lVar1 = param_2[0xb];\n    }\n    else {\n      lVar1 = param_2[0xc];\n    }\n    if (lVar1 != 0) {\n      fprintf(param_1," 0x%lx");\n    }\n  }\n  fputc(10,param_1);\n  return;\n}\n\n" (function_definition "void FUN_00107f70(FILE *param_1,undefined8 *param_2,int param_3,int param_4)\n\n{\n  long lVar1;\n  int iVar2;\n  char *pcVar3;\n  time_t local_100;\n  undefined1 local_f3;\n  undefined1 local_f2 [9];\n  undefined1 local_e9;\n  char local_e8 [48];\n  undefined1 local_b8 [24];\n  undefined4 local_a0;\n  uint local_9c;\n  uint local_98;\n  undefined8 local_88;\n  time_t local_60;\n  \n  if ((param_3 != 0) && (iVar2 = (**(code **)(param_2[1] + 0x1e0))(param_2,local_b8), iVar2 == 0)) {\n    local_100 = local_60;\n    pcVar3 = ctime(&local_100);\n    if (pcVar3 == (char *)0x0) {\n      pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);\n      sprintf(local_e8,pcVar3);\n    }\n    else {\n      sprintf(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);\n    }\n    FUN_001085e0(local_a0,&local_f3);\n    local_e9 = 0;\n    fprintf(param_1,"%s %ld/%ld %6lu %s ",local_f2,(ulong)local_9c,(ulong)local_98,local_88,local_e8\n           );\n  }\n  fputs((char *)*param_2,param_1);\n  if (param_4 != 0) {\n    if ((*(byte *)(param_2 + 9) & 1) == 0) {\n      lVar1 = param_2[0xb];\n    }\n    else {\n      lVar1 = param_2[0xc];\n    }\n    if (lVar1 != 0) {\n      fprintf(param_1," 0x%lx");\n    }\n  }\n  fputc(10,param_1);\n  return;\n}" primitive_type (function_declarator "FUN_00107f70(FILE *param_1,undefined8 *param_2,int param_3,int param_4)" identifier (parameter_list "(FILE *param_1,undefined8 *param_2,int param_3,int param_4)" ( (parameter_declaration "FILE *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  long lVar1;\n  int iVar2;\n  char *pcVar3;\n  time_t local_100;\n  undefined1 local_f3;\n  undefined1 local_f2 [9];\n  undefined1 local_e9;\n  char local_e8 [48];\n  undefined1 local_b8 [24];\n  undefined4 local_a0;\n  uint local_9c;\n  uint local_98;\n  undefined8 local_88;\n  time_t local_60;\n  \n  if ((param_3 != 0) && (iVar2 = (**(code **)(param_2[1] + 0x1e0))(param_2,local_b8), iVar2 == 0)) {\n    local_100 = local_60;\n    pcVar3 = ctime(&local_100);\n    if (pcVar3 == (char *)0x0) {\n      pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);\n      sprintf(local_e8,pcVar3);\n    }\n    else {\n      sprintf(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);\n    }\n    FUN_001085e0(local_a0,&local_f3);\n    local_e9 = 0;\n    fprintf(param_1,"%s %ld/%ld %6lu %s ",local_f2,(ulong)local_9c,(ulong)local_98,local_88,local_e8\n           );\n  }\n  fputs((char *)*param_2,param_1);\n  if (param_4 != 0) {\n    if ((*(byte *)(param_2 + 9) & 1) == 0) {\n      lVar1 = param_2[0xb];\n    }\n    else {\n      lVar1 = param_2[0xc];\n    }\n    if (lVar1 != 0) {\n      fprintf(param_1," 0x%lx");\n    }\n  }\n  fputc(10,param_1);\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "time_t local_100;" type_identifier identifier ;) (declaration "undefined1 local_f3;" type_identifier identifier ;) (declaration "undefined1 local_f2 [9];" type_identifier (array_declarator "local_f2 [9]" identifier [ number_literal ]) ;) (declaration "undefined1 local_e9;" type_identifier identifier ;) (declaration "char local_e8 [48];" primitive_type (array_declarator "local_e8 [48]" identifier [ number_literal ]) ;) (declaration "undefined1 local_b8 [24];" type_identifier (array_declarator "local_b8 [24]" identifier [ number_literal ]) ;) (declaration "undefined4 local_a0;" type_identifier identifier ;) (declaration "uint local_9c;" type_identifier identifier ;) (declaration "uint local_98;" type_identifier identifier ;) (declaration "undefined8 local_88;" type_identifier identifier ;) (declaration "time_t local_60;" type_identifier identifier ;) (if_statement "if ((param_3 != 0) && (iVar2 = (**(code **)(param_2[1] + 0x1e0))(param_2,local_b8), iVar2 == 0)) {\n    local_100 = local_60;\n    pcVar3 = ctime(&local_100);\n    if (pcVar3 == (char *)0x0) {\n      pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);\n      sprintf(local_e8,pcVar3);\n    }\n    else {\n      sprintf(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);\n    }\n    FUN_001085e0(local_a0,&local_f3);\n    local_e9 = 0;\n    fprintf(param_1,"%s %ld/%ld %6lu %s ",local_f2,(ulong)local_9c,(ulong)local_98,local_88,local_e8\n           );\n  }" if (parenthesized_expression "((param_3 != 0) && (iVar2 = (**(code **)(param_2[1] + 0x1e0))(param_2,local_b8), iVar2 == 0))" ( (binary_expression "(param_3 != 0) && (iVar2 = (**(code **)(param_2[1] + 0x1e0))(param_2,local_b8), iVar2 == 0)" (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar2 = (**(code **)(param_2[1] + 0x1e0))(param_2,local_b8), iVar2 == 0)" ( (comma_expression "iVar2 = (**(code **)(param_2[1] + 0x1e0))(param_2,local_b8), iVar2 == 0" (assignment_expression "iVar2 = (**(code **)(param_2[1] + 0x1e0))(param_2,local_b8)" identifier = (call_expression "(**(code **)(param_2[1] + 0x1e0))(param_2,local_b8)" (parenthesized_expression "(**(code **)(param_2[1] + 0x1e0))" ( (pointer_expression "**(code **)(param_2[1] + 0x1e0)" * (pointer_expression "*(code **)(param_2[1] + 0x1e0)" * (cast_expression "(code **)(param_2[1] + 0x1e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2[1] + 0x1e0)" ( (binary_expression "param_2[1] + 0x1e0" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_2,local_b8)" ( identifier , identifier )))) , (binary_expression "iVar2 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    local_100 = local_60;\n    pcVar3 = ctime(&local_100);\n    if (pcVar3 == (char *)0x0) {\n      pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);\n      sprintf(local_e8,pcVar3);\n    }\n    else {\n      sprintf(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);\n    }\n    FUN_001085e0(local_a0,&local_f3);\n    local_e9 = 0;\n    fprintf(param_1,"%s %ld/%ld %6lu %s ",local_f2,(ulong)local_9c,(ulong)local_98,local_88,local_e8\n           );\n  }" { (expression_statement "local_100 = local_60;" (assignment_expression "local_100 = local_60" identifier = identifier) ;) (expression_statement "pcVar3 = ctime(&local_100);" (assignment_expression "pcVar3 = ctime(&local_100)" identifier = (call_expression "ctime(&local_100)" identifier (argument_list "(&local_100)" ( (pointer_expression "&local_100" & identifier) )))) ;) (if_statement "if (pcVar3 == (char *)0x0) {\n      pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);\n      sprintf(local_e8,pcVar3);\n    }\n    else {\n      sprintf(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);\n    }" if (parenthesized_expression "(pcVar3 == (char *)0x0)" ( (binary_expression "pcVar3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);\n      sprintf(local_e8,pcVar3);\n    }" { (expression_statement "pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5)" identifier = (cast_expression "(char *)dcgettext(0,"<time data corrupt>",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"<time data corrupt>",5)" identifier (argument_list "(0,"<time data corrupt>",5)" ( number_literal , (string_literal ""<time data corrupt>"" " string_content ") , number_literal ))))) ;) (expression_statement "sprintf(local_e8,pcVar3);" (call_expression "sprintf(local_e8,pcVar3)" identifier (argument_list "(local_e8,pcVar3)" ( identifier , identifier ))) ;) }) (else_clause "else {\n      sprintf(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);\n    }" else (compound_statement "{\n      sprintf(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);\n    }" { (expression_statement "sprintf(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);" (call_expression "sprintf(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14)" identifier (argument_list "(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14)" ( identifier , (string_literal ""%.12s %.4s"" " string_content ") , (binary_expression "pcVar3 + 4" identifier + number_literal) , (binary_expression "pcVar3 + 0x14" identifier + number_literal) ))) ;) }))) (expression_statement "FUN_001085e0(local_a0,&local_f3);" (call_expression "FUN_001085e0(local_a0,&local_f3)" identifier (argument_list "(local_a0,&local_f3)" ( identifier , (pointer_expression "&local_f3" & identifier) ))) ;) (expression_statement "local_e9 = 0;" (assignment_expression "local_e9 = 0" identifier = number_literal) ;) (expression_statement "fprintf(param_1,"%s %ld/%ld %6lu %s ",local_f2,(ulong)local_9c,(ulong)local_98,local_88,local_e8\n           );" (call_expression "fprintf(param_1,"%s %ld/%ld %6lu %s ",local_f2,(ulong)local_9c,(ulong)local_98,local_88,local_e8\n           )" identifier (argument_list "(param_1,"%s %ld/%ld %6lu %s ",local_f2,(ulong)local_9c,(ulong)local_98,local_88,local_e8\n           )" ( identifier , (string_literal ""%s %ld/%ld %6lu %s "" " string_content ") , identifier , (cast_expression "(ulong)local_9c" ( (type_descriptor "ulong" type_identifier) ) identifier) , (cast_expression "(ulong)local_98" ( (type_descriptor "ulong" type_identifier) ) identifier) , identifier , identifier ))) ;) })) (expression_statement "fputs((char *)*param_2,param_1);" (call_expression "fputs((char *)*param_2,param_1)" identifier (argument_list "((char *)*param_2,param_1)" ( (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier)) , identifier ))) ;) (if_statement "if (param_4 != 0) {\n    if ((*(byte *)(param_2 + 9) & 1) == 0) {\n      lVar1 = param_2[0xb];\n    }\n    else {\n      lVar1 = param_2[0xc];\n    }\n    if (lVar1 != 0) {\n      fprintf(param_1," 0x%lx");\n    }\n  }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n    if ((*(byte *)(param_2 + 9) & 1) == 0) {\n      lVar1 = param_2[0xb];\n    }\n    else {\n      lVar1 = param_2[0xc];\n    }\n    if (lVar1 != 0) {\n      fprintf(param_1," 0x%lx");\n    }\n  }" { (if_statement "if ((*(byte *)(param_2 + 9) & 1) == 0) {\n      lVar1 = param_2[0xb];\n    }\n    else {\n      lVar1 = param_2[0xc];\n    }" if (parenthesized_expression "((*(byte *)(param_2 + 9) & 1) == 0)" ( (binary_expression "(*(byte *)(param_2 + 9) & 1) == 0" (parenthesized_expression "(*(byte *)(param_2 + 9) & 1)" ( (binary_expression "*(byte *)(param_2 + 9) & 1" (pointer_expression "*(byte *)(param_2 + 9)" * (cast_expression "(byte *)(param_2 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 9)" ( (binary_expression "param_2 + 9" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      lVar1 = param_2[0xb];\n    }" { (expression_statement "lVar1 = param_2[0xb];" (assignment_expression "lVar1 = param_2[0xb]" identifier = (subscript_expression "param_2[0xb]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      lVar1 = param_2[0xc];\n    }" else (compound_statement "{\n      lVar1 = param_2[0xc];\n    }" { (expression_statement "lVar1 = param_2[0xc];" (assignment_expression "lVar1 = param_2[0xc]" identifier = (subscript_expression "param_2[0xc]" identifier [ number_literal ])) ;) }))) (if_statement "if (lVar1 != 0) {\n      fprintf(param_1," 0x%lx");\n    }" if (parenthesized_expression "(lVar1 != 0)" ( (binary_expression "lVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      fprintf(param_1," 0x%lx");\n    }" { (expression_statement "fprintf(param_1," 0x%lx");" (call_expression "fprintf(param_1," 0x%lx")" identifier (argument_list "(param_1," 0x%lx")" ( identifier , (string_literal "" 0x%lx"" " string_content ") ))) ;) })) })) (expression_statement "fputc(10,param_1);" (call_expression "fputc(10,param_1)" identifier (argument_list "(10,param_1)" ( number_literal , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void print_arelt_descr(FILE *file,bfd *abfd,bfd_boolean verbose,bfd_boolean offsets)\n\n{\n  ufile_ptr uVar1;\n  int iVar2;\n  char *pcVar3;\n  time_t when;\n  char modebuf [11];\n  char timebuf [40];\n  stat buf;\n  \n  if ((verbose != 0) && (iVar2 = (*abfd->xvec->_bfd_stat_arch_elt)(abfd,&buf), iVar2 == 0)) {\n    when = buf.st_mtim.tv_sec;\n    pcVar3 = ctime(&when);\n    if (pcVar3 == (char *)0x0) {\n      pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);\n      sprintf(timebuf,pcVar3);\n    }\n    else {\n      sprintf(timebuf,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);\n    }\n    mode_string((ulong)buf.st_mode,modebuf);\n    modebuf[10] = '\0';\n    fprintf((FILE *)file,"%s %ld/%ld %6lu %s ",modebuf + 1,(ulong)buf.st_uid,(ulong)buf.st_gid,\n            buf.st_size,timebuf);\n  }\n  fputs(abfd->filename,(FILE *)file);\n  if (offsets != 0) {\n    if ((abfd->field_0x48 & 1) == 0) {\n      uVar1 = abfd->origin;\n    }\n    else {\n      uVar1 = abfd->proxy_origin;\n    }\n    if (uVar1 != 0) {\n      fprintf((FILE *)file," 0x%lx");\n    }\n  }\n  fputc(10,(FILE *)file);\n  return;\n}\n\n" (function_definition "void print_arelt_descr(FILE *file,bfd *abfd,bfd_boolean verbose,bfd_boolean offsets)\n\n{\n  ufile_ptr uVar1;\n  int iVar2;\n  char *pcVar3;\n  time_t when;\n  char modebuf [11];\n  char timebuf [40];\n  stat buf;\n  \n  if ((verbose != 0) && (iVar2 = (*abfd->xvec->_bfd_stat_arch_elt)(abfd,&buf), iVar2 == 0)) {\n    when = buf.st_mtim.tv_sec;\n    pcVar3 = ctime(&when);\n    if (pcVar3 == (char *)0x0) {\n      pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);\n      sprintf(timebuf,pcVar3);\n    }\n    else {\n      sprintf(timebuf,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);\n    }\n    mode_string((ulong)buf.st_mode,modebuf);\n    modebuf[10] = '\0';\n    fprintf((FILE *)file,"%s %ld/%ld %6lu %s ",modebuf + 1,(ulong)buf.st_uid,(ulong)buf.st_gid,\n            buf.st_size,timebuf);\n  }\n  fputs(abfd->filename,(FILE *)file);\n  if (offsets != 0) {\n    if ((abfd->field_0x48 & 1) == 0) {\n      uVar1 = abfd->origin;\n    }\n    else {\n      uVar1 = abfd->proxy_origin;\n    }\n    if (uVar1 != 0) {\n      fprintf((FILE *)file," 0x%lx");\n    }\n  }\n  fputc(10,(FILE *)file);\n  return;\n}" primitive_type (function_declarator "print_arelt_descr(FILE *file,bfd *abfd,bfd_boolean verbose,bfd_boolean offsets)" identifier (parameter_list "(FILE *file,bfd *abfd,bfd_boolean verbose,bfd_boolean offsets)" ( (parameter_declaration "FILE *file" type_identifier (pointer_declarator "*file" * identifier)) , (parameter_declaration "bfd *abfd" type_identifier (pointer_declarator "*abfd" * identifier)) , (parameter_declaration "bfd_boolean verbose" type_identifier identifier) , (parameter_declaration "bfd_boolean offsets" type_identifier identifier) ))) (compound_statement "{\n  ufile_ptr uVar1;\n  int iVar2;\n  char *pcVar3;\n  time_t when;\n  char modebuf [11];\n  char timebuf [40];\n  stat buf;\n  \n  if ((verbose != 0) && (iVar2 = (*abfd->xvec->_bfd_stat_arch_elt)(abfd,&buf), iVar2 == 0)) {\n    when = buf.st_mtim.tv_sec;\n    pcVar3 = ctime(&when);\n    if (pcVar3 == (char *)0x0) {\n      pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);\n      sprintf(timebuf,pcVar3);\n    }\n    else {\n      sprintf(timebuf,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);\n    }\n    mode_string((ulong)buf.st_mode,modebuf);\n    modebuf[10] = '\0';\n    fprintf((FILE *)file,"%s %ld/%ld %6lu %s ",modebuf + 1,(ulong)buf.st_uid,(ulong)buf.st_gid,\n            buf.st_size,timebuf);\n  }\n  fputs(abfd->filename,(FILE *)file);\n  if (offsets != 0) {\n    if ((abfd->field_0x48 & 1) == 0) {\n      uVar1 = abfd->origin;\n    }\n    else {\n      uVar1 = abfd->proxy_origin;\n    }\n    if (uVar1 != 0) {\n      fprintf((FILE *)file," 0x%lx");\n    }\n  }\n  fputc(10,(FILE *)file);\n  return;\n}" { (declaration "ufile_ptr uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "time_t when;" type_identifier identifier ;) (declaration "char modebuf [11];" primitive_type (array_declarator "modebuf [11]" identifier [ number_literal ]) ;) (declaration "char timebuf [40];" primitive_type (array_declarator "timebuf [40]" identifier [ number_literal ]) ;) (declaration "stat buf;" type_identifier identifier ;) (if_statement "if ((verbose != 0) && (iVar2 = (*abfd->xvec->_bfd_stat_arch_elt)(abfd,&buf), iVar2 == 0)) {\n    when = buf.st_mtim.tv_sec;\n    pcVar3 = ctime(&when);\n    if (pcVar3 == (char *)0x0) {\n      pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);\n      sprintf(timebuf,pcVar3);\n    }\n    else {\n      sprintf(timebuf,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);\n    }\n    mode_string((ulong)buf.st_mode,modebuf);\n    modebuf[10] = '\0';\n    fprintf((FILE *)file,"%s %ld/%ld %6lu %s ",modebuf + 1,(ulong)buf.st_uid,(ulong)buf.st_gid,\n            buf.st_size,timebuf);\n  }" if (parenthesized_expression "((verbose != 0) && (iVar2 = (*abfd->xvec->_bfd_stat_arch_elt)(abfd,&buf), iVar2 == 0))" ( (binary_expression "(verbose != 0) && (iVar2 = (*abfd->xvec->_bfd_stat_arch_elt)(abfd,&buf), iVar2 == 0)" (parenthesized_expression "(verbose != 0)" ( (binary_expression "verbose != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar2 = (*abfd->xvec->_bfd_stat_arch_elt)(abfd,&buf), iVar2 == 0)" ( (comma_expression "iVar2 = (*abfd->xvec->_bfd_stat_arch_elt)(abfd,&buf), iVar2 == 0" (assignment_expression "iVar2 = (*abfd->xvec->_bfd_stat_arch_elt)(abfd,&buf)" identifier = (call_expression "(*abfd->xvec->_bfd_stat_arch_elt)(abfd,&buf)" (parenthesized_expression "(*abfd->xvec->_bfd_stat_arch_elt)" ( (pointer_expression "*abfd->xvec->_bfd_stat_arch_elt" * (field_expression "abfd->xvec->_bfd_stat_arch_elt" (field_expression "abfd->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(abfd,&buf)" ( identifier , (pointer_expression "&buf" & identifier) )))) , (binary_expression "iVar2 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    when = buf.st_mtim.tv_sec;\n    pcVar3 = ctime(&when);\n    if (pcVar3 == (char *)0x0) {\n      pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);\n      sprintf(timebuf,pcVar3);\n    }\n    else {\n      sprintf(timebuf,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);\n    }\n    mode_string((ulong)buf.st_mode,modebuf);\n    modebuf[10] = '\0';\n    fprintf((FILE *)file,"%s %ld/%ld %6lu %s ",modebuf + 1,(ulong)buf.st_uid,(ulong)buf.st_gid,\n            buf.st_size,timebuf);\n  }" { (expression_statement "when = buf.st_mtim.tv_sec;" (assignment_expression "when = buf.st_mtim.tv_sec" identifier = (field_expression "buf.st_mtim.tv_sec" (field_expression "buf.st_mtim" identifier . field_identifier) . field_identifier)) ;) (expression_statement "pcVar3 = ctime(&when);" (assignment_expression "pcVar3 = ctime(&when)" identifier = (call_expression "ctime(&when)" identifier (argument_list "(&when)" ( (pointer_expression "&when" & identifier) )))) ;) (if_statement "if (pcVar3 == (char *)0x0) {\n      pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);\n      sprintf(timebuf,pcVar3);\n    }\n    else {\n      sprintf(timebuf,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);\n    }" if (parenthesized_expression "(pcVar3 == (char *)0x0)" ( (binary_expression "pcVar3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);\n      sprintf(timebuf,pcVar3);\n    }" { (expression_statement "pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5)" identifier = (cast_expression "(char *)dcgettext(0,"<time data corrupt>",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"<time data corrupt>",5)" identifier (argument_list "(0,"<time data corrupt>",5)" ( number_literal , (string_literal ""<time data corrupt>"" " string_content ") , number_literal ))))) ;) (expression_statement "sprintf(timebuf,pcVar3);" (call_expression "sprintf(timebuf,pcVar3)" identifier (argument_list "(timebuf,pcVar3)" ( identifier , identifier ))) ;) }) (else_clause "else {\n      sprintf(timebuf,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);\n    }" else (compound_statement "{\n      sprintf(timebuf,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);\n    }" { (expression_statement "sprintf(timebuf,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);" (call_expression "sprintf(timebuf,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14)" identifier (argument_list "(timebuf,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14)" ( identifier , (string_literal ""%.12s %.4s"" " string_content ") , (binary_expression "pcVar3 + 4" identifier + number_literal) , (binary_expression "pcVar3 + 0x14" identifier + number_literal) ))) ;) }))) (expression_statement "mode_string((ulong)buf.st_mode,modebuf);" (call_expression "mode_string((ulong)buf.st_mode,modebuf)" identifier (argument_list "((ulong)buf.st_mode,modebuf)" ( (cast_expression "(ulong)buf.st_mode" ( (type_descriptor "ulong" type_identifier) ) (field_expression "buf.st_mode" identifier . field_identifier)) , identifier ))) ;) (expression_statement "modebuf[10] = '\0';" (assignment_expression "modebuf[10] = '\0'" (subscript_expression "modebuf[10]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "fprintf((FILE *)file,"%s %ld/%ld %6lu %s ",modebuf + 1,(ulong)buf.st_uid,(ulong)buf.st_gid,\n            buf.st_size,timebuf);" (call_expression "fprintf((FILE *)file,"%s %ld/%ld %6lu %s ",modebuf + 1,(ulong)buf.st_uid,(ulong)buf.st_gid,\n            buf.st_size,timebuf)" identifier (argument_list "((FILE *)file,"%s %ld/%ld %6lu %s ",modebuf + 1,(ulong)buf.st_uid,(ulong)buf.st_gid,\n            buf.st_size,timebuf)" ( (cast_expression "(FILE *)file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""%s %ld/%ld %6lu %s "" " string_content ") , (binary_expression "modebuf + 1" identifier + number_literal) , (cast_expression "(ulong)buf.st_uid" ( (type_descriptor "ulong" type_identifier) ) (field_expression "buf.st_uid" identifier . field_identifier)) , (cast_expression "(ulong)buf.st_gid" ( (type_descriptor "ulong" type_identifier) ) (field_expression "buf.st_gid" identifier . field_identifier)) , (field_expression "buf.st_size" identifier . field_identifier) , identifier ))) ;) })) (expression_statement "fputs(abfd->filename,(FILE *)file);" (call_expression "fputs(abfd->filename,(FILE *)file)" identifier (argument_list "(abfd->filename,(FILE *)file)" ( (field_expression "abfd->filename" identifier -> field_identifier) , (cast_expression "(FILE *)file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (if_statement "if (offsets != 0) {\n    if ((abfd->field_0x48 & 1) == 0) {\n      uVar1 = abfd->origin;\n    }\n    else {\n      uVar1 = abfd->proxy_origin;\n    }\n    if (uVar1 != 0) {\n      fprintf((FILE *)file," 0x%lx");\n    }\n  }" if (parenthesized_expression "(offsets != 0)" ( (binary_expression "offsets != 0" identifier != number_literal) )) (compound_statement "{\n    if ((abfd->field_0x48 & 1) == 0) {\n      uVar1 = abfd->origin;\n    }\n    else {\n      uVar1 = abfd->proxy_origin;\n    }\n    if (uVar1 != 0) {\n      fprintf((FILE *)file," 0x%lx");\n    }\n  }" { (if_statement "if ((abfd->field_0x48 & 1) == 0) {\n      uVar1 = abfd->origin;\n    }\n    else {\n      uVar1 = abfd->proxy_origin;\n    }" if (parenthesized_expression "((abfd->field_0x48 & 1) == 0)" ( (binary_expression "(abfd->field_0x48 & 1) == 0" (parenthesized_expression "(abfd->field_0x48 & 1)" ( (binary_expression "abfd->field_0x48 & 1" (field_expression "abfd->field_0x48" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      uVar1 = abfd->origin;\n    }" { (expression_statement "uVar1 = abfd->origin;" (assignment_expression "uVar1 = abfd->origin" identifier = (field_expression "abfd->origin" identifier -> field_identifier)) ;) }) (else_clause "else {\n      uVar1 = abfd->proxy_origin;\n    }" else (compound_statement "{\n      uVar1 = abfd->proxy_origin;\n    }" { (expression_statement "uVar1 = abfd->proxy_origin;" (assignment_expression "uVar1 = abfd->proxy_origin" identifier = (field_expression "abfd->proxy_origin" identifier -> field_identifier)) ;) }))) (if_statement "if (uVar1 != 0) {\n      fprintf((FILE *)file," 0x%lx");\n    }" if (parenthesized_expression "(uVar1 != 0)" ( (binary_expression "uVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      fprintf((FILE *)file," 0x%lx");\n    }" { (expression_statement "fprintf((FILE *)file," 0x%lx");" (call_expression "fprintf((FILE *)file," 0x%lx")" identifier (argument_list "((FILE *)file," 0x%lx")" ( (cast_expression "(FILE *)file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal "" 0x%lx"" " string_content ") ))) ;) })) })) (expression_statement "fputc(10,(FILE *)file);" (call_expression "fputc(10,(FILE *)file)" identifier (argument_list "(10,(FILE *)file)" ( number_literal , (cast_expression "(FILE *)file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00107f70(FILE *param_1,undefined8 *param_2,int param_3,int param_4)\n\n{\n  long lVar1;\n  int iVar2;\n  char *pcVar3;\n  time_t local_100;\n  undefined1 local_f3;\n  undefined1 local_f2 [9];\n  undefined1 local_e9;\n  char local_e8 [48];\n  undefined1 local_b8 [24];\n  undefined4 local_a0;\n  uint local_9c;\n  uint local_98;\n  undefined8 local_88;\n  time_t local_60;\n  \n  if ((param_3 != 0) && (iVar2 = (**(code **)(param_2[1] + 0x1e0))(param_2,local_b8), iVar2 == 0)) {\n    local_100 = local_60;\n    pcVar3 = ctime(&local_100);\n    if (pcVar3 == (char *)0x0) {\n      pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);\n      sprintf(local_e8,pcVar3);\n    }\n    else {\n      sprintf(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);\n    }\n    FUN_001085e0(local_a0,&local_f3);\n    local_e9 = 0;\n    fprintf(param_1,"%s %ld/%ld %6lu %s ",local_f2,(ulong)local_9c,(ulong)local_98,local_88,local_e8\n           );\n  }\n  fputs((char *)*param_2,param_1);\n  if (param_4 != 0) {\n    if ((*(byte *)(param_2 + 9) & 1) == 0) {\n      lVar1 = param_2[0xb];\n    }\n    else {\n      lVar1 = param_2[0xc];\n    }\n    if (lVar1 != 0) {\n      fprintf(param_1," 0x%lx");\n    }\n  }\n  fputc(10,param_1);\n  return;\n}\n\n" (function_definition "void FUN_00107f70(FILE *param_1,undefined8 *param_2,int param_3,int param_4)\n\n{\n  long lVar1;\n  int iVar2;\n  char *pcVar3;\n  time_t local_100;\n  undefined1 local_f3;\n  undefined1 local_f2 [9];\n  undefined1 local_e9;\n  char local_e8 [48];\n  undefined1 local_b8 [24];\n  undefined4 local_a0;\n  uint local_9c;\n  uint local_98;\n  undefined8 local_88;\n  time_t local_60;\n  \n  if ((param_3 != 0) && (iVar2 = (**(code **)(param_2[1] + 0x1e0))(param_2,local_b8), iVar2 == 0)) {\n    local_100 = local_60;\n    pcVar3 = ctime(&local_100);\n    if (pcVar3 == (char *)0x0) {\n      pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);\n      sprintf(local_e8,pcVar3);\n    }\n    else {\n      sprintf(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);\n    }\n    FUN_001085e0(local_a0,&local_f3);\n    local_e9 = 0;\n    fprintf(param_1,"%s %ld/%ld %6lu %s ",local_f2,(ulong)local_9c,(ulong)local_98,local_88,local_e8\n           );\n  }\n  fputs((char *)*param_2,param_1);\n  if (param_4 != 0) {\n    if ((*(byte *)(param_2 + 9) & 1) == 0) {\n      lVar1 = param_2[0xb];\n    }\n    else {\n      lVar1 = param_2[0xc];\n    }\n    if (lVar1 != 0) {\n      fprintf(param_1," 0x%lx");\n    }\n  }\n  fputc(10,param_1);\n  return;\n}" primitive_type (function_declarator "FUN_00107f70(FILE *param_1,undefined8 *param_2,int param_3,int param_4)" identifier (parameter_list "(FILE *param_1,undefined8 *param_2,int param_3,int param_4)" ( (parameter_declaration "FILE *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  long lVar1;\n  int iVar2;\n  char *pcVar3;\n  time_t local_100;\n  undefined1 local_f3;\n  undefined1 local_f2 [9];\n  undefined1 local_e9;\n  char local_e8 [48];\n  undefined1 local_b8 [24];\n  undefined4 local_a0;\n  uint local_9c;\n  uint local_98;\n  undefined8 local_88;\n  time_t local_60;\n  \n  if ((param_3 != 0) && (iVar2 = (**(code **)(param_2[1] + 0x1e0))(param_2,local_b8), iVar2 == 0)) {\n    local_100 = local_60;\n    pcVar3 = ctime(&local_100);\n    if (pcVar3 == (char *)0x0) {\n      pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);\n      sprintf(local_e8,pcVar3);\n    }\n    else {\n      sprintf(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);\n    }\n    FUN_001085e0(local_a0,&local_f3);\n    local_e9 = 0;\n    fprintf(param_1,"%s %ld/%ld %6lu %s ",local_f2,(ulong)local_9c,(ulong)local_98,local_88,local_e8\n           );\n  }\n  fputs((char *)*param_2,param_1);\n  if (param_4 != 0) {\n    if ((*(byte *)(param_2 + 9) & 1) == 0) {\n      lVar1 = param_2[0xb];\n    }\n    else {\n      lVar1 = param_2[0xc];\n    }\n    if (lVar1 != 0) {\n      fprintf(param_1," 0x%lx");\n    }\n  }\n  fputc(10,param_1);\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "time_t local_100;" type_identifier identifier ;) (declaration "undefined1 local_f3;" type_identifier identifier ;) (declaration "undefined1 local_f2 [9];" type_identifier (array_declarator "local_f2 [9]" identifier [ number_literal ]) ;) (declaration "undefined1 local_e9;" type_identifier identifier ;) (declaration "char local_e8 [48];" primitive_type (array_declarator "local_e8 [48]" identifier [ number_literal ]) ;) (declaration "undefined1 local_b8 [24];" type_identifier (array_declarator "local_b8 [24]" identifier [ number_literal ]) ;) (declaration "undefined4 local_a0;" type_identifier identifier ;) (declaration "uint local_9c;" type_identifier identifier ;) (declaration "uint local_98;" type_identifier identifier ;) (declaration "undefined8 local_88;" type_identifier identifier ;) (declaration "time_t local_60;" type_identifier identifier ;) (if_statement "if ((param_3 != 0) && (iVar2 = (**(code **)(param_2[1] + 0x1e0))(param_2,local_b8), iVar2 == 0)) {\n    local_100 = local_60;\n    pcVar3 = ctime(&local_100);\n    if (pcVar3 == (char *)0x0) {\n      pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);\n      sprintf(local_e8,pcVar3);\n    }\n    else {\n      sprintf(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);\n    }\n    FUN_001085e0(local_a0,&local_f3);\n    local_e9 = 0;\n    fprintf(param_1,"%s %ld/%ld %6lu %s ",local_f2,(ulong)local_9c,(ulong)local_98,local_88,local_e8\n           );\n  }" if (parenthesized_expression "((param_3 != 0) && (iVar2 = (**(code **)(param_2[1] + 0x1e0))(param_2,local_b8), iVar2 == 0))" ( (binary_expression "(param_3 != 0) && (iVar2 = (**(code **)(param_2[1] + 0x1e0))(param_2,local_b8), iVar2 == 0)" (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar2 = (**(code **)(param_2[1] + 0x1e0))(param_2,local_b8), iVar2 == 0)" ( (comma_expression "iVar2 = (**(code **)(param_2[1] + 0x1e0))(param_2,local_b8), iVar2 == 0" (assignment_expression "iVar2 = (**(code **)(param_2[1] + 0x1e0))(param_2,local_b8)" identifier = (call_expression "(**(code **)(param_2[1] + 0x1e0))(param_2,local_b8)" (parenthesized_expression "(**(code **)(param_2[1] + 0x1e0))" ( (pointer_expression "**(code **)(param_2[1] + 0x1e0)" * (pointer_expression "*(code **)(param_2[1] + 0x1e0)" * (cast_expression "(code **)(param_2[1] + 0x1e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2[1] + 0x1e0)" ( (binary_expression "param_2[1] + 0x1e0" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_2,local_b8)" ( identifier , identifier )))) , (binary_expression "iVar2 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    local_100 = local_60;\n    pcVar3 = ctime(&local_100);\n    if (pcVar3 == (char *)0x0) {\n      pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);\n      sprintf(local_e8,pcVar3);\n    }\n    else {\n      sprintf(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);\n    }\n    FUN_001085e0(local_a0,&local_f3);\n    local_e9 = 0;\n    fprintf(param_1,"%s %ld/%ld %6lu %s ",local_f2,(ulong)local_9c,(ulong)local_98,local_88,local_e8\n           );\n  }" { (expression_statement "local_100 = local_60;" (assignment_expression "local_100 = local_60" identifier = identifier) ;) (expression_statement "pcVar3 = ctime(&local_100);" (assignment_expression "pcVar3 = ctime(&local_100)" identifier = (call_expression "ctime(&local_100)" identifier (argument_list "(&local_100)" ( (pointer_expression "&local_100" & identifier) )))) ;) (if_statement "if (pcVar3 == (char *)0x0) {\n      pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);\n      sprintf(local_e8,pcVar3);\n    }\n    else {\n      sprintf(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);\n    }" if (parenthesized_expression "(pcVar3 == (char *)0x0)" ( (binary_expression "pcVar3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);\n      sprintf(local_e8,pcVar3);\n    }" { (expression_statement "pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5)" identifier = (cast_expression "(char *)dcgettext(0,"<time data corrupt>",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"<time data corrupt>",5)" identifier (argument_list "(0,"<time data corrupt>",5)" ( number_literal , (string_literal ""<time data corrupt>"" " string_content ") , number_literal ))))) ;) (expression_statement "sprintf(local_e8,pcVar3);" (call_expression "sprintf(local_e8,pcVar3)" identifier (argument_list "(local_e8,pcVar3)" ( identifier , identifier ))) ;) }) (else_clause "else {\n      sprintf(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);\n    }" else (compound_statement "{\n      sprintf(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);\n    }" { (expression_statement "sprintf(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);" (call_expression "sprintf(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14)" identifier (argument_list "(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14)" ( identifier , (string_literal ""%.12s %.4s"" " string_content ") , (binary_expression "pcVar3 + 4" identifier + number_literal) , (binary_expression "pcVar3 + 0x14" identifier + number_literal) ))) ;) }))) (expression_statement "FUN_001085e0(local_a0,&local_f3);" (call_expression "FUN_001085e0(local_a0,&local_f3)" identifier (argument_list "(local_a0,&local_f3)" ( identifier , (pointer_expression "&local_f3" & identifier) ))) ;) (expression_statement "local_e9 = 0;" (assignment_expression "local_e9 = 0" identifier = number_literal) ;) (expression_statement "fprintf(param_1,"%s %ld/%ld %6lu %s ",local_f2,(ulong)local_9c,(ulong)local_98,local_88,local_e8\n           );" (call_expression "fprintf(param_1,"%s %ld/%ld %6lu %s ",local_f2,(ulong)local_9c,(ulong)local_98,local_88,local_e8\n           )" identifier (argument_list "(param_1,"%s %ld/%ld %6lu %s ",local_f2,(ulong)local_9c,(ulong)local_98,local_88,local_e8\n           )" ( identifier , (string_literal ""%s %ld/%ld %6lu %s "" " string_content ") , identifier , (cast_expression "(ulong)local_9c" ( (type_descriptor "ulong" type_identifier) ) identifier) , (cast_expression "(ulong)local_98" ( (type_descriptor "ulong" type_identifier) ) identifier) , identifier , identifier ))) ;) })) (expression_statement "fputs((char *)*param_2,param_1);" (call_expression "fputs((char *)*param_2,param_1)" identifier (argument_list "((char *)*param_2,param_1)" ( (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier)) , identifier ))) ;) (if_statement "if (param_4 != 0) {\n    if ((*(byte *)(param_2 + 9) & 1) == 0) {\n      lVar1 = param_2[0xb];\n    }\n    else {\n      lVar1 = param_2[0xc];\n    }\n    if (lVar1 != 0) {\n      fprintf(param_1," 0x%lx");\n    }\n  }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n    if ((*(byte *)(param_2 + 9) & 1) == 0) {\n      lVar1 = param_2[0xb];\n    }\n    else {\n      lVar1 = param_2[0xc];\n    }\n    if (lVar1 != 0) {\n      fprintf(param_1," 0x%lx");\n    }\n  }" { (if_statement "if ((*(byte *)(param_2 + 9) & 1) == 0) {\n      lVar1 = param_2[0xb];\n    }\n    else {\n      lVar1 = param_2[0xc];\n    }" if (parenthesized_expression "((*(byte *)(param_2 + 9) & 1) == 0)" ( (binary_expression "(*(byte *)(param_2 + 9) & 1) == 0" (parenthesized_expression "(*(byte *)(param_2 + 9) & 1)" ( (binary_expression "*(byte *)(param_2 + 9) & 1" (pointer_expression "*(byte *)(param_2 + 9)" * (cast_expression "(byte *)(param_2 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 9)" ( (binary_expression "param_2 + 9" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      lVar1 = param_2[0xb];\n    }" { (expression_statement "lVar1 = param_2[0xb];" (assignment_expression "lVar1 = param_2[0xb]" identifier = (subscript_expression "param_2[0xb]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      lVar1 = param_2[0xc];\n    }" else (compound_statement "{\n      lVar1 = param_2[0xc];\n    }" { (expression_statement "lVar1 = param_2[0xc];" (assignment_expression "lVar1 = param_2[0xc]" identifier = (subscript_expression "param_2[0xc]" identifier [ number_literal ])) ;) }))) (if_statement "if (lVar1 != 0) {\n      fprintf(param_1," 0x%lx");\n    }" if (parenthesized_expression "(lVar1 != 0)" ( (binary_expression "lVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      fprintf(param_1," 0x%lx");\n    }" { (expression_statement "fprintf(param_1," 0x%lx");" (call_expression "fprintf(param_1," 0x%lx")" identifier (argument_list "(param_1," 0x%lx")" ( identifier , (string_literal "" 0x%lx"" " string_content ") ))) ;) })) })) (expression_statement "fputc(10,param_1);" (call_expression "fputc(10,param_1)" identifier (argument_list "(10,param_1)" ( number_literal , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) , IDENT , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") ))) ;) })) })) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_00107f70(FILE *param_1,undefined8 *param_2,int param_3,int param_4)\n\n{\n  long lVar1;\n  int iVar2;\n  char *pcVar3;\n  time_t local_100;\n  undefined1 local_f3;\n  undefined1 local_f2 [9];\n  undefined1 local_e9;\n  char local_e8 [48];\n  undefined1 local_b8 [24];\n  undefined4 local_a0;\n  uint local_9c;\n  uint local_98;\n  undefined8 local_88;\n  time_t local_60;\n  \n  if ((param_3 != 0) && (iVar2 = (**(code **)(param_2[1] + 0x1e0))(param_2,local_b8), iVar2 == 0)) {\n    local_100 = local_60;\n    pcVar3 = ctime(&local_100);\n    if (pcVar3 == (char *)0x0) {\n      pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);\n      sprintf(local_e8,pcVar3);\n    }\n    else {\n      sprintf(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);\n    }\n    FUN_001085e0(local_a0,&local_f3);\n    local_e9 = 0;\n    fprintf(param_1,"%s %ld/%ld %6lu %s ",local_f2,(ulong)local_9c,(ulong)local_98,local_88,local_e8\n           );\n  }\n  fputs((char *)*param_2,param_1);\n  if (param_4 != 0) {\n    if ((*(byte *)(param_2 + 9) & 1) == 0) {\n      lVar1 = param_2[0xb];\n    }\n    else {\n      lVar1 = param_2[0xc];\n    }\n    if (lVar1 != 0) {\n      fprintf(param_1," 0x%lx");\n    }\n  }\n  fputc(10,param_1);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00107f70(FILE *param_1,undefined8 *param_2,int param_3,int param_4)" (identifier "FUN_00107f70") (parameter_list "(FILE *param_1,undefined8 *param_2,int param_3,int param_4)" (( "(") (parameter_declaration "FILE *param_1" (type_identifier "FILE") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined8 *param_2" (type_identifier "undefined8") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) () ")"))) (compound_statement "{\n  long lVar1;\n  int iVar2;\n  char *pcVar3;\n  time_t local_100;\n  undefined1 local_f3;\n  undefined1 local_f2 [9];\n  undefined1 local_e9;\n  char local_e8 [48];\n  undefined1 local_b8 [24];\n  undefined4 local_a0;\n  uint local_9c;\n  uint local_98;\n  undefined8 local_88;\n  time_t local_60;\n  \n  if ((param_3 != 0) && (iVar2 = (**(code **)(param_2[1] + 0x1e0))(param_2,local_b8), iVar2 == 0)) {\n    local_100 = local_60;\n    pcVar3 = ctime(&local_100);\n    if (pcVar3 == (char *)0x0) {\n      pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);\n      sprintf(local_e8,pcVar3);\n    }\n    else {\n      sprintf(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);\n    }\n    FUN_001085e0(local_a0,&local_f3);\n    local_e9 = 0;\n    fprintf(param_1,"%s %ld/%ld %6lu %s ",local_f2,(ulong)local_9c,(ulong)local_98,local_88,local_e8\n           );\n  }\n  fputs((char *)*param_2,param_1);\n  if (param_4 != 0) {\n    if ((*(byte *)(param_2 + 9) & 1) == 0) {\n      lVar1 = param_2[0xb];\n    }\n    else {\n      lVar1 = param_2[0xc];\n    }\n    if (lVar1 != 0) {\n      fprintf(param_1," 0x%lx");\n    }\n  }\n  fputc(10,param_1);\n  return;\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "char *pcVar3;" (primitive_type "char") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "time_t local_100;" (type_identifier "time_t") (identifier "local_100") (; ";")) (declaration "undefined1 local_f3;" (type_identifier "undefined1") (identifier "local_f3") (; ";")) (declaration "undefined1 local_f2 [9];" (type_identifier "undefined1") (array_declarator "local_f2 [9]" (identifier "local_f2") ([ "[") (number_literal "9") (] "]")) (; ";")) (declaration "undefined1 local_e9;" (type_identifier "undefined1") (identifier "local_e9") (; ";")) (declaration "char local_e8 [48];" (primitive_type "char") (array_declarator "local_e8 [48]" (identifier "local_e8") ([ "[") (number_literal "48") (] "]")) (; ";")) (declaration "undefined1 local_b8 [24];" (type_identifier "undefined1") (array_declarator "local_b8 [24]" (identifier "local_b8") ([ "[") (number_literal "24") (] "]")) (; ";")) (declaration "undefined4 local_a0;" (type_identifier "undefined4") (identifier "local_a0") (; ";")) (declaration "uint local_9c;" (type_identifier "uint") (identifier "local_9c") (; ";")) (declaration "uint local_98;" (type_identifier "uint") (identifier "local_98") (; ";")) (declaration "undefined8 local_88;" (type_identifier "undefined8") (identifier "local_88") (; ";")) (declaration "time_t local_60;" (type_identifier "time_t") (identifier "local_60") (; ";")) (if_statement "if ((param_3 != 0) && (iVar2 = (**(code **)(param_2[1] + 0x1e0))(param_2,local_b8), iVar2 == 0)) {\n    local_100 = local_60;\n    pcVar3 = ctime(&local_100);\n    if (pcVar3 == (char *)0x0) {\n      pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);\n      sprintf(local_e8,pcVar3);\n    }\n    else {\n      sprintf(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);\n    }\n    FUN_001085e0(local_a0,&local_f3);\n    local_e9 = 0;\n    fprintf(param_1,"%s %ld/%ld %6lu %s ",local_f2,(ulong)local_9c,(ulong)local_98,local_88,local_e8\n           );\n  }" (if "if") (parenthesized_expression "((param_3 != 0) && (iVar2 = (**(code **)(param_2[1] + 0x1e0))(param_2,local_b8), iVar2 == 0))" (( "(") (binary_expression "(param_3 != 0) && (iVar2 = (**(code **)(param_2[1] + 0x1e0))(param_2,local_b8), iVar2 == 0)" (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar2 = (**(code **)(param_2[1] + 0x1e0))(param_2,local_b8), iVar2 == 0)" (( "(") (comma_expression "iVar2 = (**(code **)(param_2[1] + 0x1e0))(param_2,local_b8), iVar2 == 0" (assignment_expression "iVar2 = (**(code **)(param_2[1] + 0x1e0))(param_2,local_b8)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(param_2[1] + 0x1e0))(param_2,local_b8)" (parenthesized_expression "(**(code **)(param_2[1] + 0x1e0))" (( "(") (pointer_expression "**(code **)(param_2[1] + 0x1e0)" (* "*") (pointer_expression "*(code **)(param_2[1] + 0x1e0)" (* "*") (cast_expression "(code **)(param_2[1] + 0x1e0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2[1] + 0x1e0)" (( "(") (binary_expression "param_2[1] + 0x1e0" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x1e0")) () ")"))))) () ")")) (argument_list "(param_2,local_b8)" (( "(") (identifier "param_2") (, ",") (identifier "local_b8") () ")")))) (, ",") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    local_100 = local_60;\n    pcVar3 = ctime(&local_100);\n    if (pcVar3 == (char *)0x0) {\n      pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);\n      sprintf(local_e8,pcVar3);\n    }\n    else {\n      sprintf(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);\n    }\n    FUN_001085e0(local_a0,&local_f3);\n    local_e9 = 0;\n    fprintf(param_1,"%s %ld/%ld %6lu %s ",local_f2,(ulong)local_9c,(ulong)local_98,local_88,local_e8\n           );\n  }" ({ "{") (expression_statement "local_100 = local_60;" (assignment_expression "local_100 = local_60" (identifier "local_100") (= "=") (identifier "local_60")) (; ";")) (expression_statement "pcVar3 = ctime(&local_100);" (assignment_expression "pcVar3 = ctime(&local_100)" (identifier "pcVar3") (= "=") (call_expression "ctime(&local_100)" (identifier "ctime") (argument_list "(&local_100)" (( "(") (pointer_expression "&local_100" (& "&") (identifier "local_100")) () ")")))) (; ";")) (if_statement "if (pcVar3 == (char *)0x0) {\n      pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);\n      sprintf(local_e8,pcVar3);\n    }\n    else {\n      sprintf(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);\n    }" (if "if") (parenthesized_expression "(pcVar3 == (char *)0x0)" (( "(") (binary_expression "pcVar3 == (char *)0x0" (identifier "pcVar3") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);\n      sprintf(local_e8,pcVar3);\n    }" ({ "{") (expression_statement "pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5)" (identifier "pcVar3") (= "=") (cast_expression "(char *)dcgettext(0,"<time data corrupt>",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"<time data corrupt>",5)" (identifier "dcgettext") (argument_list "(0,"<time data corrupt>",5)" (( "(") (number_literal "0") (, ",") (string_literal ""<time data corrupt>"" (" """) (string_content "<time data corrupt>") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "sprintf(local_e8,pcVar3);" (call_expression "sprintf(local_e8,pcVar3)" (identifier "sprintf") (argument_list "(local_e8,pcVar3)" (( "(") (identifier "local_e8") (, ",") (identifier "pcVar3") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      sprintf(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);\n    }" (else "else") (compound_statement "{\n      sprintf(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);\n    }" ({ "{") (expression_statement "sprintf(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);" (call_expression "sprintf(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14)" (identifier "sprintf") (argument_list "(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14)" (( "(") (identifier "local_e8") (, ",") (string_literal ""%.12s %.4s"" (" """) (string_content "%.12s %.4s") (" """)) (, ",") (binary_expression "pcVar3 + 4" (identifier "pcVar3") (+ "+") (number_literal "4")) (, ",") (binary_expression "pcVar3 + 0x14" (identifier "pcVar3") (+ "+") (number_literal "0x14")) () ")"))) (; ";")) (} "}")))) (expression_statement "FUN_001085e0(local_a0,&local_f3);" (call_expression "FUN_001085e0(local_a0,&local_f3)" (identifier "FUN_001085e0") (argument_list "(local_a0,&local_f3)" (( "(") (identifier "local_a0") (, ",") (pointer_expression "&local_f3" (& "&") (identifier "local_f3")) () ")"))) (; ";")) (expression_statement "local_e9 = 0;" (assignment_expression "local_e9 = 0" (identifier "local_e9") (= "=") (number_literal "0")) (; ";")) (expression_statement "fprintf(param_1,"%s %ld/%ld %6lu %s ",local_f2,(ulong)local_9c,(ulong)local_98,local_88,local_e8\n           );" (call_expression "fprintf(param_1,"%s %ld/%ld %6lu %s ",local_f2,(ulong)local_9c,(ulong)local_98,local_88,local_e8\n           )" (identifier "fprintf") (argument_list "(param_1,"%s %ld/%ld %6lu %s ",local_f2,(ulong)local_9c,(ulong)local_98,local_88,local_e8\n           )" (( "(") (identifier "param_1") (, ",") (string_literal ""%s %ld/%ld %6lu %s "" (" """) (string_content "%s %ld/%ld %6lu %s ") (" """)) (, ",") (identifier "local_f2") (, ",") (cast_expression "(ulong)local_9c" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_9c")) (, ",") (cast_expression "(ulong)local_98" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_98")) (, ",") (identifier "local_88") (, ",") (identifier "local_e8") () ")"))) (; ";")) (} "}"))) (expression_statement "fputs((char *)*param_2,param_1);" (call_expression "fputs((char *)*param_2,param_1)" (identifier "fputs") (argument_list "((char *)*param_2,param_1)" (( "(") (cast_expression "(char *)*param_2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (, ",") (identifier "param_1") () ")"))) (; ";")) (if_statement "if (param_4 != 0) {\n    if ((*(byte *)(param_2 + 9) & 1) == 0) {\n      lVar1 = param_2[0xb];\n    }\n    else {\n      lVar1 = param_2[0xc];\n    }\n    if (lVar1 != 0) {\n      fprintf(param_1," 0x%lx");\n    }\n  }" (if "if") (parenthesized_expression "(param_4 != 0)" (( "(") (binary_expression "param_4 != 0" (identifier "param_4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if ((*(byte *)(param_2 + 9) & 1) == 0) {\n      lVar1 = param_2[0xb];\n    }\n    else {\n      lVar1 = param_2[0xc];\n    }\n    if (lVar1 != 0) {\n      fprintf(param_1," 0x%lx");\n    }\n  }" ({ "{") (if_statement "if ((*(byte *)(param_2 + 9) & 1) == 0) {\n      lVar1 = param_2[0xb];\n    }\n    else {\n      lVar1 = param_2[0xc];\n    }" (if "if") (parenthesized_expression "((*(byte *)(param_2 + 9) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(param_2 + 9) & 1) == 0" (parenthesized_expression "(*(byte *)(param_2 + 9) & 1)" (( "(") (binary_expression "*(byte *)(param_2 + 9) & 1" (pointer_expression "*(byte *)(param_2 + 9)" (* "*") (cast_expression "(byte *)(param_2 + 9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 9)" (( "(") (binary_expression "param_2 + 9" (identifier "param_2") (+ "+") (number_literal "9")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      lVar1 = param_2[0xb];\n    }" ({ "{") (expression_statement "lVar1 = param_2[0xb];" (assignment_expression "lVar1 = param_2[0xb]" (identifier "lVar1") (= "=") (subscript_expression "param_2[0xb]" (identifier "param_2") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n      lVar1 = param_2[0xc];\n    }" (else "else") (compound_statement "{\n      lVar1 = param_2[0xc];\n    }" ({ "{") (expression_statement "lVar1 = param_2[0xc];" (assignment_expression "lVar1 = param_2[0xc]" (identifier "lVar1") (= "=") (subscript_expression "param_2[0xc]" (identifier "param_2") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (} "}")))) (if_statement "if (lVar1 != 0) {\n      fprintf(param_1," 0x%lx");\n    }" (if "if") (parenthesized_expression "(lVar1 != 0)" (( "(") (binary_expression "lVar1 != 0" (identifier "lVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      fprintf(param_1," 0x%lx");\n    }" ({ "{") (expression_statement "fprintf(param_1," 0x%lx");" (call_expression "fprintf(param_1," 0x%lx")" (identifier "fprintf") (argument_list "(param_1," 0x%lx")" (( "(") (identifier "param_1") (, ",") (string_literal "" 0x%lx"" (" """) (string_content " 0x%lx") (" """)) () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "fputc(10,param_1);" (call_expression "fputc(10,param_1)" (identifier "fputc") (argument_list "(10,param_1)" (( "(") (number_literal "10") (, ",") (identifier "param_1") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *file,type_2 *abfd,type_3 var_1,type_3 var_11)

{
  type_4 var_12;
  int var_2;
  char *var_4;
  type_5 when;
  char var_9 [11];
  char timebuf [40];
  type_6 buf;
  
  if ((var_1 != 0) && (var_2 = (*abfd->xvec->_bfd_stat_arch_elt)(abfd,&buf), var_2 == 0)) {
    when = buf.st_mtim.tv_sec;
    var_4 = var_3(&when);
    if (var_4 == (char *)0x0) {
      var_4 = (char *)var_5(0,"<time data corrupt>",5);
      var_6(timebuf,var_4);
    }
    else {
      var_6(timebuf,"%.12s %.4s",var_4 + 4,var_4 + 0x14);
    }
    var_7((type_7)buf.st_mode,var_9);
    var_9[10] = '\0';
    var_8((type_1 *)file,"%s %ld/%ld %6lu %s ",var_9 + 1,(type_7)buf.st_uid,(type_7)buf.st_gid,
            buf.st_size,timebuf);
  }
  var_10(abfd->filename,(type_1 *)file);
  if (var_11 != 0) {
    if ((abfd->field_0x48 & 1) == 0) {
      var_12 = abfd->origin;
    }
    else {
      var_12 = abfd->proxy_origin;
    }
    if (var_12 != 0) {
      var_8((type_1 *)file," 0x%lx");
    }
  }
  var_13(10,(type_1 *)file);
  return;
}


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

void MASKED(FILE *param_1,undefined8 *param_2,int param_3,int param_4)

{
  long lVar1;
  int iVar2;
  char *pcVar3;
  time_t local_100;
  undefined1 local_f3;
  undefined1 local_f2 [9];
  undefined1 local_e9;
  char local_e8 [48];
  undefined1 local_b8 [24];
  undefined4 local_a0;
  uint local_9c;
  uint local_98;
  undefined8 local_88;
  time_t local_60;
  
  if ((param_3 != 0) && (iVar2 = (**(code **)(param_2[1] + 0x1e0))(param_2,local_b8), iVar2 == 0)) {
    local_100 = local_60;
    pcVar3 = ctime(&local_100);
    if (pcVar3 == (char *)0x0) {
      pcVar3 = (char *)dcgettext(0,"<time data corrupt>",5);
      sprintf(local_e8,pcVar3);
    }
    else {
      sprintf(local_e8,"%.12s %.4s",pcVar3 + 4,pcVar3 + 0x14);
    }
    FUN_001085e0(local_a0,&local_f3);
    local_e9 = 0;
    fprintf(param_1,"%s %ld/%ld %6lu %s ",local_f2,(ulong)local_9c,(ulong)local_98,local_88,local_e8
           );
  }
  fputs((char *)*param_2,param_1);
  if (param_4 != 0) {
    if ((*(byte *)(param_2 + 9) & 1) == 0) {
      lVar1 = param_2[0xb];
    }
    else {
      lVar1 = param_2[0xc];
    }
    if (lVar1 != 0) {
      fprintf(param_1," 0x%lx");
    }
  }
  fputc(10,param_1);
  return;
}

