
void version_etc_ar(FILE *stream,char *command_name,char *package,char *version,char **authors)

{
  size_t n_authors;
  
  if (*authors == (char *)0x0) {
    n_authors = 0;
  }
  else {
    n_authors = 0;
    do {
      n_authors = n_authors + 1;
    } while (authors[n_authors] != (char *)0x0);
  }
  version_etc_arn(stream,command_name,package,version,authors,n_authors);
  return;
}



void FUN_00107780(void)

{
  long *in_R8;
  long lVar1;
  
  if (*in_R8 != 0) {
    lVar1 = 0;
    do {
      lVar1 = lVar1 + 1;
    } while (in_R8[lVar1] != 0);
  }
  FUN_001072e7();
  return;
}


SUB RSP,0x8
CMP qword ptr [R8],0x0
JZ 0x001077a5
MOV R9D,0x0
ADD R9,0x1
CMP qword ptr [R8 + R9*0x8],0x0
JNZ 0x00107790
CALL 0x001072e7
ADD RSP,0x8
RET
MOV R9D,0x0
JMP 0x0010779b
(translation_unit "void FUN_00107780(void)\n\n{\n  long *in_R8;\n  long lVar1;\n  \n  if (*in_R8 != 0) {\n    lVar1 = 0;\n    do {\n      lVar1 = lVar1 + 1;\n    } while (in_R8[lVar1] != 0);\n  }\n  FUN_001072e7();\n  return;\n}\n\n" (function_definition "void FUN_00107780(void)\n\n{\n  long *in_R8;\n  long lVar1;\n  \n  if (*in_R8 != 0) {\n    lVar1 = 0;\n    do {\n      lVar1 = lVar1 + 1;\n    } while (in_R8[lVar1] != 0);\n  }\n  FUN_001072e7();\n  return;\n}" primitive_type (function_declarator "FUN_00107780(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  long *in_R8;\n  long lVar1;\n  \n  if (*in_R8 != 0) {\n    lVar1 = 0;\n    do {\n      lVar1 = lVar1 + 1;\n    } while (in_R8[lVar1] != 0);\n  }\n  FUN_001072e7();\n  return;\n}" { (declaration "long *in_R8;" (sized_type_specifier "long" long) (pointer_declarator "*in_R8" * identifier) ;) (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (if_statement "if (*in_R8 != 0) {\n    lVar1 = 0;\n    do {\n      lVar1 = lVar1 + 1;\n    } while (in_R8[lVar1] != 0);\n  }" if (parenthesized_expression "(*in_R8 != 0)" ( (binary_expression "*in_R8 != 0" (pointer_expression "*in_R8" * identifier) != number_literal) )) (compound_statement "{\n    lVar1 = 0;\n    do {\n      lVar1 = lVar1 + 1;\n    } while (in_R8[lVar1] != 0);\n  }" { (expression_statement "lVar1 = 0;" (assignment_expression "lVar1 = 0" identifier = number_literal) ;) (do_statement "do {\n      lVar1 = lVar1 + 1;\n    } while (in_R8[lVar1] != 0);" do (compound_statement "{\n      lVar1 = lVar1 + 1;\n    }" { (expression_statement "lVar1 = lVar1 + 1;" (assignment_expression "lVar1 = lVar1 + 1" identifier = (binary_expression "lVar1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(in_R8[lVar1] != 0)" ( (binary_expression "in_R8[lVar1] != 0" (subscript_expression "in_R8[lVar1]" identifier [ identifier ]) != number_literal) )) ;) })) (expression_statement "FUN_001072e7();" (call_expression "FUN_001072e7()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void version_etc_ar(FILE *stream,char *command_name,char *package,char *version,char **authors)\n\n{\n  size_t n_authors;\n  \n  if (*authors == (char *)0x0) {\n    n_authors = 0;\n  }\n  else {\n    n_authors = 0;\n    do {\n      n_authors = n_authors + 1;\n    } while (authors[n_authors] != (char *)0x0);\n  }\n  version_etc_arn(stream,command_name,package,version,authors,n_authors);\n  return;\n}\n\n" (function_definition "void version_etc_ar(FILE *stream,char *command_name,char *package,char *version,char **authors)\n\n{\n  size_t n_authors;\n  \n  if (*authors == (char *)0x0) {\n    n_authors = 0;\n  }\n  else {\n    n_authors = 0;\n    do {\n      n_authors = n_authors + 1;\n    } while (authors[n_authors] != (char *)0x0);\n  }\n  version_etc_arn(stream,command_name,package,version,authors,n_authors);\n  return;\n}" primitive_type (function_declarator "version_etc_ar(FILE *stream,char *command_name,char *package,char *version,char **authors)" identifier (parameter_list "(FILE *stream,char *command_name,char *package,char *version,char **authors)" ( (parameter_declaration "FILE *stream" type_identifier (pointer_declarator "*stream" * identifier)) , (parameter_declaration "char *command_name" primitive_type (pointer_declarator "*command_name" * identifier)) , (parameter_declaration "char *package" primitive_type (pointer_declarator "*package" * identifier)) , (parameter_declaration "char *version" primitive_type (pointer_declarator "*version" * identifier)) , (parameter_declaration "char **authors" primitive_type (pointer_declarator "**authors" * (pointer_declarator "*authors" * identifier))) ))) (compound_statement "{\n  size_t n_authors;\n  \n  if (*authors == (char *)0x0) {\n    n_authors = 0;\n  }\n  else {\n    n_authors = 0;\n    do {\n      n_authors = n_authors + 1;\n    } while (authors[n_authors] != (char *)0x0);\n  }\n  version_etc_arn(stream,command_name,package,version,authors,n_authors);\n  return;\n}" { (declaration "size_t n_authors;" primitive_type identifier ;) (if_statement "if (*authors == (char *)0x0) {\n    n_authors = 0;\n  }\n  else {\n    n_authors = 0;\n    do {\n      n_authors = n_authors + 1;\n    } while (authors[n_authors] != (char *)0x0);\n  }" if (parenthesized_expression "(*authors == (char *)0x0)" ( (binary_expression "*authors == (char *)0x0" (pointer_expression "*authors" * identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    n_authors = 0;\n  }" { (expression_statement "n_authors = 0;" (assignment_expression "n_authors = 0" identifier = number_literal) ;) }) (else_clause "else {\n    n_authors = 0;\n    do {\n      n_authors = n_authors + 1;\n    } while (authors[n_authors] != (char *)0x0);\n  }" else (compound_statement "{\n    n_authors = 0;\n    do {\n      n_authors = n_authors + 1;\n    } while (authors[n_authors] != (char *)0x0);\n  }" { (expression_statement "n_authors = 0;" (assignment_expression "n_authors = 0" identifier = number_literal) ;) (do_statement "do {\n      n_authors = n_authors + 1;\n    } while (authors[n_authors] != (char *)0x0);" do (compound_statement "{\n      n_authors = n_authors + 1;\n    }" { (expression_statement "n_authors = n_authors + 1;" (assignment_expression "n_authors = n_authors + 1" identifier = (binary_expression "n_authors + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(authors[n_authors] != (char *)0x0)" ( (binary_expression "authors[n_authors] != (char *)0x0" (subscript_expression "authors[n_authors]" identifier [ identifier ]) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }))) (expression_statement "version_etc_arn(stream,command_name,package,version,authors,n_authors);" (call_expression "version_etc_arn(stream,command_name,package,version,authors,n_authors)" identifier (argument_list "(stream,command_name,package,version,authors,n_authors)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00107780(void)\n\n{\n  long *in_R8;\n  long lVar1;\n  \n  if (*in_R8 != 0) {\n    lVar1 = 0;\n    do {\n      lVar1 = lVar1 + 1;\n    } while (in_R8[lVar1] != 0);\n  }\n  FUN_001072e7();\n  return;\n}\n\n" (function_definition "void FUN_00107780(void)\n\n{\n  long *in_R8;\n  long lVar1;\n  \n  if (*in_R8 != 0) {\n    lVar1 = 0;\n    do {\n      lVar1 = lVar1 + 1;\n    } while (in_R8[lVar1] != 0);\n  }\n  FUN_001072e7();\n  return;\n}" primitive_type (function_declarator "FUN_00107780(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  long *in_R8;\n  long lVar1;\n  \n  if (*in_R8 != 0) {\n    lVar1 = 0;\n    do {\n      lVar1 = lVar1 + 1;\n    } while (in_R8[lVar1] != 0);\n  }\n  FUN_001072e7();\n  return;\n}" { (declaration "long *in_R8;" (sized_type_specifier "long" long) (pointer_declarator "*in_R8" * identifier) ;) (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (if_statement "if (*in_R8 != 0) {\n    lVar1 = 0;\n    do {\n      lVar1 = lVar1 + 1;\n    } while (in_R8[lVar1] != 0);\n  }" if (parenthesized_expression "(*in_R8 != 0)" ( (binary_expression "*in_R8 != 0" (pointer_expression "*in_R8" * identifier) != number_literal) )) (compound_statement "{\n    lVar1 = 0;\n    do {\n      lVar1 = lVar1 + 1;\n    } while (in_R8[lVar1] != 0);\n  }" { (expression_statement "lVar1 = 0;" (assignment_expression "lVar1 = 0" identifier = number_literal) ;) (do_statement "do {\n      lVar1 = lVar1 + 1;\n    } while (in_R8[lVar1] != 0);" do (compound_statement "{\n      lVar1 = lVar1 + 1;\n    }" { (expression_statement "lVar1 = lVar1 + 1;" (assignment_expression "lVar1 = lVar1 + 1" identifier = (binary_expression "lVar1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(in_R8[lVar1] != 0)" ( (binary_expression "in_R8[lVar1] != 0" (subscript_expression "in_R8[lVar1]" identifier [ identifier ]) != number_literal) )) ;) })) (expression_statement "FUN_001072e7();" (call_expression "FUN_001072e7()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) != LIT) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })))
(function_definition "void FUN_00107780(void)\n\n{\n  long *in_R8;\n  long lVar1;\n  \n  if (*in_R8 != 0) {\n    lVar1 = 0;\n    do {\n      lVar1 = lVar1 + 1;\n    } while (in_R8[lVar1] != 0);\n  }\n  FUN_001072e7();\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00107780(void)" (identifier "FUN_00107780") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  long *in_R8;\n  long lVar1;\n  \n  if (*in_R8 != 0) {\n    lVar1 = 0;\n    do {\n      lVar1 = lVar1 + 1;\n    } while (in_R8[lVar1] != 0);\n  }\n  FUN_001072e7();\n  return;\n}" ({ "{") (declaration "long *in_R8;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*in_R8" (* "*") (identifier "in_R8")) (; ";")) (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (if_statement "if (*in_R8 != 0) {\n    lVar1 = 0;\n    do {\n      lVar1 = lVar1 + 1;\n    } while (in_R8[lVar1] != 0);\n  }" (if "if") (parenthesized_expression "(*in_R8 != 0)" (( "(") (binary_expression "*in_R8 != 0" (pointer_expression "*in_R8" (* "*") (identifier "in_R8")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    lVar1 = 0;\n    do {\n      lVar1 = lVar1 + 1;\n    } while (in_R8[lVar1] != 0);\n  }" ({ "{") (expression_statement "lVar1 = 0;" (assignment_expression "lVar1 = 0" (identifier "lVar1") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      lVar1 = lVar1 + 1;\n    } while (in_R8[lVar1] != 0);" (do "do") (compound_statement "{\n      lVar1 = lVar1 + 1;\n    }" ({ "{") (expression_statement "lVar1 = lVar1 + 1;" (assignment_expression "lVar1 = lVar1 + 1" (identifier "lVar1") (= "=") (binary_expression "lVar1 + 1" (identifier "lVar1") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(in_R8[lVar1] != 0)" (( "(") (binary_expression "in_R8[lVar1] != 0" (subscript_expression "in_R8[lVar1]" (identifier "in_R8") ([ "[") (identifier "lVar1") (] "]")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "FUN_001072e7();" (call_expression "FUN_001072e7()" (identifier "FUN_001072e7") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *stream,char *command_name,char *package,char *version,char **authors)

{
  size_t var_1;
  
  if (*authors == (char *)0x0) {
    var_1 = 0;
  }
  else {
    var_1 = 0;
    do {
      var_1 = var_1 + 1;
    } while (authors[var_1] != (char *)0x0);
  }
  var_2(stream,command_name,package,version,authors,var_1);
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type)))) body: (compound_statement (declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement))))

void MASKED(void)

{
  long *in_R8;
  long lVar1;
  
  if (*in_R8 != 0) {
    lVar1 = 0;
    do {
      lVar1 = lVar1 + 1;
    } while (in_R8[lVar1] != 0);
  }
  FUN_001072e7();
  return;
}

