
void version_etc(FILE *stream,char *command_name,char *package,char *version,...)

{
  long lVar1;
  char in_AL;
  undefined8 in_R8;
  undefined8 in_R9;
  long in_FS_OFFSET;
  undefined8 in_XMM0_Qa;
  undefined8 in_XMM1_Qa;
  undefined8 in_XMM2_Qa;
  undefined8 in_XMM3_Qa;
  undefined8 in_XMM4_Qa;
  undefined8 in_XMM5_Qa;
  undefined8 in_XMM6_Qa;
  undefined8 in_XMM7_Qa;
  va_list authors;
  undefined1 local_b8 [32];
  undefined8 local_98;
  undefined8 local_90;
  undefined8 local_88;
  undefined8 local_78;
  undefined8 local_68;
  undefined8 local_58;
  undefined8 local_48;
  undefined8 local_38;
  undefined8 local_28;
  undefined8 local_18;
  
  if (in_AL != '\0') {
    local_88 = in_XMM0_Qa;
    local_78 = in_XMM1_Qa;
    local_68 = in_XMM2_Qa;
    local_58 = in_XMM3_Qa;
    local_48 = in_XMM4_Qa;
    local_38 = in_XMM5_Qa;
    local_28 = in_XMM6_Qa;
    local_18 = in_XMM7_Qa;
  }
  lVar1 = *(long *)(in_FS_OFFSET + 0x28);
  authors[0].gp_offset = 0x20;
  authors[0].fp_offset = 0x30;
  authors[0].overflow_arg_area = &stack0x00000008;
  authors[0].reg_save_area = local_b8;
  local_98 = in_R8;
  local_90 = in_R9;
  version_etc_va(stream,command_name,package,version,authors);
  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}



void FUN_00109639(void)

{
  long lVar1;
  long in_FS_OFFSET;
  
  lVar1 = *(long *)(in_FS_OFFSET + 0x28);
  FUN_001095c2();
  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}


PUSH RBX
SUB RSP,0xd0
MOV qword ptr [RSP + 0x40],R8
MOV qword ptr [RSP + 0x48],R9
TEST AL,AL
JZ 0x00109686
MOVAPS xmmword ptr [RSP + 0x50],XMM0
MOVAPS xmmword ptr [RSP + 0x60],XMM1
MOVAPS xmmword ptr [RSP + 0x70],XMM2
MOVAPS xmmword ptr [RSP + 0x80],XMM3
MOVAPS xmmword ptr [RSP + 0x90],XMM4
MOVAPS xmmword ptr [RSP + 0xa0],XMM5
MOVAPS xmmword ptr [RSP + 0xb0],XMM6
MOVAPS xmmword ptr [RSP + 0xc0],XMM7
MOV EBX,0x28
MOV RAX,qword ptr FS:[RBX]
MOV qword ptr [RSP + 0x18],RAX
XOR EAX,EAX
MOV dword ptr [RSP],0x20
MOV dword ptr [RSP + 0x4],0x30
LEA RAX,[RSP + 0xe0]
MOV qword ptr [RSP + 0x8],RAX
LEA RAX,[RSP + 0x20]
MOV qword ptr [RSP + 0x10],RAX
MOV R8,RSP
CALL 0x001095c2
MOV RAX,qword ptr [RSP + 0x18]
XOR RAX,qword ptr FS:[RBX]
JNZ 0x001096d8
ADD RSP,0xd0
POP RBX
RET
CALL 0x00102190
(translation_unit "void FUN_00109639(void)\n\n{\n  long lVar1;\n  long in_FS_OFFSET;\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  FUN_001095c2();\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" (function_definition "void FUN_00109639(void)\n\n{\n  long lVar1;\n  long in_FS_OFFSET;\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  FUN_001095c2();\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (function_declarator "FUN_00109639(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  long lVar1;\n  long in_FS_OFFSET;\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  FUN_001095c2();\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (expression_statement "lVar1 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lVar1 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "FUN_001095c2();" (call_expression "FUN_001095c2()" identifier (argument_list "()" ( ))) ;) (if_statement "if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" if (parenthesized_expression "(lVar1 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lVar1 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void version_etc(FILE *stream,char *command_name,char *package,char *version,...)\n\n{\n  long lVar1;\n  char in_AL;\n  undefined8 in_R8;\n  undefined8 in_R9;\n  long in_FS_OFFSET;\n  undefined8 in_XMM0_Qa;\n  undefined8 in_XMM1_Qa;\n  undefined8 in_XMM2_Qa;\n  undefined8 in_XMM3_Qa;\n  undefined8 in_XMM4_Qa;\n  undefined8 in_XMM5_Qa;\n  undefined8 in_XMM6_Qa;\n  undefined8 in_XMM7_Qa;\n  va_list authors;\n  undefined1 local_b8 [32];\n  undefined8 local_98;\n  undefined8 local_90;\n  undefined8 local_88;\n  undefined8 local_78;\n  undefined8 local_68;\n  undefined8 local_58;\n  undefined8 local_48;\n  undefined8 local_38;\n  undefined8 local_28;\n  undefined8 local_18;\n  \n  if (in_AL != '\0') {\n    local_88 = in_XMM0_Qa;\n    local_78 = in_XMM1_Qa;\n    local_68 = in_XMM2_Qa;\n    local_58 = in_XMM3_Qa;\n    local_48 = in_XMM4_Qa;\n    local_38 = in_XMM5_Qa;\n    local_28 = in_XMM6_Qa;\n    local_18 = in_XMM7_Qa;\n  }\n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  authors[0].gp_offset = 0x20;\n  authors[0].fp_offset = 0x30;\n  authors[0].overflow_arg_area = &stack0x00000008;\n  authors[0].reg_save_area = local_b8;\n  local_98 = in_R8;\n  local_90 = in_R9;\n  version_etc_va(stream,command_name,package,version,authors);\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" (function_definition "void version_etc(FILE *stream,char *command_name,char *package,char *version,...)\n\n{\n  long lVar1;\n  char in_AL;\n  undefined8 in_R8;\n  undefined8 in_R9;\n  long in_FS_OFFSET;\n  undefined8 in_XMM0_Qa;\n  undefined8 in_XMM1_Qa;\n  undefined8 in_XMM2_Qa;\n  undefined8 in_XMM3_Qa;\n  undefined8 in_XMM4_Qa;\n  undefined8 in_XMM5_Qa;\n  undefined8 in_XMM6_Qa;\n  undefined8 in_XMM7_Qa;\n  va_list authors;\n  undefined1 local_b8 [32];\n  undefined8 local_98;\n  undefined8 local_90;\n  undefined8 local_88;\n  undefined8 local_78;\n  undefined8 local_68;\n  undefined8 local_58;\n  undefined8 local_48;\n  undefined8 local_38;\n  undefined8 local_28;\n  undefined8 local_18;\n  \n  if (in_AL != '\0') {\n    local_88 = in_XMM0_Qa;\n    local_78 = in_XMM1_Qa;\n    local_68 = in_XMM2_Qa;\n    local_58 = in_XMM3_Qa;\n    local_48 = in_XMM4_Qa;\n    local_38 = in_XMM5_Qa;\n    local_28 = in_XMM6_Qa;\n    local_18 = in_XMM7_Qa;\n  }\n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  authors[0].gp_offset = 0x20;\n  authors[0].fp_offset = 0x30;\n  authors[0].overflow_arg_area = &stack0x00000008;\n  authors[0].reg_save_area = local_b8;\n  local_98 = in_R8;\n  local_90 = in_R9;\n  version_etc_va(stream,command_name,package,version,authors);\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (function_declarator "version_etc(FILE *stream,char *command_name,char *package,char *version,...)" identifier (parameter_list "(FILE *stream,char *command_name,char *package,char *version,...)" ( (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)) , (variadic_parameter "..." ...) ))) (compound_statement "{\n  long lVar1;\n  char in_AL;\n  undefined8 in_R8;\n  undefined8 in_R9;\n  long in_FS_OFFSET;\n  undefined8 in_XMM0_Qa;\n  undefined8 in_XMM1_Qa;\n  undefined8 in_XMM2_Qa;\n  undefined8 in_XMM3_Qa;\n  undefined8 in_XMM4_Qa;\n  undefined8 in_XMM5_Qa;\n  undefined8 in_XMM6_Qa;\n  undefined8 in_XMM7_Qa;\n  va_list authors;\n  undefined1 local_b8 [32];\n  undefined8 local_98;\n  undefined8 local_90;\n  undefined8 local_88;\n  undefined8 local_78;\n  undefined8 local_68;\n  undefined8 local_58;\n  undefined8 local_48;\n  undefined8 local_38;\n  undefined8 local_28;\n  undefined8 local_18;\n  \n  if (in_AL != '\0') {\n    local_88 = in_XMM0_Qa;\n    local_78 = in_XMM1_Qa;\n    local_68 = in_XMM2_Qa;\n    local_58 = in_XMM3_Qa;\n    local_48 = in_XMM4_Qa;\n    local_38 = in_XMM5_Qa;\n    local_28 = in_XMM6_Qa;\n    local_18 = in_XMM7_Qa;\n  }\n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  authors[0].gp_offset = 0x20;\n  authors[0].fp_offset = 0x30;\n  authors[0].overflow_arg_area = &stack0x00000008;\n  authors[0].reg_save_area = local_b8;\n  local_98 = in_R8;\n  local_90 = in_R9;\n  version_etc_va(stream,command_name,package,version,authors);\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "char in_AL;" primitive_type identifier ;) (declaration "undefined8 in_R8;" type_identifier identifier ;) (declaration "undefined8 in_R9;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 in_XMM0_Qa;" type_identifier identifier ;) (declaration "undefined8 in_XMM1_Qa;" type_identifier identifier ;) (declaration "undefined8 in_XMM2_Qa;" type_identifier identifier ;) (declaration "undefined8 in_XMM3_Qa;" type_identifier identifier ;) (declaration "undefined8 in_XMM4_Qa;" type_identifier identifier ;) (declaration "undefined8 in_XMM5_Qa;" type_identifier identifier ;) (declaration "undefined8 in_XMM6_Qa;" type_identifier identifier ;) (declaration "undefined8 in_XMM7_Qa;" type_identifier identifier ;) (declaration "va_list authors;" type_identifier identifier ;) (declaration "undefined1 local_b8 [32];" type_identifier (array_declarator "local_b8 [32]" identifier [ number_literal ]) ;) (declaration "undefined8 local_98;" type_identifier identifier ;) (declaration "undefined8 local_90;" type_identifier identifier ;) (declaration "undefined8 local_88;" type_identifier identifier ;) (declaration "undefined8 local_78;" type_identifier identifier ;) (declaration "undefined8 local_68;" type_identifier identifier ;) (declaration "undefined8 local_58;" type_identifier identifier ;) (declaration "undefined8 local_48;" type_identifier identifier ;) (declaration "undefined8 local_38;" type_identifier identifier ;) (declaration "undefined8 local_28;" type_identifier identifier ;) (declaration "undefined8 local_18;" type_identifier identifier ;) (if_statement "if (in_AL != '\0') {\n    local_88 = in_XMM0_Qa;\n    local_78 = in_XMM1_Qa;\n    local_68 = in_XMM2_Qa;\n    local_58 = in_XMM3_Qa;\n    local_48 = in_XMM4_Qa;\n    local_38 = in_XMM5_Qa;\n    local_28 = in_XMM6_Qa;\n    local_18 = in_XMM7_Qa;\n  }" if (parenthesized_expression "(in_AL != '\0')" ( (binary_expression "in_AL != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_88 = in_XMM0_Qa;\n    local_78 = in_XMM1_Qa;\n    local_68 = in_XMM2_Qa;\n    local_58 = in_XMM3_Qa;\n    local_48 = in_XMM4_Qa;\n    local_38 = in_XMM5_Qa;\n    local_28 = in_XMM6_Qa;\n    local_18 = in_XMM7_Qa;\n  }" { (expression_statement "local_88 = in_XMM0_Qa;" (assignment_expression "local_88 = in_XMM0_Qa" identifier = identifier) ;) (expression_statement "local_78 = in_XMM1_Qa;" (assignment_expression "local_78 = in_XMM1_Qa" identifier = identifier) ;) (expression_statement "local_68 = in_XMM2_Qa;" (assignment_expression "local_68 = in_XMM2_Qa" identifier = identifier) ;) (expression_statement "local_58 = in_XMM3_Qa;" (assignment_expression "local_58 = in_XMM3_Qa" identifier = identifier) ;) (expression_statement "local_48 = in_XMM4_Qa;" (assignment_expression "local_48 = in_XMM4_Qa" identifier = identifier) ;) (expression_statement "local_38 = in_XMM5_Qa;" (assignment_expression "local_38 = in_XMM5_Qa" identifier = identifier) ;) (expression_statement "local_28 = in_XMM6_Qa;" (assignment_expression "local_28 = in_XMM6_Qa" identifier = identifier) ;) (expression_statement "local_18 = in_XMM7_Qa;" (assignment_expression "local_18 = in_XMM7_Qa" identifier = identifier) ;) })) (expression_statement "lVar1 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lVar1 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "authors[0].gp_offset = 0x20;" (assignment_expression "authors[0].gp_offset = 0x20" (field_expression "authors[0].gp_offset" (subscript_expression "authors[0]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "authors[0].fp_offset = 0x30;" (assignment_expression "authors[0].fp_offset = 0x30" (field_expression "authors[0].fp_offset" (subscript_expression "authors[0]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "authors[0].overflow_arg_area = &stack0x00000008;" (assignment_expression "authors[0].overflow_arg_area = &stack0x00000008" (field_expression "authors[0].overflow_arg_area" (subscript_expression "authors[0]" identifier [ number_literal ]) . field_identifier) = (pointer_expression "&stack0x00000008" & identifier)) ;) (expression_statement "authors[0].reg_save_area = local_b8;" (assignment_expression "authors[0].reg_save_area = local_b8" (field_expression "authors[0].reg_save_area" (subscript_expression "authors[0]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "local_98 = in_R8;" (assignment_expression "local_98 = in_R8" identifier = identifier) ;) (expression_statement "local_90 = in_R9;" (assignment_expression "local_90 = in_R9" identifier = identifier) ;) (expression_statement "version_etc_va(stream,command_name,package,version,authors);" (call_expression "version_etc_va(stream,command_name,package,version,authors)" identifier (argument_list "(stream,command_name,package,version,authors)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (if_statement "if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" if (parenthesized_expression "(lVar1 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lVar1 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void FUN_00109639(void)\n\n{\n  long lVar1;\n  long in_FS_OFFSET;\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  FUN_001095c2();\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    \n  __stack_chk_fail();\n}\n\n" (function_definition "void FUN_00109639(void)\n\n{\n  long lVar1;\n  long in_FS_OFFSET;\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  FUN_001095c2();\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    \n  __stack_chk_fail();\n}" primitive_type (function_declarator "FUN_00109639(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  long lVar1;\n  long in_FS_OFFSET;\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  FUN_001095c2();\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    \n  __stack_chk_fail();\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (expression_statement "lVar1 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lVar1 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "FUN_001095c2();" (call_expression "FUN_001095c2()" identifier (argument_list "()" ( ))) ;) (if_statement "if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" if (parenthesized_expression "(lVar1 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lVar1 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "void FUN_00109639(void)\n\n{\n  long lVar1;\n  long in_FS_OFFSET;\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  FUN_001095c2();\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    \n  __stack_chk_fail();\n}" (primitive_type "void") (function_declarator "FUN_00109639(void)" (identifier "FUN_00109639") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  long lVar1;\n  long in_FS_OFFSET;\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  FUN_001095c2();\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    \n  __stack_chk_fail();\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (expression_statement "lVar1 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lVar1 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "lVar1") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "FUN_001095c2();" (call_expression "FUN_001095c2()" (identifier "FUN_001095c2") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" (if "if") (parenthesized_expression "(lVar1 == *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "lVar1 == *(long *)(in_FS_OFFSET + 0x28)" (identifier "lVar1") (== "==") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

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

{
  long var_4;
  char var_1;
  type_2 in_R8;
  type_2 in_R9;
  long var_2;
  type_2 in_XMM0_Qa;
  type_2 in_XMM1_Qa;
  type_2 in_XMM2_Qa;
  type_2 in_XMM3_Qa;
  type_2 in_XMM4_Qa;
  type_2 in_XMM5_Qa;
  type_2 in_XMM6_Qa;
  type_2 in_XMM7_Qa;
  type_3 authors;
  type_4 local_b8 [32];
  type_2 local_98;
  type_2 local_90;
  type_2 local_88;
  type_2 local_78;
  type_2 local_68;
  type_2 local_58;
  type_2 local_48;
  type_2 local_38;
  type_2 local_28;
  type_2 local_18;
  
  if (var_1 != '\0') {
    local_88 = in_XMM0_Qa;
    local_78 = in_XMM1_Qa;
    local_68 = in_XMM2_Qa;
    local_58 = in_XMM3_Qa;
    local_48 = in_XMM4_Qa;
    local_38 = in_XMM5_Qa;
    local_28 = in_XMM6_Qa;
    local_18 = in_XMM7_Qa;
  }
  var_4 = *(long *)(var_2 + 0x28);
  authors[0].gp_offset = 0x20;
  authors[0].fp_offset = 0x30;
  authors[0].overflow_arg_area = &stack0x00000008;
  authors[0].reg_save_area = local_b8;
  local_98 = in_R8;
  local_90 = in_R9;
  var_3(stream,command_name,package,version,authors);
  if (var_4 == *(long *)(var_2 + 0x28)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  var_5();
}


(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: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_statement))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))

void MASKED(void)

{
  long lVar1;
  long in_FS_OFFSET;
  
  lVar1 = *(long *)(in_FS_OFFSET + 0x28);
  FUN_001095c2();
  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}

