
/* WARNING: Unknown calling convention */

size_t argv_iter_n_args(argv_iterator *ai)

{
  if (ai->fp != (FILE *)0x0) {
    return ai->item_idx;
  }
  return (long)ai->p - (long)ai->arg_list >> 3;
}



long FUN_0010591f(long *param_1)

{
  if (*param_1 != 0) {
    return param_1[1];
  }
  return param_1[5] - param_1[4] >> 3;
}


CMP qword ptr [RDI],0x0
JZ 0x0010592a
MOV RAX,qword ptr [RDI + 0x8]
RET
MOV RAX,qword ptr [RDI + 0x28]
SUB RAX,qword ptr [RDI + 0x20]
SAR RAX,0x3
RET
(translation_unit "long FUN_0010591f(long *param_1)\n\n{\n  if (*param_1 != 0) {\n    return param_1[1];\n  }\n  return param_1[5] - param_1[4] >> 3;\n}\n\n" (function_definition "long FUN_0010591f(long *param_1)\n\n{\n  if (*param_1 != 0) {\n    return param_1[1];\n  }\n  return param_1[5] - param_1[4] >> 3;\n}" (sized_type_specifier "long" long) (function_declarator "FUN_0010591f(long *param_1)" identifier (parameter_list "(long *param_1)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  if (*param_1 != 0) {\n    return param_1[1];\n  }\n  return param_1[5] - param_1[4] >> 3;\n}" { (if_statement "if (*param_1 != 0) {\n    return param_1[1];\n  }" if (parenthesized_expression "(*param_1 != 0)" ( (binary_expression "*param_1 != 0" (pointer_expression "*param_1" * identifier) != number_literal) )) (compound_statement "{\n    return param_1[1];\n  }" { (return_statement "return param_1[1];" return (subscript_expression "param_1[1]" identifier [ number_literal ]) ;) })) (return_statement "return param_1[5] - param_1[4] >> 3;" return (binary_expression "param_1[5] - param_1[4] >> 3" (binary_expression "param_1[5] - param_1[4]" (subscript_expression "param_1[5]" identifier [ number_literal ]) - (subscript_expression "param_1[4]" identifier [ number_literal ])) >> number_literal) ;) })))
(translation_unit "/* WARNING: Unknown calling convention */\n\nsize_t argv_iter_n_args(argv_iterator *ai)\n\n{\n  if (ai->fp != (FILE *)0x0) {\n    return ai->item_idx;\n  }\n  return (long)ai->p - (long)ai->arg_list >> 3;\n}\n\n" comment (function_definition "size_t argv_iter_n_args(argv_iterator *ai)\n\n{\n  if (ai->fp != (FILE *)0x0) {\n    return ai->item_idx;\n  }\n  return (long)ai->p - (long)ai->arg_list >> 3;\n}" primitive_type (function_declarator "argv_iter_n_args(argv_iterator *ai)" identifier (parameter_list "(argv_iterator *ai)" ( (parameter_declaration "argv_iterator *ai" type_identifier (pointer_declarator "*ai" * identifier)) ))) (compound_statement "{\n  if (ai->fp != (FILE *)0x0) {\n    return ai->item_idx;\n  }\n  return (long)ai->p - (long)ai->arg_list >> 3;\n}" { (if_statement "if (ai->fp != (FILE *)0x0) {\n    return ai->item_idx;\n  }" if (parenthesized_expression "(ai->fp != (FILE *)0x0)" ( (binary_expression "ai->fp != (FILE *)0x0" (field_expression "ai->fp" identifier -> field_identifier) != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return ai->item_idx;\n  }" { (return_statement "return ai->item_idx;" return (field_expression "ai->item_idx" identifier -> field_identifier) ;) })) (return_statement "return (long)ai->p - (long)ai->arg_list >> 3;" return (binary_expression "(long)ai->p - (long)ai->arg_list >> 3" (binary_expression "(long)ai->p - (long)ai->arg_list" (cast_expression "(long)ai->p" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "ai->p" identifier -> field_identifier)) - (cast_expression "(long)ai->arg_list" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "ai->arg_list" identifier -> field_identifier))) >> number_literal) ;) })))
(translation_unit "long FUN_0010591f(long *param_1)\n\n{\n  if (*param_1 != 0) {\n    return param_1[1];\n  }\n  return param_1[5] - param_1[4] >> 3;\n}\n\n" (function_definition "long FUN_0010591f(long *param_1)\n\n{\n  if (*param_1 != 0) {\n    return param_1[1];\n  }\n  return param_1[5] - param_1[4] >> 3;\n}" (sized_type_specifier "long" long) (function_declarator "FUN_0010591f(long *param_1)" identifier (parameter_list "(long *param_1)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  if (*param_1 != 0) {\n    return param_1[1];\n  }\n  return param_1[5] - param_1[4] >> 3;\n}" { (if_statement "if (*param_1 != 0) {\n    return param_1[1];\n  }" if (parenthesized_expression "(*param_1 != 0)" ( (binary_expression "*param_1 != 0" (pointer_expression "*param_1" * identifier) != number_literal) )) (compound_statement "{\n    return param_1[1];\n  }" { (return_statement "return param_1[1];" return (subscript_expression "param_1[1]" identifier [ number_literal ]) ;) })) (return_statement "return param_1[5] - param_1[4] >> 3;" return (binary_expression "param_1[5] - param_1[4] >> 3" (binary_expression "param_1[5] - param_1[4]" (subscript_expression "param_1[5]" identifier [ number_literal ]) - (subscript_expression "param_1[4]" identifier [ number_literal ])) >> number_literal) ;) })))
(translation_unit (function_definition (sized_type_specifier long) (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) ))) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (return_statement return (subscript_expression IDENT [ LIT ]) ;) })) (return_statement return (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) >> LIT) ;) })))
(function_definition "long FUN_0010591f(long *param_1)\n\n{\n  if (*param_1 != 0) {\n    return param_1[1];\n  }\n  return param_1[5] - param_1[4] >> 3;\n}" (sized_type_specifier "long" (long "long")) (function_declarator "FUN_0010591f(long *param_1)" (identifier "FUN_0010591f") (parameter_list "(long *param_1)" (( "(") (parameter_declaration "long *param_1" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  if (*param_1 != 0) {\n    return param_1[1];\n  }\n  return param_1[5] - param_1[4] >> 3;\n}" ({ "{") (if_statement "if (*param_1 != 0) {\n    return param_1[1];\n  }" (if "if") (parenthesized_expression "(*param_1 != 0)" (( "(") (binary_expression "*param_1 != 0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return param_1[1];\n  }" ({ "{") (return_statement "return param_1[1];" (return "return") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (; ";")) (} "}"))) (return_statement "return param_1[5] - param_1[4] >> 3;" (return "return") (binary_expression "param_1[5] - param_1[4] >> 3" (binary_expression "param_1[5] - param_1[4]" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (- "-") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (>> ">>") (number_literal "3")) (; ";")) (} "}")))

/* WARNING: Unknown calling convention */

size_t function_1(type_1 *ai)

{
  if (ai->fp != (type_2 *)0x0) {
    return ai->item_idx;
  }
  return (long)ai->p - (long)ai->arg_list >> 3;
}


(translation_unit (function_definition type: (sized_type_specifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (return_statement (subscript_expression argument: (identifier) index: (number_literal))))) (return_statement (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))))))

long MASKED(long *param_1)

{
  if (*param_1 != 0) {
    return param_1[1];
  }
  return param_1[5] - param_1[4] >> 3;
}

