
/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void print_modes(void)

{
  char *pcVar1;
  mode_s *pmVar2;
  
  pr2serr("The modes parameter argument can be numeric (hex or decimal)\nor symbolic:\n");
  if (mode_arr[0].mode_string != (char *)0x0) {
    pmVar2 = mode_arr;
    pcVar1 = mode_arr[0].mode_string;
    do {
      pr2serr(" %2d (0x%02x)  %-18s%s\n",pmVar2->mode,pmVar2->mode,pcVar1,pmVar2->comment);
      pmVar2 = pmVar2 + 1;
      pcVar1 = pmVar2->mode_string;
    } while (pcVar1 != (char *)0x0);
  }
  pr2serr(
         "\nAdditionally \'--bpw=<val>,act\' does a activate deferred microcode after\nsuccessful dmc_offs_defer and dmc_offs_ev_defer mode downloads.\n"
         );
  return;
}



void FUN_001022c5(void)

{
  undefined *puVar1;
  undefined **ppuVar2;
  
  pr2serr("The modes parameter argument can be numeric (hex or decimal)\nor symbolic:\n");
  if (PTR_DAT_00107020 != (undefined *)0x0) {
    ppuVar2 = &PTR_DAT_00107020;
    puVar1 = PTR_DAT_00107020;
    do {
      pr2serr(" %2d (0x%02x)  %-18s%s\n",*(undefined4 *)(ppuVar2 + 1),*(undefined4 *)(ppuVar2 + 1),
              puVar1,ppuVar2[2]);
      ppuVar2 = ppuVar2 + 3;
      puVar1 = *ppuVar2;
    } while (puVar1 != (undefined *)0x0);
  }
  pr2serr(
         "\nAdditionally \'--bpw=<val>,act\' does a activate deferred microcode after\nsuccessful dmc_offs_defer and dmc_offs_ev_defer mode downloads.\n"
         );
  return;
}


PUSH RBP
PUSH RBX
SUB RSP,0x8
LEA RDI,[0x104008]
MOV EAX,0x0
CALL 0x001020a0
MOV RCX,qword ptr [0x00107020]
TEST RCX,RCX
JZ 0x00102318
LEA RBX,[0x107020]
LEA RBP,[0x104df8]
MOV ESI,dword ptr [RBX + 0x8]
MOV R8,qword ptr [RBX + 0x10]
MOV EDX,ESI
MOV RDI,RBP
MOV EAX,0x0
CALL 0x001020a0
ADD RBX,0x18
MOV RCX,qword ptr [RBX]
TEST RCX,RCX
JNZ 0x001022f6
LEA RDI,[0x104058]
MOV EAX,0x0
CALL 0x001020a0
ADD RSP,0x8
POP RBX
POP RBP
RET
(translation_unit "void FUN_001022c5(void)\n\n{\n  undefined *puVar1;\n  undefined **ppuVar2;\n  \n  pr2serr("The modes parameter argument can be numeric (hex or decimal)\nor symbolic:\n");\n  if (PTR_DAT_00107020 != (undefined *)0x0) {\n    ppuVar2 = &PTR_DAT_00107020;\n    puVar1 = PTR_DAT_00107020;\n    do {\n      pr2serr(" %2d (0x%02x)  %-18s%s\n",*(undefined4 *)(ppuVar2 + 1),*(undefined4 *)(ppuVar2 + 1),\n              puVar1,ppuVar2[2]);\n      ppuVar2 = ppuVar2 + 3;\n      puVar1 = *ppuVar2;\n    } while (puVar1 != (undefined *)0x0);\n  }\n  pr2serr(\n         "\nAdditionally \'--bpw=<val>,act\' does a activate deferred microcode after\nsuccessful dmc_offs_defer and dmc_offs_ev_defer mode downloads.\n"\n         );\n  return;\n}\n\n" (function_definition "void FUN_001022c5(void)\n\n{\n  undefined *puVar1;\n  undefined **ppuVar2;\n  \n  pr2serr("The modes parameter argument can be numeric (hex or decimal)\nor symbolic:\n");\n  if (PTR_DAT_00107020 != (undefined *)0x0) {\n    ppuVar2 = &PTR_DAT_00107020;\n    puVar1 = PTR_DAT_00107020;\n    do {\n      pr2serr(" %2d (0x%02x)  %-18s%s\n",*(undefined4 *)(ppuVar2 + 1),*(undefined4 *)(ppuVar2 + 1),\n              puVar1,ppuVar2[2]);\n      ppuVar2 = ppuVar2 + 3;\n      puVar1 = *ppuVar2;\n    } while (puVar1 != (undefined *)0x0);\n  }\n  pr2serr(\n         "\nAdditionally \'--bpw=<val>,act\' does a activate deferred microcode after\nsuccessful dmc_offs_defer and dmc_offs_ev_defer mode downloads.\n"\n         );\n  return;\n}" primitive_type (function_declarator "FUN_001022c5(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined **ppuVar2;\n  \n  pr2serr("The modes parameter argument can be numeric (hex or decimal)\nor symbolic:\n");\n  if (PTR_DAT_00107020 != (undefined *)0x0) {\n    ppuVar2 = &PTR_DAT_00107020;\n    puVar1 = PTR_DAT_00107020;\n    do {\n      pr2serr(" %2d (0x%02x)  %-18s%s\n",*(undefined4 *)(ppuVar2 + 1),*(undefined4 *)(ppuVar2 + 1),\n              puVar1,ppuVar2[2]);\n      ppuVar2 = ppuVar2 + 3;\n      puVar1 = *ppuVar2;\n    } while (puVar1 != (undefined *)0x0);\n  }\n  pr2serr(\n         "\nAdditionally \'--bpw=<val>,act\' does a activate deferred microcode after\nsuccessful dmc_offs_defer and dmc_offs_ev_defer mode downloads.\n"\n         );\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined **ppuVar2;" type_identifier (pointer_declarator "**ppuVar2" * (pointer_declarator "*ppuVar2" * identifier)) ;) (expression_statement "pr2serr("The modes parameter argument can be numeric (hex or decimal)\nor symbolic:\n");" (call_expression "pr2serr("The modes parameter argument can be numeric (hex or decimal)\nor symbolic:\n")" identifier (argument_list "("The modes parameter argument can be numeric (hex or decimal)\nor symbolic:\n")" ( (string_literal ""The modes parameter argument can be numeric (hex or decimal)\nor symbolic:\n"" " string_content escape_sequence string_content escape_sequence ") ))) ;) (if_statement "if (PTR_DAT_00107020 != (undefined *)0x0) {\n    ppuVar2 = &PTR_DAT_00107020;\n    puVar1 = PTR_DAT_00107020;\n    do {\n      pr2serr(" %2d (0x%02x)  %-18s%s\n",*(undefined4 *)(ppuVar2 + 1),*(undefined4 *)(ppuVar2 + 1),\n              puVar1,ppuVar2[2]);\n      ppuVar2 = ppuVar2 + 3;\n      puVar1 = *ppuVar2;\n    } while (puVar1 != (undefined *)0x0);\n  }" if (parenthesized_expression "(PTR_DAT_00107020 != (undefined *)0x0)" ( (binary_expression "PTR_DAT_00107020 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    ppuVar2 = &PTR_DAT_00107020;\n    puVar1 = PTR_DAT_00107020;\n    do {\n      pr2serr(" %2d (0x%02x)  %-18s%s\n",*(undefined4 *)(ppuVar2 + 1),*(undefined4 *)(ppuVar2 + 1),\n              puVar1,ppuVar2[2]);\n      ppuVar2 = ppuVar2 + 3;\n      puVar1 = *ppuVar2;\n    } while (puVar1 != (undefined *)0x0);\n  }" { (expression_statement "ppuVar2 = &PTR_DAT_00107020;" (assignment_expression "ppuVar2 = &PTR_DAT_00107020" identifier = (pointer_expression "&PTR_DAT_00107020" & identifier)) ;) (expression_statement "puVar1 = PTR_DAT_00107020;" (assignment_expression "puVar1 = PTR_DAT_00107020" identifier = identifier) ;) (do_statement "do {\n      pr2serr(" %2d (0x%02x)  %-18s%s\n",*(undefined4 *)(ppuVar2 + 1),*(undefined4 *)(ppuVar2 + 1),\n              puVar1,ppuVar2[2]);\n      ppuVar2 = ppuVar2 + 3;\n      puVar1 = *ppuVar2;\n    } while (puVar1 != (undefined *)0x0);" do (compound_statement "{\n      pr2serr(" %2d (0x%02x)  %-18s%s\n",*(undefined4 *)(ppuVar2 + 1),*(undefined4 *)(ppuVar2 + 1),\n              puVar1,ppuVar2[2]);\n      ppuVar2 = ppuVar2 + 3;\n      puVar1 = *ppuVar2;\n    }" { (expression_statement "pr2serr(" %2d (0x%02x)  %-18s%s\n",*(undefined4 *)(ppuVar2 + 1),*(undefined4 *)(ppuVar2 + 1),\n              puVar1,ppuVar2[2]);" (call_expression "pr2serr(" %2d (0x%02x)  %-18s%s\n",*(undefined4 *)(ppuVar2 + 1),*(undefined4 *)(ppuVar2 + 1),\n              puVar1,ppuVar2[2])" identifier (argument_list "(" %2d (0x%02x)  %-18s%s\n",*(undefined4 *)(ppuVar2 + 1),*(undefined4 *)(ppuVar2 + 1),\n              puVar1,ppuVar2[2])" ( (string_literal "" %2d (0x%02x)  %-18s%s\n"" " string_content escape_sequence ") , (pointer_expression "*(undefined4 *)(ppuVar2 + 1)" * (cast_expression "(undefined4 *)(ppuVar2 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppuVar2 + 1)" ( (binary_expression "ppuVar2 + 1" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(ppuVar2 + 1)" * (cast_expression "(undefined4 *)(ppuVar2 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppuVar2 + 1)" ( (binary_expression "ppuVar2 + 1" identifier + number_literal) )))) , identifier , (subscript_expression "ppuVar2[2]" identifier [ number_literal ]) ))) ;) (expression_statement "ppuVar2 = ppuVar2 + 3;" (assignment_expression "ppuVar2 = ppuVar2 + 3" identifier = (binary_expression "ppuVar2 + 3" identifier + number_literal)) ;) (expression_statement "puVar1 = *ppuVar2;" (assignment_expression "puVar1 = *ppuVar2" identifier = (pointer_expression "*ppuVar2" * identifier)) ;) }) while (parenthesized_expression "(puVar1 != (undefined *)0x0)" ( (binary_expression "puVar1 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "pr2serr(\n         "\nAdditionally \'--bpw=<val>,act\' does a activate deferred microcode after\nsuccessful dmc_offs_defer and dmc_offs_ev_defer mode downloads.\n"\n         );" (call_expression "pr2serr(\n         "\nAdditionally \'--bpw=<val>,act\' does a activate deferred microcode after\nsuccessful dmc_offs_defer and dmc_offs_ev_defer mode downloads.\n"\n         )" identifier (argument_list "(\n         "\nAdditionally \'--bpw=<val>,act\' does a activate deferred microcode after\nsuccessful dmc_offs_defer and dmc_offs_ev_defer mode downloads.\n"\n         )" ( (string_literal ""\nAdditionally \'--bpw=<val>,act\' does a activate deferred microcode after\nsuccessful dmc_offs_defer and dmc_offs_ev_defer mode downloads.\n"" " escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n\nvoid print_modes(void)\n\n{\n  char *pcVar1;\n  mode_s *pmVar2;\n  \n  pr2serr("The modes parameter argument can be numeric (hex or decimal)\nor symbolic:\n");\n  if (mode_arr[0].mode_string != (char *)0x0) {\n    pmVar2 = mode_arr;\n    pcVar1 = mode_arr[0].mode_string;\n    do {\n      pr2serr(" %2d (0x%02x)  %-18s%s\n",pmVar2->mode,pmVar2->mode,pcVar1,pmVar2->comment);\n      pmVar2 = pmVar2 + 1;\n      pcVar1 = pmVar2->mode_string;\n    } while (pcVar1 != (char *)0x0);\n  }\n  pr2serr(\n         "\nAdditionally \'--bpw=<val>,act\' does a activate deferred microcode after\nsuccessful dmc_offs_defer and dmc_offs_ev_defer mode downloads.\n"\n         );\n  return;\n}\n\n" comment (function_definition "void print_modes(void)\n\n{\n  char *pcVar1;\n  mode_s *pmVar2;\n  \n  pr2serr("The modes parameter argument can be numeric (hex or decimal)\nor symbolic:\n");\n  if (mode_arr[0].mode_string != (char *)0x0) {\n    pmVar2 = mode_arr;\n    pcVar1 = mode_arr[0].mode_string;\n    do {\n      pr2serr(" %2d (0x%02x)  %-18s%s\n",pmVar2->mode,pmVar2->mode,pcVar1,pmVar2->comment);\n      pmVar2 = pmVar2 + 1;\n      pcVar1 = pmVar2->mode_string;\n    } while (pcVar1 != (char *)0x0);\n  }\n  pr2serr(\n         "\nAdditionally \'--bpw=<val>,act\' does a activate deferred microcode after\nsuccessful dmc_offs_defer and dmc_offs_ev_defer mode downloads.\n"\n         );\n  return;\n}" primitive_type (function_declarator "print_modes(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  char *pcVar1;\n  mode_s *pmVar2;\n  \n  pr2serr("The modes parameter argument can be numeric (hex or decimal)\nor symbolic:\n");\n  if (mode_arr[0].mode_string != (char *)0x0) {\n    pmVar2 = mode_arr;\n    pcVar1 = mode_arr[0].mode_string;\n    do {\n      pr2serr(" %2d (0x%02x)  %-18s%s\n",pmVar2->mode,pmVar2->mode,pcVar1,pmVar2->comment);\n      pmVar2 = pmVar2 + 1;\n      pcVar1 = pmVar2->mode_string;\n    } while (pcVar1 != (char *)0x0);\n  }\n  pr2serr(\n         "\nAdditionally \'--bpw=<val>,act\' does a activate deferred microcode after\nsuccessful dmc_offs_defer and dmc_offs_ev_defer mode downloads.\n"\n         );\n  return;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "mode_s *pmVar2;" type_identifier (pointer_declarator "*pmVar2" * identifier) ;) (expression_statement "pr2serr("The modes parameter argument can be numeric (hex or decimal)\nor symbolic:\n");" (call_expression "pr2serr("The modes parameter argument can be numeric (hex or decimal)\nor symbolic:\n")" identifier (argument_list "("The modes parameter argument can be numeric (hex or decimal)\nor symbolic:\n")" ( (string_literal ""The modes parameter argument can be numeric (hex or decimal)\nor symbolic:\n"" " string_content escape_sequence string_content escape_sequence ") ))) ;) (if_statement "if (mode_arr[0].mode_string != (char *)0x0) {\n    pmVar2 = mode_arr;\n    pcVar1 = mode_arr[0].mode_string;\n    do {\n      pr2serr(" %2d (0x%02x)  %-18s%s\n",pmVar2->mode,pmVar2->mode,pcVar1,pmVar2->comment);\n      pmVar2 = pmVar2 + 1;\n      pcVar1 = pmVar2->mode_string;\n    } while (pcVar1 != (char *)0x0);\n  }" if (parenthesized_expression "(mode_arr[0].mode_string != (char *)0x0)" ( (binary_expression "mode_arr[0].mode_string != (char *)0x0" (field_expression "mode_arr[0].mode_string" (subscript_expression "mode_arr[0]" identifier [ number_literal ]) . field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pmVar2 = mode_arr;\n    pcVar1 = mode_arr[0].mode_string;\n    do {\n      pr2serr(" %2d (0x%02x)  %-18s%s\n",pmVar2->mode,pmVar2->mode,pcVar1,pmVar2->comment);\n      pmVar2 = pmVar2 + 1;\n      pcVar1 = pmVar2->mode_string;\n    } while (pcVar1 != (char *)0x0);\n  }" { (expression_statement "pmVar2 = mode_arr;" (assignment_expression "pmVar2 = mode_arr" identifier = identifier) ;) (expression_statement "pcVar1 = mode_arr[0].mode_string;" (assignment_expression "pcVar1 = mode_arr[0].mode_string" identifier = (field_expression "mode_arr[0].mode_string" (subscript_expression "mode_arr[0]" identifier [ number_literal ]) . field_identifier)) ;) (do_statement "do {\n      pr2serr(" %2d (0x%02x)  %-18s%s\n",pmVar2->mode,pmVar2->mode,pcVar1,pmVar2->comment);\n      pmVar2 = pmVar2 + 1;\n      pcVar1 = pmVar2->mode_string;\n    } while (pcVar1 != (char *)0x0);" do (compound_statement "{\n      pr2serr(" %2d (0x%02x)  %-18s%s\n",pmVar2->mode,pmVar2->mode,pcVar1,pmVar2->comment);\n      pmVar2 = pmVar2 + 1;\n      pcVar1 = pmVar2->mode_string;\n    }" { (expression_statement "pr2serr(" %2d (0x%02x)  %-18s%s\n",pmVar2->mode,pmVar2->mode,pcVar1,pmVar2->comment);" (call_expression "pr2serr(" %2d (0x%02x)  %-18s%s\n",pmVar2->mode,pmVar2->mode,pcVar1,pmVar2->comment)" identifier (argument_list "(" %2d (0x%02x)  %-18s%s\n",pmVar2->mode,pmVar2->mode,pcVar1,pmVar2->comment)" ( (string_literal "" %2d (0x%02x)  %-18s%s\n"" " string_content escape_sequence ") , (field_expression "pmVar2->mode" identifier -> field_identifier) , (field_expression "pmVar2->mode" identifier -> field_identifier) , identifier , (field_expression "pmVar2->comment" identifier -> field_identifier) ))) ;) (expression_statement "pmVar2 = pmVar2 + 1;" (assignment_expression "pmVar2 = pmVar2 + 1" identifier = (binary_expression "pmVar2 + 1" identifier + number_literal)) ;) (expression_statement "pcVar1 = pmVar2->mode_string;" (assignment_expression "pcVar1 = pmVar2->mode_string" identifier = (field_expression "pmVar2->mode_string" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(pcVar1 != (char *)0x0)" ( (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "pr2serr(\n         "\nAdditionally \'--bpw=<val>,act\' does a activate deferred microcode after\nsuccessful dmc_offs_defer and dmc_offs_ev_defer mode downloads.\n"\n         );" (call_expression "pr2serr(\n         "\nAdditionally \'--bpw=<val>,act\' does a activate deferred microcode after\nsuccessful dmc_offs_defer and dmc_offs_ev_defer mode downloads.\n"\n         )" identifier (argument_list "(\n         "\nAdditionally \'--bpw=<val>,act\' does a activate deferred microcode after\nsuccessful dmc_offs_defer and dmc_offs_ev_defer mode downloads.\n"\n         )" ( (string_literal ""\nAdditionally \'--bpw=<val>,act\' does a activate deferred microcode after\nsuccessful dmc_offs_defer and dmc_offs_ev_defer mode downloads.\n"" " escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_001022c5(void)\n\n{\n  undefined *puVar1;\n  undefined **ppuVar2;\n  \n  pr2serr("The modes parameter argument can be numeric (hex or decimal)\nor symbolic:\n");\n  if (PTR_DAT_00107020 != (undefined *)0x0) {\n    ppuVar2 = &PTR_DAT_00107020;\n    puVar1 = PTR_DAT_00107020;\n    do {\n      pr2serr(" %2d (0x%02x)  %-18s%s\n",*(undefined4 *)(ppuVar2 + 1),*(undefined4 *)(ppuVar2 + 1),\n              puVar1,ppuVar2[2]);\n      ppuVar2 = ppuVar2 + 3;\n      puVar1 = *ppuVar2;\n    } while (puVar1 != (undefined *)0x0);\n  }\n  pr2serr(\n         "\nAdditionally \'--bpw=<val>,act\' does a activate deferred microcode after\nsuccessful dmc_offs_defer and dmc_offs_ev_defer mode downloads.\n"\n         );\n  return;\n}\n\n" (function_definition "void FUN_001022c5(void)\n\n{\n  undefined *puVar1;\n  undefined **ppuVar2;\n  \n  pr2serr("The modes parameter argument can be numeric (hex or decimal)\nor symbolic:\n");\n  if (PTR_DAT_00107020 != (undefined *)0x0) {\n    ppuVar2 = &PTR_DAT_00107020;\n    puVar1 = PTR_DAT_00107020;\n    do {\n      pr2serr(" %2d (0x%02x)  %-18s%s\n",*(undefined4 *)(ppuVar2 + 1),*(undefined4 *)(ppuVar2 + 1),\n              puVar1,ppuVar2[2]);\n      ppuVar2 = ppuVar2 + 3;\n      puVar1 = *ppuVar2;\n    } while (puVar1 != (undefined *)0x0);\n  }\n  pr2serr(\n         "\nAdditionally \'--bpw=<val>,act\' does a activate deferred microcode after\nsuccessful dmc_offs_defer and dmc_offs_ev_defer mode downloads.\n"\n         );\n  return;\n}" primitive_type (function_declarator "FUN_001022c5(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined **ppuVar2;\n  \n  pr2serr("The modes parameter argument can be numeric (hex or decimal)\nor symbolic:\n");\n  if (PTR_DAT_00107020 != (undefined *)0x0) {\n    ppuVar2 = &PTR_DAT_00107020;\n    puVar1 = PTR_DAT_00107020;\n    do {\n      pr2serr(" %2d (0x%02x)  %-18s%s\n",*(undefined4 *)(ppuVar2 + 1),*(undefined4 *)(ppuVar2 + 1),\n              puVar1,ppuVar2[2]);\n      ppuVar2 = ppuVar2 + 3;\n      puVar1 = *ppuVar2;\n    } while (puVar1 != (undefined *)0x0);\n  }\n  pr2serr(\n         "\nAdditionally \'--bpw=<val>,act\' does a activate deferred microcode after\nsuccessful dmc_offs_defer and dmc_offs_ev_defer mode downloads.\n"\n         );\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined **ppuVar2;" type_identifier (pointer_declarator "**ppuVar2" * (pointer_declarator "*ppuVar2" * identifier)) ;) (expression_statement "pr2serr("The modes parameter argument can be numeric (hex or decimal)\nor symbolic:\n");" (call_expression "pr2serr("The modes parameter argument can be numeric (hex or decimal)\nor symbolic:\n")" identifier (argument_list "("The modes parameter argument can be numeric (hex or decimal)\nor symbolic:\n")" ( (string_literal ""The modes parameter argument can be numeric (hex or decimal)\nor symbolic:\n"" " string_content escape_sequence string_content escape_sequence ") ))) ;) (if_statement "if (PTR_DAT_00107020 != (undefined *)0x0) {\n    ppuVar2 = &PTR_DAT_00107020;\n    puVar1 = PTR_DAT_00107020;\n    do {\n      pr2serr(" %2d (0x%02x)  %-18s%s\n",*(undefined4 *)(ppuVar2 + 1),*(undefined4 *)(ppuVar2 + 1),\n              puVar1,ppuVar2[2]);\n      ppuVar2 = ppuVar2 + 3;\n      puVar1 = *ppuVar2;\n    } while (puVar1 != (undefined *)0x0);\n  }" if (parenthesized_expression "(PTR_DAT_00107020 != (undefined *)0x0)" ( (binary_expression "PTR_DAT_00107020 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    ppuVar2 = &PTR_DAT_00107020;\n    puVar1 = PTR_DAT_00107020;\n    do {\n      pr2serr(" %2d (0x%02x)  %-18s%s\n",*(undefined4 *)(ppuVar2 + 1),*(undefined4 *)(ppuVar2 + 1),\n              puVar1,ppuVar2[2]);\n      ppuVar2 = ppuVar2 + 3;\n      puVar1 = *ppuVar2;\n    } while (puVar1 != (undefined *)0x0);\n  }" { (expression_statement "ppuVar2 = &PTR_DAT_00107020;" (assignment_expression "ppuVar2 = &PTR_DAT_00107020" identifier = (pointer_expression "&PTR_DAT_00107020" & identifier)) ;) (expression_statement "puVar1 = PTR_DAT_00107020;" (assignment_expression "puVar1 = PTR_DAT_00107020" identifier = identifier) ;) (do_statement "do {\n      pr2serr(" %2d (0x%02x)  %-18s%s\n",*(undefined4 *)(ppuVar2 + 1),*(undefined4 *)(ppuVar2 + 1),\n              puVar1,ppuVar2[2]);\n      ppuVar2 = ppuVar2 + 3;\n      puVar1 = *ppuVar2;\n    } while (puVar1 != (undefined *)0x0);" do (compound_statement "{\n      pr2serr(" %2d (0x%02x)  %-18s%s\n",*(undefined4 *)(ppuVar2 + 1),*(undefined4 *)(ppuVar2 + 1),\n              puVar1,ppuVar2[2]);\n      ppuVar2 = ppuVar2 + 3;\n      puVar1 = *ppuVar2;\n    }" { (expression_statement "pr2serr(" %2d (0x%02x)  %-18s%s\n",*(undefined4 *)(ppuVar2 + 1),*(undefined4 *)(ppuVar2 + 1),\n              puVar1,ppuVar2[2]);" (call_expression "pr2serr(" %2d (0x%02x)  %-18s%s\n",*(undefined4 *)(ppuVar2 + 1),*(undefined4 *)(ppuVar2 + 1),\n              puVar1,ppuVar2[2])" identifier (argument_list "(" %2d (0x%02x)  %-18s%s\n",*(undefined4 *)(ppuVar2 + 1),*(undefined4 *)(ppuVar2 + 1),\n              puVar1,ppuVar2[2])" ( (string_literal "" %2d (0x%02x)  %-18s%s\n"" " string_content escape_sequence ") , (pointer_expression "*(undefined4 *)(ppuVar2 + 1)" * (cast_expression "(undefined4 *)(ppuVar2 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppuVar2 + 1)" ( (binary_expression "ppuVar2 + 1" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(ppuVar2 + 1)" * (cast_expression "(undefined4 *)(ppuVar2 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppuVar2 + 1)" ( (binary_expression "ppuVar2 + 1" identifier + number_literal) )))) , identifier , (subscript_expression "ppuVar2[2]" identifier [ number_literal ]) ))) ;) (expression_statement "ppuVar2 = ppuVar2 + 3;" (assignment_expression "ppuVar2 = ppuVar2 + 3" identifier = (binary_expression "ppuVar2 + 3" identifier + number_literal)) ;) (expression_statement "puVar1 = *ppuVar2;" (assignment_expression "puVar1 = *ppuVar2" identifier = (pointer_expression "*ppuVar2" * identifier)) ;) }) while (parenthesized_expression "(puVar1 != (undefined *)0x0)" ( (binary_expression "puVar1 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "pr2serr(\n         "\nAdditionally \'--bpw=<val>,act\' does a activate deferred microcode after\nsuccessful dmc_offs_defer and dmc_offs_ev_defer mode downloads.\n"\n         );" (call_expression "pr2serr(\n         "\nAdditionally \'--bpw=<val>,act\' does a activate deferred microcode after\nsuccessful dmc_offs_defer and dmc_offs_ev_defer mode downloads.\n"\n         )" identifier (argument_list "(\n         "\nAdditionally \'--bpw=<val>,act\' does a activate deferred microcode after\nsuccessful dmc_offs_defer and dmc_offs_ev_defer mode downloads.\n"\n         )" ( (string_literal ""\nAdditionally \'--bpw=<val>,act\' does a activate deferred microcode after\nsuccessful dmc_offs_defer and dmc_offs_ev_defer mode downloads.\n"" " escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence ") ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (return_statement return ;) })))
(function_definition "void FUN_001022c5(void)\n\n{\n  undefined *puVar1;\n  undefined **ppuVar2;\n  \n  pr2serr("The modes parameter argument can be numeric (hex or decimal)\nor symbolic:\n");\n  if (PTR_DAT_00107020 != (undefined *)0x0) {\n    ppuVar2 = &PTR_DAT_00107020;\n    puVar1 = PTR_DAT_00107020;\n    do {\n      pr2serr(" %2d (0x%02x)  %-18s%s\n",*(undefined4 *)(ppuVar2 + 1),*(undefined4 *)(ppuVar2 + 1),\n              puVar1,ppuVar2[2]);\n      ppuVar2 = ppuVar2 + 3;\n      puVar1 = *ppuVar2;\n    } while (puVar1 != (undefined *)0x0);\n  }\n  pr2serr(\n         "\nAdditionally \'--bpw=<val>,act\' does a activate deferred microcode after\nsuccessful dmc_offs_defer and dmc_offs_ev_defer mode downloads.\n"\n         );\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001022c5(void)" (identifier "FUN_001022c5") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  undefined **ppuVar2;\n  \n  pr2serr("The modes parameter argument can be numeric (hex or decimal)\nor symbolic:\n");\n  if (PTR_DAT_00107020 != (undefined *)0x0) {\n    ppuVar2 = &PTR_DAT_00107020;\n    puVar1 = PTR_DAT_00107020;\n    do {\n      pr2serr(" %2d (0x%02x)  %-18s%s\n",*(undefined4 *)(ppuVar2 + 1),*(undefined4 *)(ppuVar2 + 1),\n              puVar1,ppuVar2[2]);\n      ppuVar2 = ppuVar2 + 3;\n      puVar1 = *ppuVar2;\n    } while (puVar1 != (undefined *)0x0);\n  }\n  pr2serr(\n         "\nAdditionally \'--bpw=<val>,act\' does a activate deferred microcode after\nsuccessful dmc_offs_defer and dmc_offs_ev_defer mode downloads.\n"\n         );\n  return;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined **ppuVar2;" (type_identifier "undefined") (pointer_declarator "**ppuVar2" (* "*") (pointer_declarator "*ppuVar2" (* "*") (identifier "ppuVar2"))) (; ";")) (expression_statement "pr2serr("The modes parameter argument can be numeric (hex or decimal)\nor symbolic:\n");" (call_expression "pr2serr("The modes parameter argument can be numeric (hex or decimal)\nor symbolic:\n")" (identifier "pr2serr") (argument_list "("The modes parameter argument can be numeric (hex or decimal)\nor symbolic:\n")" (( "(") (string_literal ""The modes parameter argument can be numeric (hex or decimal)\nor symbolic:\n"" (" """) (string_content "The modes parameter argument can be numeric (hex or decimal)") (escape_sequence "\n") (string_content "or symbolic:") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (if_statement "if (PTR_DAT_00107020 != (undefined *)0x0) {\n    ppuVar2 = &PTR_DAT_00107020;\n    puVar1 = PTR_DAT_00107020;\n    do {\n      pr2serr(" %2d (0x%02x)  %-18s%s\n",*(undefined4 *)(ppuVar2 + 1),*(undefined4 *)(ppuVar2 + 1),\n              puVar1,ppuVar2[2]);\n      ppuVar2 = ppuVar2 + 3;\n      puVar1 = *ppuVar2;\n    } while (puVar1 != (undefined *)0x0);\n  }" (if "if") (parenthesized_expression "(PTR_DAT_00107020 != (undefined *)0x0)" (( "(") (binary_expression "PTR_DAT_00107020 != (undefined *)0x0" (identifier "PTR_DAT_00107020") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    ppuVar2 = &PTR_DAT_00107020;\n    puVar1 = PTR_DAT_00107020;\n    do {\n      pr2serr(" %2d (0x%02x)  %-18s%s\n",*(undefined4 *)(ppuVar2 + 1),*(undefined4 *)(ppuVar2 + 1),\n              puVar1,ppuVar2[2]);\n      ppuVar2 = ppuVar2 + 3;\n      puVar1 = *ppuVar2;\n    } while (puVar1 != (undefined *)0x0);\n  }" ({ "{") (expression_statement "ppuVar2 = &PTR_DAT_00107020;" (assignment_expression "ppuVar2 = &PTR_DAT_00107020" (identifier "ppuVar2") (= "=") (pointer_expression "&PTR_DAT_00107020" (& "&") (identifier "PTR_DAT_00107020"))) (; ";")) (expression_statement "puVar1 = PTR_DAT_00107020;" (assignment_expression "puVar1 = PTR_DAT_00107020" (identifier "puVar1") (= "=") (identifier "PTR_DAT_00107020")) (; ";")) (do_statement "do {\n      pr2serr(" %2d (0x%02x)  %-18s%s\n",*(undefined4 *)(ppuVar2 + 1),*(undefined4 *)(ppuVar2 + 1),\n              puVar1,ppuVar2[2]);\n      ppuVar2 = ppuVar2 + 3;\n      puVar1 = *ppuVar2;\n    } while (puVar1 != (undefined *)0x0);" (do "do") (compound_statement "{\n      pr2serr(" %2d (0x%02x)  %-18s%s\n",*(undefined4 *)(ppuVar2 + 1),*(undefined4 *)(ppuVar2 + 1),\n              puVar1,ppuVar2[2]);\n      ppuVar2 = ppuVar2 + 3;\n      puVar1 = *ppuVar2;\n    }" ({ "{") (expression_statement "pr2serr(" %2d (0x%02x)  %-18s%s\n",*(undefined4 *)(ppuVar2 + 1),*(undefined4 *)(ppuVar2 + 1),\n              puVar1,ppuVar2[2]);" (call_expression "pr2serr(" %2d (0x%02x)  %-18s%s\n",*(undefined4 *)(ppuVar2 + 1),*(undefined4 *)(ppuVar2 + 1),\n              puVar1,ppuVar2[2])" (identifier "pr2serr") (argument_list "(" %2d (0x%02x)  %-18s%s\n",*(undefined4 *)(ppuVar2 + 1),*(undefined4 *)(ppuVar2 + 1),\n              puVar1,ppuVar2[2])" (( "(") (string_literal "" %2d (0x%02x)  %-18s%s\n"" (" """) (string_content " %2d (0x%02x)  %-18s%s") (escape_sequence "\n") (" """)) (, ",") (pointer_expression "*(undefined4 *)(ppuVar2 + 1)" (* "*") (cast_expression "(undefined4 *)(ppuVar2 + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppuVar2 + 1)" (( "(") (binary_expression "ppuVar2 + 1" (identifier "ppuVar2") (+ "+") (number_literal "1")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(ppuVar2 + 1)" (* "*") (cast_expression "(undefined4 *)(ppuVar2 + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppuVar2 + 1)" (( "(") (binary_expression "ppuVar2 + 1" (identifier "ppuVar2") (+ "+") (number_literal "1")) () ")")))) (, ",") (identifier "puVar1") (, ",") (subscript_expression "ppuVar2[2]" (identifier "ppuVar2") ([ "[") (number_literal "2") (] "]")) () ")"))) (; ";")) (expression_statement "ppuVar2 = ppuVar2 + 3;" (assignment_expression "ppuVar2 = ppuVar2 + 3" (identifier "ppuVar2") (= "=") (binary_expression "ppuVar2 + 3" (identifier "ppuVar2") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "puVar1 = *ppuVar2;" (assignment_expression "puVar1 = *ppuVar2" (identifier "puVar1") (= "=") (pointer_expression "*ppuVar2" (* "*") (identifier "ppuVar2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar1 != (undefined *)0x0)" (( "(") (binary_expression "puVar1 != (undefined *)0x0" (identifier "puVar1") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (expression_statement "pr2serr(\n         "\nAdditionally \'--bpw=<val>,act\' does a activate deferred microcode after\nsuccessful dmc_offs_defer and dmc_offs_ev_defer mode downloads.\n"\n         );" (call_expression "pr2serr(\n         "\nAdditionally \'--bpw=<val>,act\' does a activate deferred microcode after\nsuccessful dmc_offs_defer and dmc_offs_ev_defer mode downloads.\n"\n         )" (identifier "pr2serr") (argument_list "(\n         "\nAdditionally \'--bpw=<val>,act\' does a activate deferred microcode after\nsuccessful dmc_offs_defer and dmc_offs_ev_defer mode downloads.\n"\n         )" (( "(") (string_literal ""\nAdditionally \'--bpw=<val>,act\' does a activate deferred microcode after\nsuccessful dmc_offs_defer and dmc_offs_ev_defer mode downloads.\n"" (" """) (escape_sequence "\n") (string_content "Additionally ") (escape_sequence "\'") (string_content "--bpw=<val>,act") (escape_sequence "\'") (string_content " does a activate deferred microcode after") (escape_sequence "\n") (string_content "successful dmc_offs_defer and dmc_offs_ev_defer mode downloads.") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void function_1(void)

{
  char *var_3;
  type_1 *var_2;
  
  var_1("The modes parameter argument can be numeric (hex or decimal)\nor symbolic:\n");
  if (mode_arr[0].mode_string != (char *)0x0) {
    var_2 = mode_arr;
    var_3 = mode_arr[0].mode_string;
    do {
      var_1(" %2d (0x%02x)  %-18s%s\n",var_2->mode,var_2->mode,var_3,var_2->comment);
      var_2 = var_2 + 1;
      var_3 = var_2->mode_string;
    } while (var_3 != (char *)0x0);
  }
  var_1(
         "\nAdditionally \'--bpw=<val>,act\' does a activate deferred microcode after\nsuccessful dmc_offs_defer and dmc_offs_ev_defer mode downloads.\n"
         );
  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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (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))))) (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))))) (identifier) (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence))))) (return_statement))))

void MASKED(void)

{
  undefined *puVar1;
  undefined **ppuVar2;
  
  pr2serr("The modes parameter argument can be numeric (hex or decimal)\nor symbolic:\n");
  if (PTR_DAT_00107020 != (undefined *)0x0) {
    ppuVar2 = &PTR_DAT_00107020;
    puVar1 = PTR_DAT_00107020;
    do {
      pr2serr(" %2d (0x%02x)  %-18s%s\n",*(undefined4 *)(ppuVar2 + 1),*(undefined4 *)(ppuVar2 + 1),
              puVar1,ppuVar2[2]);
      ppuVar2 = ppuVar2 + 3;
      puVar1 = *ppuVar2;
    } while (puVar1 != (undefined *)0x0);
  }
  pr2serr(
         "\nAdditionally \'--bpw=<val>,act\' does a activate deferred microcode after\nsuccessful dmc_offs_defer and dmc_offs_ev_defer mode downloads.\n"
         );
  return;
}

