
/* WARNING: Switch with 1 destination removed at 0x00114de0 */
/* WARNING: Unknown calling convention */

int des_test(void)

{
  int iVar1;
  uchar *key;
  int which;
  long in_FS_OFFSET;
  symmetric_key sStack_10e8;
  uchar auStack_48 [8];
  long lStack_40;
  
  which = 0;
  key = des_test::cases[0].key;
  lStack_40 = *(long *)(in_FS_OFFSET + 0x28);
  do {
    iVar1 = des_setup(key,8,0,&sStack_10e8);
    if (iVar1 != 0) break;
    if (*(int *)(key + -4) == 0) {
      des_ecb_decrypt(key + 8,auStack_48,&sStack_10e8);
    }
    else {
      des_ecb_encrypt(key + 8,auStack_48,&sStack_10e8);
    }
    iVar1 = compare_testvector(key + 0x10,8,auStack_48,8,"DES",which);
    if (iVar1 != 0) {
LAB_0011fcf5:
      iVar1 = 5;
      break;
    }
    auStack_48[0] = '\0';
    auStack_48[1] = '\0';
    auStack_48[2] = '\0';
    auStack_48[3] = '\0';
    auStack_48[4] = '\0';
    auStack_48[5] = '\0';
    auStack_48[6] = '\0';
    auStack_48[7] = '\0';
    iVar1 = 1000;
    do {
      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);
      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);
      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);
      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);
      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);
      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);
      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);
      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);
      iVar1 = iVar1 + -8;
    } while (iVar1 != 0);
    iVar1 = 1000;
    do {
      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);
      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);
      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);
      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);
      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);
      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);
      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);
      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);
      iVar1 = iVar1 + -8;
    } while (iVar1 != 0);
    if (((((((auStack_48[1] != '\0' || auStack_48[0] != '\0') || auStack_48[2] != '\0') ||
           auStack_48[3] != '\0') || auStack_48[4] != '\0') || auStack_48[5] != '\0') ||
        auStack_48[6] != '\0') || auStack_48[7] != '\0') goto LAB_0011fcf5;
    which = which + 1;
    key = key + 0x20;
    iVar1 = 0;
  } while (which != 0x14);
  if (lStack_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return iVar1;
}



/* WARNING: Switch with 1 destination removed at 0x00114de0 */

int des_test(void)

{
  int iVar1;
  undefined *puVar2;
  int iVar3;
  long in_FS_OFFSET;
  undefined1 auStack_10e8 [4256];
  undefined8 uStack_48;
  long lStack_40;
  
  iVar3 = 0;
  puVar2 = &DAT_00199648;
  lStack_40 = *(long *)(in_FS_OFFSET + 0x28);
  do {
    iVar1 = des_setup(puVar2,8,0,auStack_10e8);
    if (iVar1 != 0) break;
    if (*(int *)(puVar2 + -4) == 0) {
      des_ecb_decrypt(puVar2 + 8,&uStack_48,auStack_10e8);
    }
    else {
      des_ecb_encrypt();
    }
    iVar1 = compare_testvector(puVar2 + 0x10,8,&uStack_48,8,&DAT_00199633,iVar3);
    if (iVar1 != 0) {
LAB_0011fcf5:
      iVar1 = 5;
      break;
    }
    uStack_48 = 0;
    iVar1 = 1000;
    do {
      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);
      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);
      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);
      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);
      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);
      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);
      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);
      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);
      iVar1 = iVar1 + -8;
    } while (iVar1 != 0);
    iVar1 = 1000;
    do {
      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);
      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);
      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);
      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);
      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);
      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);
      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);
      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);
      iVar1 = iVar1 + -8;
    } while (iVar1 != 0);
    if (((((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||
           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0') ||
        uStack_48._6_1_ != '\0') || uStack_48._7_1_ != '\0') goto LAB_0011fcf5;
    iVar3 = iVar3 + 1;
    puVar2 = puVar2 + 0x20;
    iVar1 = 0;
  } while (iVar3 != 0x14);
  if (lStack_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return iVar1;
}


JMP qword ptr [0x001ddcd0]
(translation_unit "/* WARNING: Switch with 1 destination removed at 0x00114de0 */\n\nint des_test(void)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  int iVar3;\n  long in_FS_OFFSET;\n  undefined1 auStack_10e8 [4256];\n  undefined8 uStack_48;\n  long lStack_40;\n  \n  iVar3 = 0;\n  puVar2 = &DAT_00199648;\n  lStack_40 = *(long *)(in_FS_OFFSET + 0x28);\n  do {\n    iVar1 = des_setup(puVar2,8,0,auStack_10e8);\n    if (iVar1 != 0) break;\n    if (*(int *)(puVar2 + -4) == 0) {\n      des_ecb_decrypt(puVar2 + 8,&uStack_48,auStack_10e8);\n    }\n    else {\n      des_ecb_encrypt();\n    }\n    iVar1 = compare_testvector(puVar2 + 0x10,8,&uStack_48,8,&DAT_00199633,iVar3);\n    if (iVar1 != 0) {\nLAB_0011fcf5:\n      iVar1 = 5;\n      break;\n    }\n    uStack_48 = 0;\n    iVar1 = 1000;\n    do {\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    iVar1 = 1000;\n    do {\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    if (((((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0') ||\n        uStack_48._6_1_ != '\0') || uStack_48._7_1_ != '\0') goto LAB_0011fcf5;\n    iVar3 = iVar3 + 1;\n    puVar2 = puVar2 + 0x20;\n    iVar1 = 0;\n  } while (iVar3 != 0x14);\n  if (lStack_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar1;\n}\n\n" comment (function_definition "int des_test(void)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  int iVar3;\n  long in_FS_OFFSET;\n  undefined1 auStack_10e8 [4256];\n  undefined8 uStack_48;\n  long lStack_40;\n  \n  iVar3 = 0;\n  puVar2 = &DAT_00199648;\n  lStack_40 = *(long *)(in_FS_OFFSET + 0x28);\n  do {\n    iVar1 = des_setup(puVar2,8,0,auStack_10e8);\n    if (iVar1 != 0) break;\n    if (*(int *)(puVar2 + -4) == 0) {\n      des_ecb_decrypt(puVar2 + 8,&uStack_48,auStack_10e8);\n    }\n    else {\n      des_ecb_encrypt();\n    }\n    iVar1 = compare_testvector(puVar2 + 0x10,8,&uStack_48,8,&DAT_00199633,iVar3);\n    if (iVar1 != 0) {\nLAB_0011fcf5:\n      iVar1 = 5;\n      break;\n    }\n    uStack_48 = 0;\n    iVar1 = 1000;\n    do {\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    iVar1 = 1000;\n    do {\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    if (((((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0') ||\n        uStack_48._6_1_ != '\0') || uStack_48._7_1_ != '\0') goto LAB_0011fcf5;\n    iVar3 = iVar3 + 1;\n    puVar2 = puVar2 + 0x20;\n    iVar1 = 0;\n  } while (iVar3 != 0x14);\n  if (lStack_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar1;\n}" primitive_type (function_declarator "des_test(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int iVar1;\n  undefined *puVar2;\n  int iVar3;\n  long in_FS_OFFSET;\n  undefined1 auStack_10e8 [4256];\n  undefined8 uStack_48;\n  long lStack_40;\n  \n  iVar3 = 0;\n  puVar2 = &DAT_00199648;\n  lStack_40 = *(long *)(in_FS_OFFSET + 0x28);\n  do {\n    iVar1 = des_setup(puVar2,8,0,auStack_10e8);\n    if (iVar1 != 0) break;\n    if (*(int *)(puVar2 + -4) == 0) {\n      des_ecb_decrypt(puVar2 + 8,&uStack_48,auStack_10e8);\n    }\n    else {\n      des_ecb_encrypt();\n    }\n    iVar1 = compare_testvector(puVar2 + 0x10,8,&uStack_48,8,&DAT_00199633,iVar3);\n    if (iVar1 != 0) {\nLAB_0011fcf5:\n      iVar1 = 5;\n      break;\n    }\n    uStack_48 = 0;\n    iVar1 = 1000;\n    do {\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    iVar1 = 1000;\n    do {\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    if (((((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0') ||\n        uStack_48._6_1_ != '\0') || uStack_48._7_1_ != '\0') goto LAB_0011fcf5;\n    iVar3 = iVar3 + 1;\n    puVar2 = puVar2 + 0x20;\n    iVar1 = 0;\n  } while (iVar3 != 0x14);\n  if (lStack_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 auStack_10e8 [4256];" type_identifier (array_declarator "auStack_10e8 [4256]" identifier [ number_literal ]) ;) (declaration "undefined8 uStack_48;" type_identifier identifier ;) (declaration "long lStack_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "puVar2 = &DAT_00199648;" (assignment_expression "puVar2 = &DAT_00199648" identifier = (pointer_expression "&DAT_00199648" & identifier)) ;) (expression_statement "lStack_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lStack_40 = *(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) ))))) ;) (do_statement "do {\n    iVar1 = des_setup(puVar2,8,0,auStack_10e8);\n    if (iVar1 != 0) break;\n    if (*(int *)(puVar2 + -4) == 0) {\n      des_ecb_decrypt(puVar2 + 8,&uStack_48,auStack_10e8);\n    }\n    else {\n      des_ecb_encrypt();\n    }\n    iVar1 = compare_testvector(puVar2 + 0x10,8,&uStack_48,8,&DAT_00199633,iVar3);\n    if (iVar1 != 0) {\nLAB_0011fcf5:\n      iVar1 = 5;\n      break;\n    }\n    uStack_48 = 0;\n    iVar1 = 1000;\n    do {\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    iVar1 = 1000;\n    do {\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    if (((((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0') ||\n        uStack_48._6_1_ != '\0') || uStack_48._7_1_ != '\0') goto LAB_0011fcf5;\n    iVar3 = iVar3 + 1;\n    puVar2 = puVar2 + 0x20;\n    iVar1 = 0;\n  } while (iVar3 != 0x14);" do (compound_statement "{\n    iVar1 = des_setup(puVar2,8,0,auStack_10e8);\n    if (iVar1 != 0) break;\n    if (*(int *)(puVar2 + -4) == 0) {\n      des_ecb_decrypt(puVar2 + 8,&uStack_48,auStack_10e8);\n    }\n    else {\n      des_ecb_encrypt();\n    }\n    iVar1 = compare_testvector(puVar2 + 0x10,8,&uStack_48,8,&DAT_00199633,iVar3);\n    if (iVar1 != 0) {\nLAB_0011fcf5:\n      iVar1 = 5;\n      break;\n    }\n    uStack_48 = 0;\n    iVar1 = 1000;\n    do {\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    iVar1 = 1000;\n    do {\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    if (((((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0') ||\n        uStack_48._6_1_ != '\0') || uStack_48._7_1_ != '\0') goto LAB_0011fcf5;\n    iVar3 = iVar3 + 1;\n    puVar2 = puVar2 + 0x20;\n    iVar1 = 0;\n  }" { (expression_statement "iVar1 = des_setup(puVar2,8,0,auStack_10e8);" (assignment_expression "iVar1 = des_setup(puVar2,8,0,auStack_10e8)" identifier = (call_expression "des_setup(puVar2,8,0,auStack_10e8)" identifier (argument_list "(puVar2,8,0,auStack_10e8)" ( identifier , number_literal , number_literal , identifier )))) ;) (if_statement "if (iVar1 != 0) break;" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (if_statement "if (*(int *)(puVar2 + -4) == 0) {\n      des_ecb_decrypt(puVar2 + 8,&uStack_48,auStack_10e8);\n    }\n    else {\n      des_ecb_encrypt();\n    }" if (parenthesized_expression "(*(int *)(puVar2 + -4) == 0)" ( (binary_expression "*(int *)(puVar2 + -4) == 0" (pointer_expression "*(int *)(puVar2 + -4)" * (cast_expression "(int *)(puVar2 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -4)" ( (binary_expression "puVar2 + -4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      des_ecb_decrypt(puVar2 + 8,&uStack_48,auStack_10e8);\n    }" { (expression_statement "des_ecb_decrypt(puVar2 + 8,&uStack_48,auStack_10e8);" (call_expression "des_ecb_decrypt(puVar2 + 8,&uStack_48,auStack_10e8)" identifier (argument_list "(puVar2 + 8,&uStack_48,auStack_10e8)" ( (binary_expression "puVar2 + 8" identifier + number_literal) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) }) (else_clause "else {\n      des_ecb_encrypt();\n    }" else (compound_statement "{\n      des_ecb_encrypt();\n    }" { (expression_statement "des_ecb_encrypt();" (call_expression "des_ecb_encrypt()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "iVar1 = compare_testvector(puVar2 + 0x10,8,&uStack_48,8,&DAT_00199633,iVar3);" (assignment_expression "iVar1 = compare_testvector(puVar2 + 0x10,8,&uStack_48,8,&DAT_00199633,iVar3)" identifier = (call_expression "compare_testvector(puVar2 + 0x10,8,&uStack_48,8,&DAT_00199633,iVar3)" identifier (argument_list "(puVar2 + 0x10,8,&uStack_48,8,&DAT_00199633,iVar3)" ( (binary_expression "puVar2 + 0x10" identifier + number_literal) , number_literal , (pointer_expression "&uStack_48" & identifier) , number_literal , (pointer_expression "&DAT_00199633" & identifier) , identifier )))) ;) (if_statement "if (iVar1 != 0) {\nLAB_0011fcf5:\n      iVar1 = 5;\n      break;\n    }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0011fcf5:\n      iVar1 = 5;\n      break;\n    }" { (labeled_statement "LAB_0011fcf5:\n      iVar1 = 5;" statement_identifier : (expression_statement "iVar1 = 5;" (assignment_expression "iVar1 = 5" identifier = number_literal) ;)) (break_statement "break;" break ;) })) (expression_statement "uStack_48 = 0;" (assignment_expression "uStack_48 = 0" identifier = number_literal) ;) (expression_statement "iVar1 = 1000;" (assignment_expression "iVar1 = 1000" identifier = number_literal) ;) (do_statement "do {\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);" do (compound_statement "{\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    }" { (expression_statement "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8)" identifier (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" ( (pointer_expression "&uStack_48" & identifier) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) (expression_statement "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8)" identifier (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" ( (pointer_expression "&uStack_48" & identifier) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) (expression_statement "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8)" identifier (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" ( (pointer_expression "&uStack_48" & identifier) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) (expression_statement "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8)" identifier (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" ( (pointer_expression "&uStack_48" & identifier) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) (expression_statement "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8)" identifier (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" ( (pointer_expression "&uStack_48" & identifier) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) (expression_statement "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8)" identifier (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" ( (pointer_expression "&uStack_48" & identifier) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) (expression_statement "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8)" identifier (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" ( (pointer_expression "&uStack_48" & identifier) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) (expression_statement "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8)" identifier (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" ( (pointer_expression "&uStack_48" & identifier) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) (expression_statement "iVar1 = iVar1 + -8;" (assignment_expression "iVar1 = iVar1 + -8" identifier = (binary_expression "iVar1 + -8" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) ;) (expression_statement "iVar1 = 1000;" (assignment_expression "iVar1 = 1000" identifier = number_literal) ;) (do_statement "do {\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);" do (compound_statement "{\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    }" { (expression_statement "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8)" identifier (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" ( (pointer_expression "&uStack_48" & identifier) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) (expression_statement "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8)" identifier (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" ( (pointer_expression "&uStack_48" & identifier) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) (expression_statement "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8)" identifier (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" ( (pointer_expression "&uStack_48" & identifier) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) (expression_statement "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8)" identifier (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" ( (pointer_expression "&uStack_48" & identifier) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) (expression_statement "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8)" identifier (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" ( (pointer_expression "&uStack_48" & identifier) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) (expression_statement "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8)" identifier (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" ( (pointer_expression "&uStack_48" & identifier) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) (expression_statement "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8)" identifier (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" ( (pointer_expression "&uStack_48" & identifier) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) (expression_statement "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8)" identifier (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" ( (pointer_expression "&uStack_48" & identifier) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) (expression_statement "iVar1 = iVar1 + -8;" (assignment_expression "iVar1 = iVar1 + -8" identifier = (binary_expression "iVar1 + -8" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) ;) (if_statement "if (((((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0') ||\n        uStack_48._6_1_ != '\0') || uStack_48._7_1_ != '\0') goto LAB_0011fcf5;" if (parenthesized_expression "(((((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0') ||\n        uStack_48._6_1_ != '\0') || uStack_48._7_1_ != '\0')" ( (binary_expression "((((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0') ||\n        uStack_48._6_1_ != '\0') || uStack_48._7_1_ != '\0'" (parenthesized_expression "((((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0') ||\n        uStack_48._6_1_ != '\0')" ( (binary_expression "(((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0') ||\n        uStack_48._6_1_ != '\0'" (parenthesized_expression "(((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0')" ( (binary_expression "((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0'" (parenthesized_expression "((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0')" ( (binary_expression "(((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0'" (parenthesized_expression "(((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0')" ( (binary_expression "((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0'" (parenthesized_expression "((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0')" ( (binary_expression "(uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0'" (parenthesized_expression "(uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0')" ( (binary_expression "uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0'" (binary_expression "uStack_48._1_1_ != '\0'" (field_expression "uStack_48._1_1_" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence ')) || (binary_expression "(char)uStack_48 != '\0'" (cast_expression "(char)uStack_48" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence '))) )) || (binary_expression "uStack_48._2_1_ != '\0'" (field_expression "uStack_48._2_1_" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence '))) )) || (binary_expression "uStack_48._3_1_ != '\0'" (field_expression "uStack_48._3_1_" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence '))) )) || (binary_expression "uStack_48._4_1_ != '\0'" (field_expression "uStack_48._4_1_" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence '))) )) || (binary_expression "uStack_48._5_1_ != '\0'" (field_expression "uStack_48._5_1_" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence '))) )) || (binary_expression "uStack_48._6_1_ != '\0'" (field_expression "uStack_48._6_1_" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence '))) )) || (binary_expression "uStack_48._7_1_ != '\0'" (field_expression "uStack_48._7_1_" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence '))) )) (goto_statement "goto LAB_0011fcf5;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "puVar2 = puVar2 + 0x20;" (assignment_expression "puVar2 = puVar2 + 0x20" identifier = (binary_expression "puVar2 + 0x20" identifier + number_literal)) ;) (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) }) while (parenthesized_expression "(iVar3 != 0x14)" ( (binary_expression "iVar3 != 0x14" identifier != number_literal) )) ;) (if_statement "if (lStack_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(lStack_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lStack_40 != *(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                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return iVar1;" return identifier ;) })))
(translation_unit "/* WARNING: Switch with 1 destination removed at 0x00114de0 */\n/* WARNING: Unknown calling convention */\n\nint des_test(void)\n\n{\n  int iVar1;\n  uchar *key;\n  int which;\n  long in_FS_OFFSET;\n  symmetric_key sStack_10e8;\n  uchar auStack_48 [8];\n  long lStack_40;\n  \n  which = 0;\n  key = des_test::cases[0].key;\n  lStack_40 = *(long *)(in_FS_OFFSET + 0x28);\n  do {\n    iVar1 = des_setup(key,8,0,&sStack_10e8);\n    if (iVar1 != 0) break;\n    if (*(int *)(key + -4) == 0) {\n      des_ecb_decrypt(key + 8,auStack_48,&sStack_10e8);\n    }\n    else {\n      des_ecb_encrypt(key + 8,auStack_48,&sStack_10e8);\n    }\n    iVar1 = compare_testvector(key + 0x10,8,auStack_48,8,"DES",which);\n    if (iVar1 != 0) {\nLAB_0011fcf5:\n      iVar1 = 5;\n      break;\n    }\n    auStack_48[0] = '\0';\n    auStack_48[1] = '\0';\n    auStack_48[2] = '\0';\n    auStack_48[3] = '\0';\n    auStack_48[4] = '\0';\n    auStack_48[5] = '\0';\n    auStack_48[6] = '\0';\n    auStack_48[7] = '\0';\n    iVar1 = 1000;\n    do {\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    iVar1 = 1000;\n    do {\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    if (((((((auStack_48[1] != '\0' || auStack_48[0] != '\0') || auStack_48[2] != '\0') ||\n           auStack_48[3] != '\0') || auStack_48[4] != '\0') || auStack_48[5] != '\0') ||\n        auStack_48[6] != '\0') || auStack_48[7] != '\0') goto LAB_0011fcf5;\n    which = which + 1;\n    key = key + 0x20;\n    iVar1 = 0;\n  } while (which != 0x14);\n  if (lStack_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar1;\n}\n\n" comment comment (function_definition "int des_test(void)\n\n{\n  int iVar1;\n  uchar *key;\n  int which;\n  long in_FS_OFFSET;\n  symmetric_key sStack_10e8;\n  uchar auStack_48 [8];\n  long lStack_40;\n  \n  which = 0;\n  key = des_test::cases[0].key;\n  lStack_40 = *(long *)(in_FS_OFFSET + 0x28);\n  do {\n    iVar1 = des_setup(key,8,0,&sStack_10e8);\n    if (iVar1 != 0) break;\n    if (*(int *)(key + -4) == 0) {\n      des_ecb_decrypt(key + 8,auStack_48,&sStack_10e8);\n    }\n    else {\n      des_ecb_encrypt(key + 8,auStack_48,&sStack_10e8);\n    }\n    iVar1 = compare_testvector(key + 0x10,8,auStack_48,8,"DES",which);\n    if (iVar1 != 0) {\nLAB_0011fcf5:\n      iVar1 = 5;\n      break;\n    }\n    auStack_48[0] = '\0';\n    auStack_48[1] = '\0';\n    auStack_48[2] = '\0';\n    auStack_48[3] = '\0';\n    auStack_48[4] = '\0';\n    auStack_48[5] = '\0';\n    auStack_48[6] = '\0';\n    auStack_48[7] = '\0';\n    iVar1 = 1000;\n    do {\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    iVar1 = 1000;\n    do {\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    if (((((((auStack_48[1] != '\0' || auStack_48[0] != '\0') || auStack_48[2] != '\0') ||\n           auStack_48[3] != '\0') || auStack_48[4] != '\0') || auStack_48[5] != '\0') ||\n        auStack_48[6] != '\0') || auStack_48[7] != '\0') goto LAB_0011fcf5;\n    which = which + 1;\n    key = key + 0x20;\n    iVar1 = 0;\n  } while (which != 0x14);\n  if (lStack_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar1;\n}" primitive_type (function_declarator "des_test(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int iVar1;\n  uchar *key;\n  int which;\n  long in_FS_OFFSET;\n  symmetric_key sStack_10e8;\n  uchar auStack_48 [8];\n  long lStack_40;\n  \n  which = 0;\n  key = des_test::cases[0].key;\n  lStack_40 = *(long *)(in_FS_OFFSET + 0x28);\n  do {\n    iVar1 = des_setup(key,8,0,&sStack_10e8);\n    if (iVar1 != 0) break;\n    if (*(int *)(key + -4) == 0) {\n      des_ecb_decrypt(key + 8,auStack_48,&sStack_10e8);\n    }\n    else {\n      des_ecb_encrypt(key + 8,auStack_48,&sStack_10e8);\n    }\n    iVar1 = compare_testvector(key + 0x10,8,auStack_48,8,"DES",which);\n    if (iVar1 != 0) {\nLAB_0011fcf5:\n      iVar1 = 5;\n      break;\n    }\n    auStack_48[0] = '\0';\n    auStack_48[1] = '\0';\n    auStack_48[2] = '\0';\n    auStack_48[3] = '\0';\n    auStack_48[4] = '\0';\n    auStack_48[5] = '\0';\n    auStack_48[6] = '\0';\n    auStack_48[7] = '\0';\n    iVar1 = 1000;\n    do {\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    iVar1 = 1000;\n    do {\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    if (((((((auStack_48[1] != '\0' || auStack_48[0] != '\0') || auStack_48[2] != '\0') ||\n           auStack_48[3] != '\0') || auStack_48[4] != '\0') || auStack_48[5] != '\0') ||\n        auStack_48[6] != '\0') || auStack_48[7] != '\0') goto LAB_0011fcf5;\n    which = which + 1;\n    key = key + 0x20;\n    iVar1 = 0;\n  } while (which != 0x14);\n  if (lStack_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uchar *key;" type_identifier (pointer_declarator "*key" * identifier) ;) (declaration "int which;" primitive_type identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "symmetric_key sStack_10e8;" type_identifier identifier ;) (declaration "uchar auStack_48 [8];" type_identifier (array_declarator "auStack_48 [8]" identifier [ number_literal ]) ;) (declaration "long lStack_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "which = 0;" (assignment_expression "which = 0" identifier = number_literal) ;) (expression_statement "key = des_test::cases[0].key;" (field_expression "key = des_test::cases[0].key" (subscript_expression "key = des_test::cases[0]" (assignment_expression "key = des_test" identifier = identifier) (ERROR "::cases" : : identifier) [ number_literal ]) . field_identifier) ;) (expression_statement "lStack_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lStack_40 = *(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) ))))) ;) (do_statement "do {\n    iVar1 = des_setup(key,8,0,&sStack_10e8);\n    if (iVar1 != 0) break;\n    if (*(int *)(key + -4) == 0) {\n      des_ecb_decrypt(key + 8,auStack_48,&sStack_10e8);\n    }\n    else {\n      des_ecb_encrypt(key + 8,auStack_48,&sStack_10e8);\n    }\n    iVar1 = compare_testvector(key + 0x10,8,auStack_48,8,"DES",which);\n    if (iVar1 != 0) {\nLAB_0011fcf5:\n      iVar1 = 5;\n      break;\n    }\n    auStack_48[0] = '\0';\n    auStack_48[1] = '\0';\n    auStack_48[2] = '\0';\n    auStack_48[3] = '\0';\n    auStack_48[4] = '\0';\n    auStack_48[5] = '\0';\n    auStack_48[6] = '\0';\n    auStack_48[7] = '\0';\n    iVar1 = 1000;\n    do {\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    iVar1 = 1000;\n    do {\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    if (((((((auStack_48[1] != '\0' || auStack_48[0] != '\0') || auStack_48[2] != '\0') ||\n           auStack_48[3] != '\0') || auStack_48[4] != '\0') || auStack_48[5] != '\0') ||\n        auStack_48[6] != '\0') || auStack_48[7] != '\0') goto LAB_0011fcf5;\n    which = which + 1;\n    key = key + 0x20;\n    iVar1 = 0;\n  } while (which != 0x14);" do (compound_statement "{\n    iVar1 = des_setup(key,8,0,&sStack_10e8);\n    if (iVar1 != 0) break;\n    if (*(int *)(key + -4) == 0) {\n      des_ecb_decrypt(key + 8,auStack_48,&sStack_10e8);\n    }\n    else {\n      des_ecb_encrypt(key + 8,auStack_48,&sStack_10e8);\n    }\n    iVar1 = compare_testvector(key + 0x10,8,auStack_48,8,"DES",which);\n    if (iVar1 != 0) {\nLAB_0011fcf5:\n      iVar1 = 5;\n      break;\n    }\n    auStack_48[0] = '\0';\n    auStack_48[1] = '\0';\n    auStack_48[2] = '\0';\n    auStack_48[3] = '\0';\n    auStack_48[4] = '\0';\n    auStack_48[5] = '\0';\n    auStack_48[6] = '\0';\n    auStack_48[7] = '\0';\n    iVar1 = 1000;\n    do {\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    iVar1 = 1000;\n    do {\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    if (((((((auStack_48[1] != '\0' || auStack_48[0] != '\0') || auStack_48[2] != '\0') ||\n           auStack_48[3] != '\0') || auStack_48[4] != '\0') || auStack_48[5] != '\0') ||\n        auStack_48[6] != '\0') || auStack_48[7] != '\0') goto LAB_0011fcf5;\n    which = which + 1;\n    key = key + 0x20;\n    iVar1 = 0;\n  }" { (expression_statement "iVar1 = des_setup(key,8,0,&sStack_10e8);" (assignment_expression "iVar1 = des_setup(key,8,0,&sStack_10e8)" identifier = (call_expression "des_setup(key,8,0,&sStack_10e8)" identifier (argument_list "(key,8,0,&sStack_10e8)" ( identifier , number_literal , number_literal , (pointer_expression "&sStack_10e8" & identifier) )))) ;) (if_statement "if (iVar1 != 0) break;" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (if_statement "if (*(int *)(key + -4) == 0) {\n      des_ecb_decrypt(key + 8,auStack_48,&sStack_10e8);\n    }\n    else {\n      des_ecb_encrypt(key + 8,auStack_48,&sStack_10e8);\n    }" if (parenthesized_expression "(*(int *)(key + -4) == 0)" ( (binary_expression "*(int *)(key + -4) == 0" (pointer_expression "*(int *)(key + -4)" * (cast_expression "(int *)(key + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(key + -4)" ( (binary_expression "key + -4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      des_ecb_decrypt(key + 8,auStack_48,&sStack_10e8);\n    }" { (expression_statement "des_ecb_decrypt(key + 8,auStack_48,&sStack_10e8);" (call_expression "des_ecb_decrypt(key + 8,auStack_48,&sStack_10e8)" identifier (argument_list "(key + 8,auStack_48,&sStack_10e8)" ( (binary_expression "key + 8" identifier + number_literal) , identifier , (pointer_expression "&sStack_10e8" & identifier) ))) ;) }) (else_clause "else {\n      des_ecb_encrypt(key + 8,auStack_48,&sStack_10e8);\n    }" else (compound_statement "{\n      des_ecb_encrypt(key + 8,auStack_48,&sStack_10e8);\n    }" { (expression_statement "des_ecb_encrypt(key + 8,auStack_48,&sStack_10e8);" (call_expression "des_ecb_encrypt(key + 8,auStack_48,&sStack_10e8)" identifier (argument_list "(key + 8,auStack_48,&sStack_10e8)" ( (binary_expression "key + 8" identifier + number_literal) , identifier , (pointer_expression "&sStack_10e8" & identifier) ))) ;) }))) (expression_statement "iVar1 = compare_testvector(key + 0x10,8,auStack_48,8,"DES",which);" (assignment_expression "iVar1 = compare_testvector(key + 0x10,8,auStack_48,8,"DES",which)" identifier = (call_expression "compare_testvector(key + 0x10,8,auStack_48,8,"DES",which)" identifier (argument_list "(key + 0x10,8,auStack_48,8,"DES",which)" ( (binary_expression "key + 0x10" identifier + number_literal) , number_literal , identifier , number_literal , (string_literal ""DES"" " string_content ") , identifier )))) ;) (if_statement "if (iVar1 != 0) {\nLAB_0011fcf5:\n      iVar1 = 5;\n      break;\n    }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0011fcf5:\n      iVar1 = 5;\n      break;\n    }" { (labeled_statement "LAB_0011fcf5:\n      iVar1 = 5;" statement_identifier : (expression_statement "iVar1 = 5;" (assignment_expression "iVar1 = 5" identifier = number_literal) ;)) (break_statement "break;" break ;) })) (expression_statement "auStack_48[0] = '\0';" (assignment_expression "auStack_48[0] = '\0'" (subscript_expression "auStack_48[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "auStack_48[1] = '\0';" (assignment_expression "auStack_48[1] = '\0'" (subscript_expression "auStack_48[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "auStack_48[2] = '\0';" (assignment_expression "auStack_48[2] = '\0'" (subscript_expression "auStack_48[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "auStack_48[3] = '\0';" (assignment_expression "auStack_48[3] = '\0'" (subscript_expression "auStack_48[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "auStack_48[4] = '\0';" (assignment_expression "auStack_48[4] = '\0'" (subscript_expression "auStack_48[4]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "auStack_48[5] = '\0';" (assignment_expression "auStack_48[5] = '\0'" (subscript_expression "auStack_48[5]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "auStack_48[6] = '\0';" (assignment_expression "auStack_48[6] = '\0'" (subscript_expression "auStack_48[6]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "auStack_48[7] = '\0';" (assignment_expression "auStack_48[7] = '\0'" (subscript_expression "auStack_48[7]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar1 = 1000;" (assignment_expression "iVar1 = 1000" identifier = number_literal) ;) (do_statement "do {\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);" do (compound_statement "{\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);\n      iVar1 = iVar1 + -8;\n    }" { (expression_statement "des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);" (call_expression "des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8)" identifier (argument_list "(auStack_48,auStack_48,&sStack_10e8)" ( identifier , identifier , (pointer_expression "&sStack_10e8" & identifier) ))) ;) (expression_statement "des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);" (call_expression "des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8)" identifier (argument_list "(auStack_48,auStack_48,&sStack_10e8)" ( identifier , identifier , (pointer_expression "&sStack_10e8" & identifier) ))) ;) (expression_statement "des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);" (call_expression "des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8)" identifier (argument_list "(auStack_48,auStack_48,&sStack_10e8)" ( identifier , identifier , (pointer_expression "&sStack_10e8" & identifier) ))) ;) (expression_statement "des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);" (call_expression "des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8)" identifier (argument_list "(auStack_48,auStack_48,&sStack_10e8)" ( identifier , identifier , (pointer_expression "&sStack_10e8" & identifier) ))) ;) (expression_statement "des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);" (call_expression "des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8)" identifier (argument_list "(auStack_48,auStack_48,&sStack_10e8)" ( identifier , identifier , (pointer_expression "&sStack_10e8" & identifier) ))) ;) (expression_statement "des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);" (call_expression "des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8)" identifier (argument_list "(auStack_48,auStack_48,&sStack_10e8)" ( identifier , identifier , (pointer_expression "&sStack_10e8" & identifier) ))) ;) (expression_statement "des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);" (call_expression "des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8)" identifier (argument_list "(auStack_48,auStack_48,&sStack_10e8)" ( identifier , identifier , (pointer_expression "&sStack_10e8" & identifier) ))) ;) (expression_statement "des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8);" (call_expression "des_ecb_encrypt(auStack_48,auStack_48,&sStack_10e8)" identifier (argument_list "(auStack_48,auStack_48,&sStack_10e8)" ( identifier , identifier , (pointer_expression "&sStack_10e8" & identifier) ))) ;) (expression_statement "iVar1 = iVar1 + -8;" (assignment_expression "iVar1 = iVar1 + -8" identifier = (binary_expression "iVar1 + -8" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) ;) (expression_statement "iVar1 = 1000;" (assignment_expression "iVar1 = 1000" identifier = number_literal) ;) (do_statement "do {\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);" do (compound_statement "{\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);\n      iVar1 = iVar1 + -8;\n    }" { (expression_statement "des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);" (call_expression "des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8)" identifier (argument_list "(auStack_48,auStack_48,&sStack_10e8)" ( identifier , identifier , (pointer_expression "&sStack_10e8" & identifier) ))) ;) (expression_statement "des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);" (call_expression "des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8)" identifier (argument_list "(auStack_48,auStack_48,&sStack_10e8)" ( identifier , identifier , (pointer_expression "&sStack_10e8" & identifier) ))) ;) (expression_statement "des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);" (call_expression "des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8)" identifier (argument_list "(auStack_48,auStack_48,&sStack_10e8)" ( identifier , identifier , (pointer_expression "&sStack_10e8" & identifier) ))) ;) (expression_statement "des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);" (call_expression "des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8)" identifier (argument_list "(auStack_48,auStack_48,&sStack_10e8)" ( identifier , identifier , (pointer_expression "&sStack_10e8" & identifier) ))) ;) (expression_statement "des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);" (call_expression "des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8)" identifier (argument_list "(auStack_48,auStack_48,&sStack_10e8)" ( identifier , identifier , (pointer_expression "&sStack_10e8" & identifier) ))) ;) (expression_statement "des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);" (call_expression "des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8)" identifier (argument_list "(auStack_48,auStack_48,&sStack_10e8)" ( identifier , identifier , (pointer_expression "&sStack_10e8" & identifier) ))) ;) (expression_statement "des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);" (call_expression "des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8)" identifier (argument_list "(auStack_48,auStack_48,&sStack_10e8)" ( identifier , identifier , (pointer_expression "&sStack_10e8" & identifier) ))) ;) (expression_statement "des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8);" (call_expression "des_ecb_decrypt(auStack_48,auStack_48,&sStack_10e8)" identifier (argument_list "(auStack_48,auStack_48,&sStack_10e8)" ( identifier , identifier , (pointer_expression "&sStack_10e8" & identifier) ))) ;) (expression_statement "iVar1 = iVar1 + -8;" (assignment_expression "iVar1 = iVar1 + -8" identifier = (binary_expression "iVar1 + -8" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) ;) (if_statement "if (((((((auStack_48[1] != '\0' || auStack_48[0] != '\0') || auStack_48[2] != '\0') ||\n           auStack_48[3] != '\0') || auStack_48[4] != '\0') || auStack_48[5] != '\0') ||\n        auStack_48[6] != '\0') || auStack_48[7] != '\0') goto LAB_0011fcf5;" if (parenthesized_expression "(((((((auStack_48[1] != '\0' || auStack_48[0] != '\0') || auStack_48[2] != '\0') ||\n           auStack_48[3] != '\0') || auStack_48[4] != '\0') || auStack_48[5] != '\0') ||\n        auStack_48[6] != '\0') || auStack_48[7] != '\0')" ( (binary_expression "((((((auStack_48[1] != '\0' || auStack_48[0] != '\0') || auStack_48[2] != '\0') ||\n           auStack_48[3] != '\0') || auStack_48[4] != '\0') || auStack_48[5] != '\0') ||\n        auStack_48[6] != '\0') || auStack_48[7] != '\0'" (parenthesized_expression "((((((auStack_48[1] != '\0' || auStack_48[0] != '\0') || auStack_48[2] != '\0') ||\n           auStack_48[3] != '\0') || auStack_48[4] != '\0') || auStack_48[5] != '\0') ||\n        auStack_48[6] != '\0')" ( (binary_expression "(((((auStack_48[1] != '\0' || auStack_48[0] != '\0') || auStack_48[2] != '\0') ||\n           auStack_48[3] != '\0') || auStack_48[4] != '\0') || auStack_48[5] != '\0') ||\n        auStack_48[6] != '\0'" (parenthesized_expression "(((((auStack_48[1] != '\0' || auStack_48[0] != '\0') || auStack_48[2] != '\0') ||\n           auStack_48[3] != '\0') || auStack_48[4] != '\0') || auStack_48[5] != '\0')" ( (binary_expression "((((auStack_48[1] != '\0' || auStack_48[0] != '\0') || auStack_48[2] != '\0') ||\n           auStack_48[3] != '\0') || auStack_48[4] != '\0') || auStack_48[5] != '\0'" (parenthesized_expression "((((auStack_48[1] != '\0' || auStack_48[0] != '\0') || auStack_48[2] != '\0') ||\n           auStack_48[3] != '\0') || auStack_48[4] != '\0')" ( (binary_expression "(((auStack_48[1] != '\0' || auStack_48[0] != '\0') || auStack_48[2] != '\0') ||\n           auStack_48[3] != '\0') || auStack_48[4] != '\0'" (parenthesized_expression "(((auStack_48[1] != '\0' || auStack_48[0] != '\0') || auStack_48[2] != '\0') ||\n           auStack_48[3] != '\0')" ( (binary_expression "((auStack_48[1] != '\0' || auStack_48[0] != '\0') || auStack_48[2] != '\0') ||\n           auStack_48[3] != '\0'" (parenthesized_expression "((auStack_48[1] != '\0' || auStack_48[0] != '\0') || auStack_48[2] != '\0')" ( (binary_expression "(auStack_48[1] != '\0' || auStack_48[0] != '\0') || auStack_48[2] != '\0'" (parenthesized_expression "(auStack_48[1] != '\0' || auStack_48[0] != '\0')" ( (binary_expression "auStack_48[1] != '\0' || auStack_48[0] != '\0'" (binary_expression "auStack_48[1] != '\0'" (subscript_expression "auStack_48[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) || (binary_expression "auStack_48[0] != '\0'" (subscript_expression "auStack_48[0]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence '))) )) || (binary_expression "auStack_48[2] != '\0'" (subscript_expression "auStack_48[2]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence '))) )) || (binary_expression "auStack_48[3] != '\0'" (subscript_expression "auStack_48[3]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence '))) )) || (binary_expression "auStack_48[4] != '\0'" (subscript_expression "auStack_48[4]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence '))) )) || (binary_expression "auStack_48[5] != '\0'" (subscript_expression "auStack_48[5]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence '))) )) || (binary_expression "auStack_48[6] != '\0'" (subscript_expression "auStack_48[6]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence '))) )) || (binary_expression "auStack_48[7] != '\0'" (subscript_expression "auStack_48[7]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence '))) )) (goto_statement "goto LAB_0011fcf5;" goto statement_identifier ;)) (expression_statement "which = which + 1;" (assignment_expression "which = which + 1" identifier = (binary_expression "which + 1" identifier + number_literal)) ;) (expression_statement "key = key + 0x20;" (assignment_expression "key = key + 0x20" identifier = (binary_expression "key + 0x20" identifier + number_literal)) ;) (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) }) while (parenthesized_expression "(which != 0x14)" ( (binary_expression "which != 0x14" identifier != number_literal) )) ;) (if_statement "if (lStack_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(lStack_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lStack_40 != *(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                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return iVar1;" return identifier ;) })))
(translation_unit "int des_test(void)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  int iVar3;\n  long in_FS_OFFSET;\n  undefined1 auStack_10e8 [4256];\n  undefined8 uStack_48;\n  long lStack_40;\n  \n  iVar3 = 0;\n  puVar2 = &DAT_00199648;\n  lStack_40 = *(long *)(in_FS_OFFSET + 0x28);\n  do {\n    iVar1 = des_setup(puVar2,8,0,auStack_10e8);\n    if (iVar1 != 0) break;\n    if (*(int *)(puVar2 + -4) == 0) {\n      des_ecb_decrypt(puVar2 + 8,&uStack_48,auStack_10e8);\n    }\n    else {\n      des_ecb_encrypt();\n    }\n    iVar1 = compare_testvector(puVar2 + 0x10,8,&uStack_48,8,&DAT_00199633,iVar3);\n    if (iVar1 != 0) {\nLAB_0011fcf5:\n      iVar1 = 5;\n      break;\n    }\n    uStack_48 = 0;\n    iVar1 = 1000;\n    do {\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    iVar1 = 1000;\n    do {\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    if (((((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0') ||\n        uStack_48._6_1_ != '\0') || uStack_48._7_1_ != '\0') goto LAB_0011fcf5;\n    iVar3 = iVar3 + 1;\n    puVar2 = puVar2 + 0x20;\n    iVar1 = 0;\n  } while (iVar3 != 0x14);\n  if (lStack_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar1;\n}\n\n" (function_definition "int des_test(void)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  int iVar3;\n  long in_FS_OFFSET;\n  undefined1 auStack_10e8 [4256];\n  undefined8 uStack_48;\n  long lStack_40;\n  \n  iVar3 = 0;\n  puVar2 = &DAT_00199648;\n  lStack_40 = *(long *)(in_FS_OFFSET + 0x28);\n  do {\n    iVar1 = des_setup(puVar2,8,0,auStack_10e8);\n    if (iVar1 != 0) break;\n    if (*(int *)(puVar2 + -4) == 0) {\n      des_ecb_decrypt(puVar2 + 8,&uStack_48,auStack_10e8);\n    }\n    else {\n      des_ecb_encrypt();\n    }\n    iVar1 = compare_testvector(puVar2 + 0x10,8,&uStack_48,8,&DAT_00199633,iVar3);\n    if (iVar1 != 0) {\nLAB_0011fcf5:\n      iVar1 = 5;\n      break;\n    }\n    uStack_48 = 0;\n    iVar1 = 1000;\n    do {\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    iVar1 = 1000;\n    do {\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    if (((((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0') ||\n        uStack_48._6_1_ != '\0') || uStack_48._7_1_ != '\0') goto LAB_0011fcf5;\n    iVar3 = iVar3 + 1;\n    puVar2 = puVar2 + 0x20;\n    iVar1 = 0;\n  } while (iVar3 != 0x14);\n  if (lStack_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar1;\n}" primitive_type (function_declarator "des_test(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int iVar1;\n  undefined *puVar2;\n  int iVar3;\n  long in_FS_OFFSET;\n  undefined1 auStack_10e8 [4256];\n  undefined8 uStack_48;\n  long lStack_40;\n  \n  iVar3 = 0;\n  puVar2 = &DAT_00199648;\n  lStack_40 = *(long *)(in_FS_OFFSET + 0x28);\n  do {\n    iVar1 = des_setup(puVar2,8,0,auStack_10e8);\n    if (iVar1 != 0) break;\n    if (*(int *)(puVar2 + -4) == 0) {\n      des_ecb_decrypt(puVar2 + 8,&uStack_48,auStack_10e8);\n    }\n    else {\n      des_ecb_encrypt();\n    }\n    iVar1 = compare_testvector(puVar2 + 0x10,8,&uStack_48,8,&DAT_00199633,iVar3);\n    if (iVar1 != 0) {\nLAB_0011fcf5:\n      iVar1 = 5;\n      break;\n    }\n    uStack_48 = 0;\n    iVar1 = 1000;\n    do {\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    iVar1 = 1000;\n    do {\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    if (((((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0') ||\n        uStack_48._6_1_ != '\0') || uStack_48._7_1_ != '\0') goto LAB_0011fcf5;\n    iVar3 = iVar3 + 1;\n    puVar2 = puVar2 + 0x20;\n    iVar1 = 0;\n  } while (iVar3 != 0x14);\n  if (lStack_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 auStack_10e8 [4256];" type_identifier (array_declarator "auStack_10e8 [4256]" identifier [ number_literal ]) ;) (declaration "undefined8 uStack_48;" type_identifier identifier ;) (declaration "long lStack_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "puVar2 = &DAT_00199648;" (assignment_expression "puVar2 = &DAT_00199648" identifier = (pointer_expression "&DAT_00199648" & identifier)) ;) (expression_statement "lStack_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lStack_40 = *(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) ))))) ;) (do_statement "do {\n    iVar1 = des_setup(puVar2,8,0,auStack_10e8);\n    if (iVar1 != 0) break;\n    if (*(int *)(puVar2 + -4) == 0) {\n      des_ecb_decrypt(puVar2 + 8,&uStack_48,auStack_10e8);\n    }\n    else {\n      des_ecb_encrypt();\n    }\n    iVar1 = compare_testvector(puVar2 + 0x10,8,&uStack_48,8,&DAT_00199633,iVar3);\n    if (iVar1 != 0) {\nLAB_0011fcf5:\n      iVar1 = 5;\n      break;\n    }\n    uStack_48 = 0;\n    iVar1 = 1000;\n    do {\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    iVar1 = 1000;\n    do {\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    if (((((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0') ||\n        uStack_48._6_1_ != '\0') || uStack_48._7_1_ != '\0') goto LAB_0011fcf5;\n    iVar3 = iVar3 + 1;\n    puVar2 = puVar2 + 0x20;\n    iVar1 = 0;\n  } while (iVar3 != 0x14);" do (compound_statement "{\n    iVar1 = des_setup(puVar2,8,0,auStack_10e8);\n    if (iVar1 != 0) break;\n    if (*(int *)(puVar2 + -4) == 0) {\n      des_ecb_decrypt(puVar2 + 8,&uStack_48,auStack_10e8);\n    }\n    else {\n      des_ecb_encrypt();\n    }\n    iVar1 = compare_testvector(puVar2 + 0x10,8,&uStack_48,8,&DAT_00199633,iVar3);\n    if (iVar1 != 0) {\nLAB_0011fcf5:\n      iVar1 = 5;\n      break;\n    }\n    uStack_48 = 0;\n    iVar1 = 1000;\n    do {\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    iVar1 = 1000;\n    do {\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    if (((((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0') ||\n        uStack_48._6_1_ != '\0') || uStack_48._7_1_ != '\0') goto LAB_0011fcf5;\n    iVar3 = iVar3 + 1;\n    puVar2 = puVar2 + 0x20;\n    iVar1 = 0;\n  }" { (expression_statement "iVar1 = des_setup(puVar2,8,0,auStack_10e8);" (assignment_expression "iVar1 = des_setup(puVar2,8,0,auStack_10e8)" identifier = (call_expression "des_setup(puVar2,8,0,auStack_10e8)" identifier (argument_list "(puVar2,8,0,auStack_10e8)" ( identifier , number_literal , number_literal , identifier )))) ;) (if_statement "if (iVar1 != 0) break;" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (if_statement "if (*(int *)(puVar2 + -4) == 0) {\n      des_ecb_decrypt(puVar2 + 8,&uStack_48,auStack_10e8);\n    }\n    else {\n      des_ecb_encrypt();\n    }" if (parenthesized_expression "(*(int *)(puVar2 + -4) == 0)" ( (binary_expression "*(int *)(puVar2 + -4) == 0" (pointer_expression "*(int *)(puVar2 + -4)" * (cast_expression "(int *)(puVar2 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -4)" ( (binary_expression "puVar2 + -4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      des_ecb_decrypt(puVar2 + 8,&uStack_48,auStack_10e8);\n    }" { (expression_statement "des_ecb_decrypt(puVar2 + 8,&uStack_48,auStack_10e8);" (call_expression "des_ecb_decrypt(puVar2 + 8,&uStack_48,auStack_10e8)" identifier (argument_list "(puVar2 + 8,&uStack_48,auStack_10e8)" ( (binary_expression "puVar2 + 8" identifier + number_literal) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) }) (else_clause "else {\n      des_ecb_encrypt();\n    }" else (compound_statement "{\n      des_ecb_encrypt();\n    }" { (expression_statement "des_ecb_encrypt();" (call_expression "des_ecb_encrypt()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "iVar1 = compare_testvector(puVar2 + 0x10,8,&uStack_48,8,&DAT_00199633,iVar3);" (assignment_expression "iVar1 = compare_testvector(puVar2 + 0x10,8,&uStack_48,8,&DAT_00199633,iVar3)" identifier = (call_expression "compare_testvector(puVar2 + 0x10,8,&uStack_48,8,&DAT_00199633,iVar3)" identifier (argument_list "(puVar2 + 0x10,8,&uStack_48,8,&DAT_00199633,iVar3)" ( (binary_expression "puVar2 + 0x10" identifier + number_literal) , number_literal , (pointer_expression "&uStack_48" & identifier) , number_literal , (pointer_expression "&DAT_00199633" & identifier) , identifier )))) ;) (if_statement "if (iVar1 != 0) {\nLAB_0011fcf5:\n      iVar1 = 5;\n      break;\n    }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0011fcf5:\n      iVar1 = 5;\n      break;\n    }" { (labeled_statement "LAB_0011fcf5:\n      iVar1 = 5;" statement_identifier : (expression_statement "iVar1 = 5;" (assignment_expression "iVar1 = 5" identifier = number_literal) ;)) (break_statement "break;" break ;) })) (expression_statement "uStack_48 = 0;" (assignment_expression "uStack_48 = 0" identifier = number_literal) ;) (expression_statement "iVar1 = 1000;" (assignment_expression "iVar1 = 1000" identifier = number_literal) ;) (do_statement "do {\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);" do (compound_statement "{\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    }" { (expression_statement "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8)" identifier (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" ( (pointer_expression "&uStack_48" & identifier) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) (expression_statement "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8)" identifier (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" ( (pointer_expression "&uStack_48" & identifier) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) (expression_statement "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8)" identifier (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" ( (pointer_expression "&uStack_48" & identifier) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) (expression_statement "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8)" identifier (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" ( (pointer_expression "&uStack_48" & identifier) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) (expression_statement "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8)" identifier (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" ( (pointer_expression "&uStack_48" & identifier) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) (expression_statement "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8)" identifier (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" ( (pointer_expression "&uStack_48" & identifier) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) (expression_statement "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8)" identifier (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" ( (pointer_expression "&uStack_48" & identifier) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) (expression_statement "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8)" identifier (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" ( (pointer_expression "&uStack_48" & identifier) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) (expression_statement "iVar1 = iVar1 + -8;" (assignment_expression "iVar1 = iVar1 + -8" identifier = (binary_expression "iVar1 + -8" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) ;) (expression_statement "iVar1 = 1000;" (assignment_expression "iVar1 = 1000" identifier = number_literal) ;) (do_statement "do {\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);" do (compound_statement "{\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    }" { (expression_statement "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8)" identifier (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" ( (pointer_expression "&uStack_48" & identifier) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) (expression_statement "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8)" identifier (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" ( (pointer_expression "&uStack_48" & identifier) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) (expression_statement "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8)" identifier (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" ( (pointer_expression "&uStack_48" & identifier) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) (expression_statement "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8)" identifier (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" ( (pointer_expression "&uStack_48" & identifier) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) (expression_statement "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8)" identifier (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" ( (pointer_expression "&uStack_48" & identifier) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) (expression_statement "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8)" identifier (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" ( (pointer_expression "&uStack_48" & identifier) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) (expression_statement "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8)" identifier (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" ( (pointer_expression "&uStack_48" & identifier) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) (expression_statement "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8)" identifier (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" ( (pointer_expression "&uStack_48" & identifier) , (pointer_expression "&uStack_48" & identifier) , identifier ))) ;) (expression_statement "iVar1 = iVar1 + -8;" (assignment_expression "iVar1 = iVar1 + -8" identifier = (binary_expression "iVar1 + -8" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) ;) (if_statement "if (((((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0') ||\n        uStack_48._6_1_ != '\0') || uStack_48._7_1_ != '\0') goto LAB_0011fcf5;" if (parenthesized_expression "(((((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0') ||\n        uStack_48._6_1_ != '\0') || uStack_48._7_1_ != '\0')" ( (binary_expression "((((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0') ||\n        uStack_48._6_1_ != '\0') || uStack_48._7_1_ != '\0'" (parenthesized_expression "((((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0') ||\n        uStack_48._6_1_ != '\0')" ( (binary_expression "(((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0') ||\n        uStack_48._6_1_ != '\0'" (parenthesized_expression "(((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0')" ( (binary_expression "((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0'" (parenthesized_expression "((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0')" ( (binary_expression "(((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0'" (parenthesized_expression "(((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0')" ( (binary_expression "((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0'" (parenthesized_expression "((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0')" ( (binary_expression "(uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0'" (parenthesized_expression "(uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0')" ( (binary_expression "uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0'" (binary_expression "uStack_48._1_1_ != '\0'" (field_expression "uStack_48._1_1_" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence ')) || (binary_expression "(char)uStack_48 != '\0'" (cast_expression "(char)uStack_48" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence '))) )) || (binary_expression "uStack_48._2_1_ != '\0'" (field_expression "uStack_48._2_1_" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence '))) )) || (binary_expression "uStack_48._3_1_ != '\0'" (field_expression "uStack_48._3_1_" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence '))) )) || (binary_expression "uStack_48._4_1_ != '\0'" (field_expression "uStack_48._4_1_" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence '))) )) || (binary_expression "uStack_48._5_1_ != '\0'" (field_expression "uStack_48._5_1_" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence '))) )) || (binary_expression "uStack_48._6_1_ != '\0'" (field_expression "uStack_48._6_1_" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence '))) )) || (binary_expression "uStack_48._7_1_ != '\0'" (field_expression "uStack_48._7_1_" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence '))) )) (goto_statement "goto LAB_0011fcf5;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "puVar2 = puVar2 + 0x20;" (assignment_expression "puVar2 = puVar2 + 0x20" identifier = (binary_expression "puVar2 + 0x20" identifier + number_literal)) ;) (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) }) while (parenthesized_expression "(iVar3 != 0x14)" ( (binary_expression "iVar3 != 0x14" identifier != number_literal) )) ;) (if_statement "if (lStack_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" if (parenthesized_expression "(lStack_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lStack_40 != *(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                    \n    __stack_chk_fail();\n  }" { (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return iVar1;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & 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) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (pointer_expression & IDENT) , LIT , (pointer_expression & IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT . field_identifier) != (char_literal ' escape_sequence ')) || (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence '))) )) || (binary_expression (field_expression IDENT . field_identifier) != (char_literal ' escape_sequence '))) )) || (binary_expression (field_expression IDENT . field_identifier) != (char_literal ' escape_sequence '))) )) || (binary_expression (field_expression IDENT . field_identifier) != (char_literal ' escape_sequence '))) )) || (binary_expression (field_expression IDENT . field_identifier) != (char_literal ' escape_sequence '))) )) || (binary_expression (field_expression IDENT . field_identifier) != (char_literal ' escape_sequence '))) )) || (binary_expression (field_expression IDENT . field_identifier) != (char_literal ' escape_sequence '))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (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 { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return IDENT ;) })))
(function_definition "int des_test(void)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  int iVar3;\n  long in_FS_OFFSET;\n  undefined1 auStack_10e8 [4256];\n  undefined8 uStack_48;\n  long lStack_40;\n  \n  iVar3 = 0;\n  puVar2 = &DAT_00199648;\n  lStack_40 = *(long *)(in_FS_OFFSET + 0x28);\n  do {\n    iVar1 = des_setup(puVar2,8,0,auStack_10e8);\n    if (iVar1 != 0) break;\n    if (*(int *)(puVar2 + -4) == 0) {\n      des_ecb_decrypt(puVar2 + 8,&uStack_48,auStack_10e8);\n    }\n    else {\n      des_ecb_encrypt();\n    }\n    iVar1 = compare_testvector(puVar2 + 0x10,8,&uStack_48,8,&DAT_00199633,iVar3);\n    if (iVar1 != 0) {\nLAB_0011fcf5:\n      iVar1 = 5;\n      break;\n    }\n    uStack_48 = 0;\n    iVar1 = 1000;\n    do {\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    iVar1 = 1000;\n    do {\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    if (((((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0') ||\n        uStack_48._6_1_ != '\0') || uStack_48._7_1_ != '\0') goto LAB_0011fcf5;\n    iVar3 = iVar3 + 1;\n    puVar2 = puVar2 + 0x20;\n    iVar1 = 0;\n  } while (iVar3 != 0x14);\n  if (lStack_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar1;\n}" (primitive_type "int") (function_declarator "des_test(void)" (identifier "des_test") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined *puVar2;\n  int iVar3;\n  long in_FS_OFFSET;\n  undefined1 auStack_10e8 [4256];\n  undefined8 uStack_48;\n  long lStack_40;\n  \n  iVar3 = 0;\n  puVar2 = &DAT_00199648;\n  lStack_40 = *(long *)(in_FS_OFFSET + 0x28);\n  do {\n    iVar1 = des_setup(puVar2,8,0,auStack_10e8);\n    if (iVar1 != 0) break;\n    if (*(int *)(puVar2 + -4) == 0) {\n      des_ecb_decrypt(puVar2 + 8,&uStack_48,auStack_10e8);\n    }\n    else {\n      des_ecb_encrypt();\n    }\n    iVar1 = compare_testvector(puVar2 + 0x10,8,&uStack_48,8,&DAT_00199633,iVar3);\n    if (iVar1 != 0) {\nLAB_0011fcf5:\n      iVar1 = 5;\n      break;\n    }\n    uStack_48 = 0;\n    iVar1 = 1000;\n    do {\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    iVar1 = 1000;\n    do {\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    if (((((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0') ||\n        uStack_48._6_1_ != '\0') || uStack_48._7_1_ != '\0') goto LAB_0011fcf5;\n    iVar3 = iVar3 + 1;\n    puVar2 = puVar2 + 0x20;\n    iVar1 = 0;\n  } while (iVar3 != 0x14);\n  if (lStack_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar1;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "undefined1 auStack_10e8 [4256];" (type_identifier "undefined1") (array_declarator "auStack_10e8 [4256]" (identifier "auStack_10e8") ([ "[") (number_literal "4256") (] "]")) (; ";")) (declaration "undefined8 uStack_48;" (type_identifier "undefined8") (identifier "uStack_48") (; ";")) (declaration "long lStack_40;" (sized_type_specifier "long" (long "long")) (identifier "lStack_40") (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2 = &DAT_00199648;" (assignment_expression "puVar2 = &DAT_00199648" (identifier "puVar2") (= "=") (pointer_expression "&DAT_00199648" (& "&") (identifier "DAT_00199648"))) (; ";")) (expression_statement "lStack_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lStack_40 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "lStack_40") (= "=") (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")) () ")"))))) (; ";")) (do_statement "do {\n    iVar1 = des_setup(puVar2,8,0,auStack_10e8);\n    if (iVar1 != 0) break;\n    if (*(int *)(puVar2 + -4) == 0) {\n      des_ecb_decrypt(puVar2 + 8,&uStack_48,auStack_10e8);\n    }\n    else {\n      des_ecb_encrypt();\n    }\n    iVar1 = compare_testvector(puVar2 + 0x10,8,&uStack_48,8,&DAT_00199633,iVar3);\n    if (iVar1 != 0) {\nLAB_0011fcf5:\n      iVar1 = 5;\n      break;\n    }\n    uStack_48 = 0;\n    iVar1 = 1000;\n    do {\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    iVar1 = 1000;\n    do {\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    if (((((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0') ||\n        uStack_48._6_1_ != '\0') || uStack_48._7_1_ != '\0') goto LAB_0011fcf5;\n    iVar3 = iVar3 + 1;\n    puVar2 = puVar2 + 0x20;\n    iVar1 = 0;\n  } while (iVar3 != 0x14);" (do "do") (compound_statement "{\n    iVar1 = des_setup(puVar2,8,0,auStack_10e8);\n    if (iVar1 != 0) break;\n    if (*(int *)(puVar2 + -4) == 0) {\n      des_ecb_decrypt(puVar2 + 8,&uStack_48,auStack_10e8);\n    }\n    else {\n      des_ecb_encrypt();\n    }\n    iVar1 = compare_testvector(puVar2 + 0x10,8,&uStack_48,8,&DAT_00199633,iVar3);\n    if (iVar1 != 0) {\nLAB_0011fcf5:\n      iVar1 = 5;\n      break;\n    }\n    uStack_48 = 0;\n    iVar1 = 1000;\n    do {\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    iVar1 = 1000;\n    do {\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);\n    if (((((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0') ||\n        uStack_48._6_1_ != '\0') || uStack_48._7_1_ != '\0') goto LAB_0011fcf5;\n    iVar3 = iVar3 + 1;\n    puVar2 = puVar2 + 0x20;\n    iVar1 = 0;\n  }" ({ "{") (expression_statement "iVar1 = des_setup(puVar2,8,0,auStack_10e8);" (assignment_expression "iVar1 = des_setup(puVar2,8,0,auStack_10e8)" (identifier "iVar1") (= "=") (call_expression "des_setup(puVar2,8,0,auStack_10e8)" (identifier "des_setup") (argument_list "(puVar2,8,0,auStack_10e8)" (( "(") (identifier "puVar2") (, ",") (number_literal "8") (, ",") (number_literal "0") (, ",") (identifier "auStack_10e8") () ")")))) (; ";")) (if_statement "if (iVar1 != 0) break;" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (*(int *)(puVar2 + -4) == 0) {\n      des_ecb_decrypt(puVar2 + 8,&uStack_48,auStack_10e8);\n    }\n    else {\n      des_ecb_encrypt();\n    }" (if "if") (parenthesized_expression "(*(int *)(puVar2 + -4) == 0)" (( "(") (binary_expression "*(int *)(puVar2 + -4) == 0" (pointer_expression "*(int *)(puVar2 + -4)" (* "*") (cast_expression "(int *)(puVar2 + -4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -4)" (( "(") (binary_expression "puVar2 + -4" (identifier "puVar2") (+ "+") (number_literal "-4")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      des_ecb_decrypt(puVar2 + 8,&uStack_48,auStack_10e8);\n    }" ({ "{") (expression_statement "des_ecb_decrypt(puVar2 + 8,&uStack_48,auStack_10e8);" (call_expression "des_ecb_decrypt(puVar2 + 8,&uStack_48,auStack_10e8)" (identifier "des_ecb_decrypt") (argument_list "(puVar2 + 8,&uStack_48,auStack_10e8)" (( "(") (binary_expression "puVar2 + 8" (identifier "puVar2") (+ "+") (number_literal "8")) (, ",") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (identifier "auStack_10e8") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      des_ecb_encrypt();\n    }" (else "else") (compound_statement "{\n      des_ecb_encrypt();\n    }" ({ "{") (expression_statement "des_ecb_encrypt();" (call_expression "des_ecb_encrypt()" (identifier "des_ecb_encrypt") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "iVar1 = compare_testvector(puVar2 + 0x10,8,&uStack_48,8,&DAT_00199633,iVar3);" (assignment_expression "iVar1 = compare_testvector(puVar2 + 0x10,8,&uStack_48,8,&DAT_00199633,iVar3)" (identifier "iVar1") (= "=") (call_expression "compare_testvector(puVar2 + 0x10,8,&uStack_48,8,&DAT_00199633,iVar3)" (identifier "compare_testvector") (argument_list "(puVar2 + 0x10,8,&uStack_48,8,&DAT_00199633,iVar3)" (( "(") (binary_expression "puVar2 + 0x10" (identifier "puVar2") (+ "+") (number_literal "0x10")) (, ",") (number_literal "8") (, ",") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (number_literal "8") (, ",") (pointer_expression "&DAT_00199633" (& "&") (identifier "DAT_00199633")) (, ",") (identifier "iVar3") () ")")))) (; ";")) (if_statement "if (iVar1 != 0) {\nLAB_0011fcf5:\n      iVar1 = 5;\n      break;\n    }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0011fcf5:\n      iVar1 = 5;\n      break;\n    }" ({ "{") (labeled_statement "LAB_0011fcf5:\n      iVar1 = 5;" (statement_identifier "LAB_0011fcf5") (: ":") (expression_statement "iVar1 = 5;" (assignment_expression "iVar1 = 5" (identifier "iVar1") (= "=") (number_literal "5")) (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "uStack_48 = 0;" (assignment_expression "uStack_48 = 0" (identifier "uStack_48") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar1 = 1000;" (assignment_expression "iVar1 = 1000" (identifier "iVar1") (= "=") (number_literal "1000")) (; ";")) (do_statement "do {\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);" (do "do") (compound_statement "{\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    }" ({ "{") (expression_statement "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8)" (identifier "des_ecb_encrypt") (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" (( "(") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (identifier "auStack_10e8") () ")"))) (; ";")) (expression_statement "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8)" (identifier "des_ecb_encrypt") (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" (( "(") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (identifier "auStack_10e8") () ")"))) (; ";")) (expression_statement "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8)" (identifier "des_ecb_encrypt") (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" (( "(") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (identifier "auStack_10e8") () ")"))) (; ";")) (expression_statement "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8)" (identifier "des_ecb_encrypt") (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" (( "(") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (identifier "auStack_10e8") () ")"))) (; ";")) (expression_statement "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8)" (identifier "des_ecb_encrypt") (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" (( "(") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (identifier "auStack_10e8") () ")"))) (; ";")) (expression_statement "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8)" (identifier "des_ecb_encrypt") (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" (( "(") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (identifier "auStack_10e8") () ")"))) (; ";")) (expression_statement "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8)" (identifier "des_ecb_encrypt") (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" (( "(") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (identifier "auStack_10e8") () ")"))) (; ";")) (expression_statement "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8)" (identifier "des_ecb_encrypt") (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" (( "(") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (identifier "auStack_10e8") () ")"))) (; ";")) (expression_statement "iVar1 = iVar1 + -8;" (assignment_expression "iVar1 = iVar1 + -8" (identifier "iVar1") (= "=") (binary_expression "iVar1 + -8" (identifier "iVar1") (+ "+") (number_literal "-8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "iVar1 = 1000;" (assignment_expression "iVar1 = 1000" (identifier "iVar1") (= "=") (number_literal "1000")) (; ";")) (do_statement "do {\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    } while (iVar1 != 0);" (do "do") (compound_statement "{\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);\n      iVar1 = iVar1 + -8;\n    }" ({ "{") (expression_statement "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8)" (identifier "des_ecb_decrypt") (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" (( "(") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (identifier "auStack_10e8") () ")"))) (; ";")) (expression_statement "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8)" (identifier "des_ecb_decrypt") (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" (( "(") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (identifier "auStack_10e8") () ")"))) (; ";")) (expression_statement "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8)" (identifier "des_ecb_decrypt") (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" (( "(") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (identifier "auStack_10e8") () ")"))) (; ";")) (expression_statement "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8)" (identifier "des_ecb_decrypt") (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" (( "(") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (identifier "auStack_10e8") () ")"))) (; ";")) (expression_statement "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8)" (identifier "des_ecb_decrypt") (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" (( "(") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (identifier "auStack_10e8") () ")"))) (; ";")) (expression_statement "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8)" (identifier "des_ecb_decrypt") (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" (( "(") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (identifier "auStack_10e8") () ")"))) (; ";")) (expression_statement "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8)" (identifier "des_ecb_decrypt") (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" (( "(") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (identifier "auStack_10e8") () ")"))) (; ";")) (expression_statement "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);" (call_expression "des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8)" (identifier "des_ecb_decrypt") (argument_list "(&uStack_48,&uStack_48,auStack_10e8)" (( "(") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (pointer_expression "&uStack_48" (& "&") (identifier "uStack_48")) (, ",") (identifier "auStack_10e8") () ")"))) (; ";")) (expression_statement "iVar1 = iVar1 + -8;" (assignment_expression "iVar1 = iVar1 + -8" (identifier "iVar1") (= "=") (binary_expression "iVar1 + -8" (identifier "iVar1") (+ "+") (number_literal "-8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (; ";")) (if_statement "if (((((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0') ||\n        uStack_48._6_1_ != '\0') || uStack_48._7_1_ != '\0') goto LAB_0011fcf5;" (if "if") (parenthesized_expression "(((((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0') ||\n        uStack_48._6_1_ != '\0') || uStack_48._7_1_ != '\0')" (( "(") (binary_expression "((((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0') ||\n        uStack_48._6_1_ != '\0') || uStack_48._7_1_ != '\0'" (parenthesized_expression "((((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0') ||\n        uStack_48._6_1_ != '\0')" (( "(") (binary_expression "(((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0') ||\n        uStack_48._6_1_ != '\0'" (parenthesized_expression "(((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0')" (( "(") (binary_expression "((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0'" (parenthesized_expression "((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0')" (( "(") (binary_expression "(((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0'" (parenthesized_expression "(((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0')" (( "(") (binary_expression "((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||\n           uStack_48._3_1_ != '\0'" (parenthesized_expression "((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0')" (( "(") (binary_expression "(uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0'" (parenthesized_expression "(uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0')" (( "(") (binary_expression "uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0'" (binary_expression "uStack_48._1_1_ != '\0'" (field_expression "uStack_48._1_1_" (identifier "uStack_48") (. ".") (field_identifier "_1_1_")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (|| "||") (binary_expression "(char)uStack_48 != '\0'" (cast_expression "(char)uStack_48" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uStack_48")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")")) (|| "||") (binary_expression "uStack_48._2_1_ != '\0'" (field_expression "uStack_48._2_1_" (identifier "uStack_48") (. ".") (field_identifier "_2_1_")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")")) (|| "||") (binary_expression "uStack_48._3_1_ != '\0'" (field_expression "uStack_48._3_1_" (identifier "uStack_48") (. ".") (field_identifier "_3_1_")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")")) (|| "||") (binary_expression "uStack_48._4_1_ != '\0'" (field_expression "uStack_48._4_1_" (identifier "uStack_48") (. ".") (field_identifier "_4_1_")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")")) (|| "||") (binary_expression "uStack_48._5_1_ != '\0'" (field_expression "uStack_48._5_1_" (identifier "uStack_48") (. ".") (field_identifier "_5_1_")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")")) (|| "||") (binary_expression "uStack_48._6_1_ != '\0'" (field_expression "uStack_48._6_1_" (identifier "uStack_48") (. ".") (field_identifier "_6_1_")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")")) (|| "||") (binary_expression "uStack_48._7_1_ != '\0'" (field_expression "uStack_48._7_1_" (identifier "uStack_48") (. ".") (field_identifier "_7_1_")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")")) (goto_statement "goto LAB_0011fcf5;" (goto "goto") (statement_identifier "LAB_0011fcf5") (; ";"))) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar2 = puVar2 + 0x20;" (assignment_expression "puVar2 = puVar2 + 0x20" (identifier "puVar2") (= "=") (binary_expression "puVar2 + 0x20" (identifier "puVar2") (+ "+") (number_literal "0x20"))) (; ";")) (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" (identifier "iVar1") (= "=") (number_literal "0")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar3 != 0x14)" (( "(") (binary_expression "iVar3 != 0x14" (identifier "iVar3") (!= "!=") (number_literal "0x14")) () ")")) (; ";")) (if_statement "if (lStack_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" (if "if") (parenthesized_expression "(lStack_40 != *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "lStack_40 != *(long *)(in_FS_OFFSET + 0x28)" (identifier "lStack_40") (!= "!=") (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                    \n    __stack_chk_fail();\n  }" ({ "{") (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return iVar1;" (return "return") (identifier "iVar1") (; ";")) (} "}")))

/* WARNING: Switch with 1 destination removed at 0x00114de0 */
/* WARNING: Unknown calling convention */

int function_1(void)

{
  int var_3;
  type_1 *var_4;
  int var_8;
  long var_1;
  type_2 sStack_10e8;
  type_1 auStack_48 [8];
  long var_9;
  
  var_8 = 0;
  var_4 = function_1::cases[0].var_4;
  var_9 = *(long *)(var_1 + 0x28);
  do {
    var_3 = var_2(var_4,8,0,&sStack_10e8);
    if (var_3 != 0) break;
    if (*(int *)(var_4 + -4) == 0) {
      var_5(var_4 + 8,auStack_48,&sStack_10e8);
    }
    else {
      var_6(var_4 + 8,auStack_48,&sStack_10e8);
    }
    var_3 = var_7(var_4 + 0x10,8,auStack_48,8,"DES",var_8);
    if (var_3 != 0) {
LAB_0011fcf5:
      var_3 = 5;
      break;
    }
    auStack_48[0] = '\0';
    auStack_48[1] = '\0';
    auStack_48[2] = '\0';
    auStack_48[3] = '\0';
    auStack_48[4] = '\0';
    auStack_48[5] = '\0';
    auStack_48[6] = '\0';
    auStack_48[7] = '\0';
    var_3 = 1000;
    do {
      var_6(auStack_48,auStack_48,&sStack_10e8);
      var_6(auStack_48,auStack_48,&sStack_10e8);
      var_6(auStack_48,auStack_48,&sStack_10e8);
      var_6(auStack_48,auStack_48,&sStack_10e8);
      var_6(auStack_48,auStack_48,&sStack_10e8);
      var_6(auStack_48,auStack_48,&sStack_10e8);
      var_6(auStack_48,auStack_48,&sStack_10e8);
      var_6(auStack_48,auStack_48,&sStack_10e8);
      var_3 = var_3 + -8;
    } while (var_3 != 0);
    var_3 = 1000;
    do {
      var_5(auStack_48,auStack_48,&sStack_10e8);
      var_5(auStack_48,auStack_48,&sStack_10e8);
      var_5(auStack_48,auStack_48,&sStack_10e8);
      var_5(auStack_48,auStack_48,&sStack_10e8);
      var_5(auStack_48,auStack_48,&sStack_10e8);
      var_5(auStack_48,auStack_48,&sStack_10e8);
      var_5(auStack_48,auStack_48,&sStack_10e8);
      var_5(auStack_48,auStack_48,&sStack_10e8);
      var_3 = var_3 + -8;
    } while (var_3 != 0);
    if (((((((auStack_48[1] != '\0' || auStack_48[0] != '\0') || auStack_48[2] != '\0') ||
           auStack_48[3] != '\0') || auStack_48[4] != '\0') || auStack_48[5] != '\0') ||
        auStack_48[6] != '\0') || auStack_48[7] != '\0') goto LAB_0011fcf5;
    var_8 = var_8 + 1;
    var_4 = var_4 + 0x20;
    var_3 = 0;
  } while (var_8 != 0x14);
  if (var_9 != *(long *)(var_1 + 0x28)) {
                    /* WARNING: Subroutine does not return */
    var_10();
  }
  return var_3;
}


(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: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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))))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (identifier)) (identifier))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (pointer_expression argument: (identifier)) (number_literal) (pointer_expression argument: (identifier)) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (break_statement))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (char_literal (escape_sequence))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence))))) right: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (char_literal (escape_sequence))))) right: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (char_literal (escape_sequence))))) right: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (char_literal (escape_sequence))))) right: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (char_literal (escape_sequence))))) right: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (char_literal (escape_sequence))))) right: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (char_literal (escape_sequence))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (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 (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (return_statement (identifier)))))

/* WARNING: Switch with 1 destination removed at 0x00114de0 */

int MASKED(void)

{
  int iVar1;
  undefined *puVar2;
  int iVar3;
  long in_FS_OFFSET;
  undefined1 auStack_10e8 [4256];
  undefined8 uStack_48;
  long lStack_40;
  
  iVar3 = 0;
  puVar2 = &DAT_00199648;
  lStack_40 = *(long *)(in_FS_OFFSET + 0x28);
  do {
    iVar1 = des_setup(puVar2,8,0,auStack_10e8);
    if (iVar1 != 0) break;
    if (*(int *)(puVar2 + -4) == 0) {
      des_ecb_decrypt(puVar2 + 8,&uStack_48,auStack_10e8);
    }
    else {
      des_ecb_encrypt();
    }
    iVar1 = compare_testvector(puVar2 + 0x10,8,&uStack_48,8,&DAT_00199633,iVar3);
    if (iVar1 != 0) {
LAB_0011fcf5:
      iVar1 = 5;
      break;
    }
    uStack_48 = 0;
    iVar1 = 1000;
    do {
      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);
      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);
      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);
      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);
      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);
      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);
      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);
      des_ecb_encrypt(&uStack_48,&uStack_48,auStack_10e8);
      iVar1 = iVar1 + -8;
    } while (iVar1 != 0);
    iVar1 = 1000;
    do {
      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);
      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);
      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);
      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);
      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);
      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);
      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);
      des_ecb_decrypt(&uStack_48,&uStack_48,auStack_10e8);
      iVar1 = iVar1 + -8;
    } while (iVar1 != 0);
    if (((((((uStack_48._1_1_ != '\0' || (char)uStack_48 != '\0') || uStack_48._2_1_ != '\0') ||
           uStack_48._3_1_ != '\0') || uStack_48._4_1_ != '\0') || uStack_48._5_1_ != '\0') ||
        uStack_48._6_1_ != '\0') || uStack_48._7_1_ != '\0') goto LAB_0011fcf5;
    iVar3 = iVar3 + 1;
    puVar2 = puVar2 + 0x20;
    iVar1 = 0;
  } while (iVar3 != 0x14);
  if (lStack_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return iVar1;
}

