
/* WARNING: Unknown calling convention */

int f9_test(void)

{
  long lVar1;
  int cipher;
  int iVar2;
  long in_FS_OFFSET;
  ulong taglen;
  uchar T [16];
  
  lVar1 = *(long *)(in_FS_OFFSET + 0x28);
  cipher = find_cipher("kasumi");
  if (cipher == -1) {
    iVar2 = 2;
  }
  else {
    taglen = 4;
    iVar2 = f9_memory(cipher,f9_test::tests[0].K,0x10,f9_test::tests[0].M,0x14,T,&taglen);
    if (iVar2 == 0) {
      iVar2 = compare_testvector(T,taglen,f9_test::tests[0].T,4,"F9",0);
      if (iVar2 == 0) {
        taglen = 4;
        iVar2 = f9_memory(cipher,f9_test::tests[1].K,0x10,f9_test::tests[1].M,0x69,T,&taglen);
        if (iVar2 == 0) {
          iVar2 = compare_testvector(T,taglen,f9_test::tests[1].T,4,"F9",1);
          if (iVar2 != 0) {
            iVar2 = 5;
          }
        }
      }
      else {
        iVar2 = 5;
      }
    }
  }
  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {
    return iVar2;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}



ulong f9_test(void)

{
  int iVar1;
  int iVar2;
  uint uVar3;
  ulong uVar4;
  long in_FS_OFFSET;
  undefined8 local_40;
  undefined1 local_38 [24];
  long local_20;
  
  local_20 = *(long *)(in_FS_OFFSET + 0x28);
  iVar1 = find_cipher("kasumi");
  if (iVar1 == -1) {
    uVar4 = 2;
  }
  else {
    local_40 = 4;
    uVar4 = f9_memory(iVar1,&DAT_001bbae4,0x10,&DAT_001bbaf4,0x14,local_38,&local_40);
    if ((int)uVar4 == 0) {
      iVar2 = compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0);
      if (iVar2 == 0) {
        local_40 = 4;
        uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);
        if ((int)uVar4 == 0) {
          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);
          uVar4 = (ulong)uVar3;
          if (uVar3 != 0) {
            uVar4 = 5;
          }
        }
      }
      else {
        uVar4 = 5;
      }
    }
  }
  if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {
    return uVar4;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}


PUSH R12
LEA RDI,[0x1a21f3]
PUSH RBP
PUSH RBX
SUB RSP,0x30
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x28],RAX
XOR EAX,EAX
CALL 0x00114ed0
CMP EAX,-0x1
JZ 0x00158c80
LEA RBX,[RSP + 0x10]
SUB RSP,0x8
MOV EDI,EAX
MOV EDX,0x10
MOV qword ptr [RSP + 0x10],0x4
LEA R12,[RSP + 0x10]
MOV R9,RBX
MOV EBP,EAX
PUSH R12
LEA RCX,[0x1bbaf4]
MOV R8D,0x14
LEA RSI,[RCX + -0x10]
CALL 0x00114f60
POP RSI
POP RDI
TEST EAX,EAX
JNZ 0x00158c62
MOV RSI,qword ptr [RSP + 0x8]
XOR R9D,R9D
MOV ECX,0x4
MOV RDI,RBX
LEA R8,[0x1bbabf]
LEA RDX,[0x1bbb74]
CALL 0x001143c0
TEST EAX,EAX
JNZ 0x00158c90
SUB RSP,0x8
LEA RCX,[0x1bbb8c]
MOV R9,RBX
MOV EDI,EBP
MOV EDX,0x10
LEA RSI,[RCX + -0x10]
MOV R8D,0x69
MOV qword ptr [RSP + 0x10],0x4
PUSH R12
CALL 0x00114f60
POP RDX
POP RCX
TEST EAX,EAX
JNZ 0x00158c62
MOV RSI,qword ptr [RSP + 0x8]
MOV R9D,0x1
MOV RDI,RBX
LEA RDX,[0x1bbc0c]
LEA R8,[0x1bbabf]
MOV ECX,0x4
CALL 0x001143c0
MOV EDX,0x5
TEST EAX,EAX
CMOVNZ EAX,EDX
MOV RCX,qword ptr [RSP + 0x28]
XOR RCX,qword ptr FS:[0x28]
JNZ 0x00158c97
ADD RSP,0x30
POP RBX
POP RBP
POP R12
RET
MOV EAX,0x2
JMP 0x00158c62
MOV EAX,0x5
JMP 0x00158c62
CALL 0x00113880
(translation_unit "ulong f9_test(void)\n\n{\n  int iVar1;\n  int iVar2;\n  uint uVar3;\n  ulong uVar4;\n  long in_FS_OFFSET;\n  undefined8 local_40;\n  undefined1 local_38 [24];\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar1 = find_cipher("kasumi");\n  if (iVar1 == -1) {\n    uVar4 = 2;\n  }\n  else {\n    local_40 = 4;\n    uVar4 = f9_memory(iVar1,&DAT_001bbae4,0x10,&DAT_001bbaf4,0x14,local_38,&local_40);\n    if ((int)uVar4 == 0) {\n      iVar2 = compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0);\n      if (iVar2 == 0) {\n        local_40 = 4;\n        uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);\n        if ((int)uVar4 == 0) {\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }\n      }\n      else {\n        uVar4 = 5;\n      }\n    }\n  }\n  if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar4;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" (function_definition "ulong f9_test(void)\n\n{\n  int iVar1;\n  int iVar2;\n  uint uVar3;\n  ulong uVar4;\n  long in_FS_OFFSET;\n  undefined8 local_40;\n  undefined1 local_38 [24];\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar1 = find_cipher("kasumi");\n  if (iVar1 == -1) {\n    uVar4 = 2;\n  }\n  else {\n    local_40 = 4;\n    uVar4 = f9_memory(iVar1,&DAT_001bbae4,0x10,&DAT_001bbaf4,0x14,local_38,&local_40);\n    if ((int)uVar4 == 0) {\n      iVar2 = compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0);\n      if (iVar2 == 0) {\n        local_40 = 4;\n        uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);\n        if ((int)uVar4 == 0) {\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }\n      }\n      else {\n        uVar4 = 5;\n      }\n    }\n  }\n  if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar4;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" type_identifier (function_declarator "f9_test(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  uint uVar3;\n  ulong uVar4;\n  long in_FS_OFFSET;\n  undefined8 local_40;\n  undefined1 local_38 [24];\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar1 = find_cipher("kasumi");\n  if (iVar1 == -1) {\n    uVar4 = 2;\n  }\n  else {\n    local_40 = 4;\n    uVar4 = f9_memory(iVar1,&DAT_001bbae4,0x10,&DAT_001bbaf4,0x14,local_38,&local_40);\n    if ((int)uVar4 == 0) {\n      iVar2 = compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0);\n      if (iVar2 == 0) {\n        local_40 = 4;\n        uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);\n        if ((int)uVar4 == 0) {\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }\n      }\n      else {\n        uVar4 = 5;\n      }\n    }\n  }\n  if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar4;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_40;" type_identifier identifier ;) (declaration "undefined1 local_38 [24];" type_identifier (array_declarator "local_38 [24]" identifier [ number_literal ]) ;) (declaration "long local_20;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_20 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_20 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = find_cipher("kasumi");" (assignment_expression "iVar1 = find_cipher("kasumi")" identifier = (call_expression "find_cipher("kasumi")" identifier (argument_list "("kasumi")" ( (string_literal ""kasumi"" " string_content ") )))) ;) (if_statement "if (iVar1 == -1) {\n    uVar4 = 2;\n  }\n  else {\n    local_40 = 4;\n    uVar4 = f9_memory(iVar1,&DAT_001bbae4,0x10,&DAT_001bbaf4,0x14,local_38,&local_40);\n    if ((int)uVar4 == 0) {\n      iVar2 = compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0);\n      if (iVar2 == 0) {\n        local_40 = 4;\n        uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);\n        if ((int)uVar4 == 0) {\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }\n      }\n      else {\n        uVar4 = 5;\n      }\n    }\n  }" if (parenthesized_expression "(iVar1 == -1)" ( (binary_expression "iVar1 == -1" identifier == number_literal) )) (compound_statement "{\n    uVar4 = 2;\n  }" { (expression_statement "uVar4 = 2;" (assignment_expression "uVar4 = 2" identifier = number_literal) ;) }) (else_clause "else {\n    local_40 = 4;\n    uVar4 = f9_memory(iVar1,&DAT_001bbae4,0x10,&DAT_001bbaf4,0x14,local_38,&local_40);\n    if ((int)uVar4 == 0) {\n      iVar2 = compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0);\n      if (iVar2 == 0) {\n        local_40 = 4;\n        uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);\n        if ((int)uVar4 == 0) {\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }\n      }\n      else {\n        uVar4 = 5;\n      }\n    }\n  }" else (compound_statement "{\n    local_40 = 4;\n    uVar4 = f9_memory(iVar1,&DAT_001bbae4,0x10,&DAT_001bbaf4,0x14,local_38,&local_40);\n    if ((int)uVar4 == 0) {\n      iVar2 = compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0);\n      if (iVar2 == 0) {\n        local_40 = 4;\n        uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);\n        if ((int)uVar4 == 0) {\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }\n      }\n      else {\n        uVar4 = 5;\n      }\n    }\n  }" { (expression_statement "local_40 = 4;" (assignment_expression "local_40 = 4" identifier = number_literal) ;) (expression_statement "uVar4 = f9_memory(iVar1,&DAT_001bbae4,0x10,&DAT_001bbaf4,0x14,local_38,&local_40);" (assignment_expression "uVar4 = f9_memory(iVar1,&DAT_001bbae4,0x10,&DAT_001bbaf4,0x14,local_38,&local_40)" identifier = (call_expression "f9_memory(iVar1,&DAT_001bbae4,0x10,&DAT_001bbaf4,0x14,local_38,&local_40)" identifier (argument_list "(iVar1,&DAT_001bbae4,0x10,&DAT_001bbaf4,0x14,local_38,&local_40)" ( identifier , (pointer_expression "&DAT_001bbae4" & identifier) , number_literal , (pointer_expression "&DAT_001bbaf4" & identifier) , number_literal , identifier , (pointer_expression "&local_40" & identifier) )))) ;) (if_statement "if ((int)uVar4 == 0) {\n      iVar2 = compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0);\n      if (iVar2 == 0) {\n        local_40 = 4;\n        uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);\n        if ((int)uVar4 == 0) {\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }\n      }\n      else {\n        uVar4 = 5;\n      }\n    }" if (parenthesized_expression "((int)uVar4 == 0)" ( (binary_expression "(int)uVar4 == 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n      iVar2 = compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0);\n      if (iVar2 == 0) {\n        local_40 = 4;\n        uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);\n        if ((int)uVar4 == 0) {\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }\n      }\n      else {\n        uVar4 = 5;\n      }\n    }" { (expression_statement "iVar2 = compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0);" (assignment_expression "iVar2 = compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0)" identifier = (call_expression "compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0)" identifier (argument_list "(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0)" ( identifier , identifier , (pointer_expression "&DAT_001bbb74" & identifier) , number_literal , (pointer_expression "&DAT_001bbabf" & identifier) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n        local_40 = 4;\n        uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);\n        if ((int)uVar4 == 0) {\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }\n      }\n      else {\n        uVar4 = 5;\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        local_40 = 4;\n        uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);\n        if ((int)uVar4 == 0) {\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }\n      }" { (expression_statement "local_40 = 4;" (assignment_expression "local_40 = 4" identifier = number_literal) ;) (expression_statement "uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);" (assignment_expression "uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38)" identifier = (call_expression "f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38)" identifier (argument_list "(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38)" ( identifier , (pointer_expression "&DAT_001bbb7c" & identifier) , number_literal , (pointer_expression "&DAT_001bbb8c" & identifier) , number_literal , identifier )))) ;) (if_statement "if ((int)uVar4 == 0) {\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }" if (parenthesized_expression "((int)uVar4 == 0)" ( (binary_expression "(int)uVar4 == 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }" { (expression_statement "uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);" (assignment_expression "uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1)" identifier = (call_expression "compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1)" identifier (argument_list "(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1)" ( identifier , identifier , (pointer_expression "&DAT_001bbc0c" & identifier) , number_literal , (pointer_expression "&DAT_001bbabf" & identifier) , number_literal )))) ;) (expression_statement "uVar4 = (ulong)uVar3;" (assignment_expression "uVar4 = (ulong)uVar3" identifier = (cast_expression "(ulong)uVar3" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar3 != 0) {\n            uVar4 = 5;\n          }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar4 = 5;\n          }" { (expression_statement "uVar4 = 5;" (assignment_expression "uVar4 = 5" identifier = number_literal) ;) })) })) }) (else_clause "else {\n        uVar4 = 5;\n      }" else (compound_statement "{\n        uVar4 = 5;\n      }" { (expression_statement "uVar4 = 5;" (assignment_expression "uVar4 = 5" identifier = number_literal) ;) }))) })) }))) (if_statement "if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar4;\n  }" if (parenthesized_expression "(local_20 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_20 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return uVar4;\n  }" { (return_statement "return uVar4;" return identifier ;) })) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Unknown calling convention */\n\nint f9_test(void)\n\n{\n  long lVar1;\n  int cipher;\n  int iVar2;\n  long in_FS_OFFSET;\n  ulong taglen;\n  uchar T [16];\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  cipher = find_cipher("kasumi");\n  if (cipher == -1) {\n    iVar2 = 2;\n  }\n  else {\n    taglen = 4;\n    iVar2 = f9_memory(cipher,f9_test::tests[0].K,0x10,f9_test::tests[0].M,0x14,T,&taglen);\n    if (iVar2 == 0) {\n      iVar2 = compare_testvector(T,taglen,f9_test::tests[0].T,4,"F9",0);\n      if (iVar2 == 0) {\n        taglen = 4;\n        iVar2 = f9_memory(cipher,f9_test::tests[1].K,0x10,f9_test::tests[1].M,0x69,T,&taglen);\n        if (iVar2 == 0) {\n          iVar2 = compare_testvector(T,taglen,f9_test::tests[1].T,4,"F9",1);\n          if (iVar2 != 0) {\n            iVar2 = 5;\n          }\n        }\n      }\n      else {\n        iVar2 = 5;\n      }\n    }\n  }\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" comment (function_definition "int f9_test(void)\n\n{\n  long lVar1;\n  int cipher;\n  int iVar2;\n  long in_FS_OFFSET;\n  ulong taglen;\n  uchar T [16];\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  cipher = find_cipher("kasumi");\n  if (cipher == -1) {\n    iVar2 = 2;\n  }\n  else {\n    taglen = 4;\n    iVar2 = f9_memory(cipher,f9_test::tests[0].K,0x10,f9_test::tests[0].M,0x14,T,&taglen);\n    if (iVar2 == 0) {\n      iVar2 = compare_testvector(T,taglen,f9_test::tests[0].T,4,"F9",0);\n      if (iVar2 == 0) {\n        taglen = 4;\n        iVar2 = f9_memory(cipher,f9_test::tests[1].K,0x10,f9_test::tests[1].M,0x69,T,&taglen);\n        if (iVar2 == 0) {\n          iVar2 = compare_testvector(T,taglen,f9_test::tests[1].T,4,"F9",1);\n          if (iVar2 != 0) {\n            iVar2 = 5;\n          }\n        }\n      }\n      else {\n        iVar2 = 5;\n      }\n    }\n  }\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (function_declarator "f9_test(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  long lVar1;\n  int cipher;\n  int iVar2;\n  long in_FS_OFFSET;\n  ulong taglen;\n  uchar T [16];\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  cipher = find_cipher("kasumi");\n  if (cipher == -1) {\n    iVar2 = 2;\n  }\n  else {\n    taglen = 4;\n    iVar2 = f9_memory(cipher,f9_test::tests[0].K,0x10,f9_test::tests[0].M,0x14,T,&taglen);\n    if (iVar2 == 0) {\n      iVar2 = compare_testvector(T,taglen,f9_test::tests[0].T,4,"F9",0);\n      if (iVar2 == 0) {\n        taglen = 4;\n        iVar2 = f9_memory(cipher,f9_test::tests[1].K,0x10,f9_test::tests[1].M,0x69,T,&taglen);\n        if (iVar2 == 0) {\n          iVar2 = compare_testvector(T,taglen,f9_test::tests[1].T,4,"F9",1);\n          if (iVar2 != 0) {\n            iVar2 = 5;\n          }\n        }\n      }\n      else {\n        iVar2 = 5;\n      }\n    }\n  }\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "int cipher;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong taglen;" type_identifier identifier ;) (declaration "uchar T [16];" type_identifier (array_declarator "T [16]" identifier [ number_literal ]) ;) (expression_statement "lVar1 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lVar1 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "cipher = find_cipher("kasumi");" (assignment_expression "cipher = find_cipher("kasumi")" identifier = (call_expression "find_cipher("kasumi")" identifier (argument_list "("kasumi")" ( (string_literal ""kasumi"" " string_content ") )))) ;) (if_statement "if (cipher == -1) {\n    iVar2 = 2;\n  }\n  else {\n    taglen = 4;\n    iVar2 = f9_memory(cipher,f9_test::tests[0].K,0x10,f9_test::tests[0].M,0x14,T,&taglen);\n    if (iVar2 == 0) {\n      iVar2 = compare_testvector(T,taglen,f9_test::tests[0].T,4,"F9",0);\n      if (iVar2 == 0) {\n        taglen = 4;\n        iVar2 = f9_memory(cipher,f9_test::tests[1].K,0x10,f9_test::tests[1].M,0x69,T,&taglen);\n        if (iVar2 == 0) {\n          iVar2 = compare_testvector(T,taglen,f9_test::tests[1].T,4,"F9",1);\n          if (iVar2 != 0) {\n            iVar2 = 5;\n          }\n        }\n      }\n      else {\n        iVar2 = 5;\n      }\n    }\n  }" if (parenthesized_expression "(cipher == -1)" ( (binary_expression "cipher == -1" identifier == number_literal) )) (compound_statement "{\n    iVar2 = 2;\n  }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n    taglen = 4;\n    iVar2 = f9_memory(cipher,f9_test::tests[0].K,0x10,f9_test::tests[0].M,0x14,T,&taglen);\n    if (iVar2 == 0) {\n      iVar2 = compare_testvector(T,taglen,f9_test::tests[0].T,4,"F9",0);\n      if (iVar2 == 0) {\n        taglen = 4;\n        iVar2 = f9_memory(cipher,f9_test::tests[1].K,0x10,f9_test::tests[1].M,0x69,T,&taglen);\n        if (iVar2 == 0) {\n          iVar2 = compare_testvector(T,taglen,f9_test::tests[1].T,4,"F9",1);\n          if (iVar2 != 0) {\n            iVar2 = 5;\n          }\n        }\n      }\n      else {\n        iVar2 = 5;\n      }\n    }\n  }" else (compound_statement "{\n    taglen = 4;\n    iVar2 = f9_memory(cipher,f9_test::tests[0].K,0x10,f9_test::tests[0].M,0x14,T,&taglen);\n    if (iVar2 == 0) {\n      iVar2 = compare_testvector(T,taglen,f9_test::tests[0].T,4,"F9",0);\n      if (iVar2 == 0) {\n        taglen = 4;\n        iVar2 = f9_memory(cipher,f9_test::tests[1].K,0x10,f9_test::tests[1].M,0x69,T,&taglen);\n        if (iVar2 == 0) {\n          iVar2 = compare_testvector(T,taglen,f9_test::tests[1].T,4,"F9",1);\n          if (iVar2 != 0) {\n            iVar2 = 5;\n          }\n        }\n      }\n      else {\n        iVar2 = 5;\n      }\n    }\n  }" { (expression_statement "taglen = 4;" (assignment_expression "taglen = 4" identifier = number_literal) ;) (expression_statement "iVar2 = f9_memory(cipher,f9_test::tests[0].K,0x10,f9_test::tests[0].M,0x14,T,&taglen);" (assignment_expression "iVar2 = f9_memory(cipher,f9_test::tests[0].K,0x10,f9_test::tests[0].M,0x14,T,&taglen)" identifier = (call_expression "f9_memory(cipher,f9_test::tests[0].K,0x10,f9_test::tests[0].M,0x14,T,&taglen)" identifier (argument_list "(cipher,f9_test::tests[0].K,0x10,f9_test::tests[0].M,0x14,T,&taglen)" ( identifier , (field_expression "f9_test::tests[0].K" (subscript_expression "f9_test::tests[0]" identifier (ERROR "::tests" : : identifier) [ number_literal ]) . field_identifier) , number_literal , (field_expression "f9_test::tests[0].M" (subscript_expression "f9_test::tests[0]" identifier (ERROR "::tests" : : identifier) [ number_literal ]) . field_identifier) , number_literal , identifier , (pointer_expression "&taglen" & identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n      iVar2 = compare_testvector(T,taglen,f9_test::tests[0].T,4,"F9",0);\n      if (iVar2 == 0) {\n        taglen = 4;\n        iVar2 = f9_memory(cipher,f9_test::tests[1].K,0x10,f9_test::tests[1].M,0x69,T,&taglen);\n        if (iVar2 == 0) {\n          iVar2 = compare_testvector(T,taglen,f9_test::tests[1].T,4,"F9",1);\n          if (iVar2 != 0) {\n            iVar2 = 5;\n          }\n        }\n      }\n      else {\n        iVar2 = 5;\n      }\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar2 = compare_testvector(T,taglen,f9_test::tests[0].T,4,"F9",0);\n      if (iVar2 == 0) {\n        taglen = 4;\n        iVar2 = f9_memory(cipher,f9_test::tests[1].K,0x10,f9_test::tests[1].M,0x69,T,&taglen);\n        if (iVar2 == 0) {\n          iVar2 = compare_testvector(T,taglen,f9_test::tests[1].T,4,"F9",1);\n          if (iVar2 != 0) {\n            iVar2 = 5;\n          }\n        }\n      }\n      else {\n        iVar2 = 5;\n      }\n    }" { (expression_statement "iVar2 = compare_testvector(T,taglen,f9_test::tests[0].T,4,"F9",0);" (assignment_expression "iVar2 = compare_testvector(T,taglen,f9_test::tests[0].T,4,"F9",0)" identifier = (call_expression "compare_testvector(T,taglen,f9_test::tests[0].T,4,"F9",0)" identifier (argument_list "(T,taglen,f9_test::tests[0].T,4,"F9",0)" ( identifier , identifier , (field_expression "f9_test::tests[0].T" (subscript_expression "f9_test::tests[0]" identifier (ERROR "::tests" : : identifier) [ number_literal ]) . field_identifier) , number_literal , (string_literal ""F9"" " string_content ") , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n        taglen = 4;\n        iVar2 = f9_memory(cipher,f9_test::tests[1].K,0x10,f9_test::tests[1].M,0x69,T,&taglen);\n        if (iVar2 == 0) {\n          iVar2 = compare_testvector(T,taglen,f9_test::tests[1].T,4,"F9",1);\n          if (iVar2 != 0) {\n            iVar2 = 5;\n          }\n        }\n      }\n      else {\n        iVar2 = 5;\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        taglen = 4;\n        iVar2 = f9_memory(cipher,f9_test::tests[1].K,0x10,f9_test::tests[1].M,0x69,T,&taglen);\n        if (iVar2 == 0) {\n          iVar2 = compare_testvector(T,taglen,f9_test::tests[1].T,4,"F9",1);\n          if (iVar2 != 0) {\n            iVar2 = 5;\n          }\n        }\n      }" { (expression_statement "taglen = 4;" (assignment_expression "taglen = 4" identifier = number_literal) ;) (expression_statement "iVar2 = f9_memory(cipher,f9_test::tests[1].K,0x10,f9_test::tests[1].M,0x69,T,&taglen);" (assignment_expression "iVar2 = f9_memory(cipher,f9_test::tests[1].K,0x10,f9_test::tests[1].M,0x69,T,&taglen)" identifier = (call_expression "f9_memory(cipher,f9_test::tests[1].K,0x10,f9_test::tests[1].M,0x69,T,&taglen)" identifier (argument_list "(cipher,f9_test::tests[1].K,0x10,f9_test::tests[1].M,0x69,T,&taglen)" ( identifier , (field_expression "f9_test::tests[1].K" (subscript_expression "f9_test::tests[1]" identifier (ERROR "::tests" : : identifier) [ number_literal ]) . field_identifier) , number_literal , (field_expression "f9_test::tests[1].M" (subscript_expression "f9_test::tests[1]" identifier (ERROR "::tests" : : identifier) [ number_literal ]) . field_identifier) , number_literal , identifier , (pointer_expression "&taglen" & identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n          iVar2 = compare_testvector(T,taglen,f9_test::tests[1].T,4,"F9",1);\n          if (iVar2 != 0) {\n            iVar2 = 5;\n          }\n        }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar2 = compare_testvector(T,taglen,f9_test::tests[1].T,4,"F9",1);\n          if (iVar2 != 0) {\n            iVar2 = 5;\n          }\n        }" { (expression_statement "iVar2 = compare_testvector(T,taglen,f9_test::tests[1].T,4,"F9",1);" (assignment_expression "iVar2 = compare_testvector(T,taglen,f9_test::tests[1].T,4,"F9",1)" identifier = (call_expression "compare_testvector(T,taglen,f9_test::tests[1].T,4,"F9",1)" identifier (argument_list "(T,taglen,f9_test::tests[1].T,4,"F9",1)" ( identifier , identifier , (field_expression "f9_test::tests[1].T" (subscript_expression "f9_test::tests[1]" identifier (ERROR "::tests" : : identifier) [ number_literal ]) . field_identifier) , number_literal , (string_literal ""F9"" " string_content ") , number_literal )))) ;) (if_statement "if (iVar2 != 0) {\n            iVar2 = 5;\n          }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar2 = 5;\n          }" { (expression_statement "iVar2 = 5;" (assignment_expression "iVar2 = 5" identifier = number_literal) ;) })) })) }) (else_clause "else {\n        iVar2 = 5;\n      }" else (compound_statement "{\n        iVar2 = 5;\n      }" { (expression_statement "iVar2 = 5;" (assignment_expression "iVar2 = 5" identifier = number_literal) ;) }))) })) }))) (if_statement "if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }" if (parenthesized_expression "(lVar1 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lVar1 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar2;\n  }" { (return_statement "return iVar2;" return identifier ;) })) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "ulong f9_test(void)\n\n{\n  int iVar1;\n  int iVar2;\n  uint uVar3;\n  ulong uVar4;\n  long in_FS_OFFSET;\n  undefined8 local_40;\n  undefined1 local_38 [24];\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar1 = find_cipher("kasumi");\n  if (iVar1 == -1) {\n    uVar4 = 2;\n  }\n  else {\n    local_40 = 4;\n    uVar4 = f9_memory(iVar1,&DAT_001bbae4,0x10,&DAT_001bbaf4,0x14,local_38,&local_40);\n    if ((int)uVar4 == 0) {\n      iVar2 = compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0);\n      if (iVar2 == 0) {\n        local_40 = 4;\n        uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);\n        if ((int)uVar4 == 0) {\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }\n      }\n      else {\n        uVar4 = 5;\n      }\n    }\n  }\n  if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar4;\n  }\n                    \n  __stack_chk_fail();\n}\n\n" (function_definition "ulong f9_test(void)\n\n{\n  int iVar1;\n  int iVar2;\n  uint uVar3;\n  ulong uVar4;\n  long in_FS_OFFSET;\n  undefined8 local_40;\n  undefined1 local_38 [24];\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar1 = find_cipher("kasumi");\n  if (iVar1 == -1) {\n    uVar4 = 2;\n  }\n  else {\n    local_40 = 4;\n    uVar4 = f9_memory(iVar1,&DAT_001bbae4,0x10,&DAT_001bbaf4,0x14,local_38,&local_40);\n    if ((int)uVar4 == 0) {\n      iVar2 = compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0);\n      if (iVar2 == 0) {\n        local_40 = 4;\n        uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);\n        if ((int)uVar4 == 0) {\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }\n      }\n      else {\n        uVar4 = 5;\n      }\n    }\n  }\n  if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar4;\n  }\n                    \n  __stack_chk_fail();\n}" type_identifier (function_declarator "f9_test(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  uint uVar3;\n  ulong uVar4;\n  long in_FS_OFFSET;\n  undefined8 local_40;\n  undefined1 local_38 [24];\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar1 = find_cipher("kasumi");\n  if (iVar1 == -1) {\n    uVar4 = 2;\n  }\n  else {\n    local_40 = 4;\n    uVar4 = f9_memory(iVar1,&DAT_001bbae4,0x10,&DAT_001bbaf4,0x14,local_38,&local_40);\n    if ((int)uVar4 == 0) {\n      iVar2 = compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0);\n      if (iVar2 == 0) {\n        local_40 = 4;\n        uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);\n        if ((int)uVar4 == 0) {\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }\n      }\n      else {\n        uVar4 = 5;\n      }\n    }\n  }\n  if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar4;\n  }\n                    \n  __stack_chk_fail();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_40;" type_identifier identifier ;) (declaration "undefined1 local_38 [24];" type_identifier (array_declarator "local_38 [24]" identifier [ number_literal ]) ;) (declaration "long local_20;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_20 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_20 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = find_cipher("kasumi");" (assignment_expression "iVar1 = find_cipher("kasumi")" identifier = (call_expression "find_cipher("kasumi")" identifier (argument_list "("kasumi")" ( (string_literal ""kasumi"" " string_content ") )))) ;) (if_statement "if (iVar1 == -1) {\n    uVar4 = 2;\n  }\n  else {\n    local_40 = 4;\n    uVar4 = f9_memory(iVar1,&DAT_001bbae4,0x10,&DAT_001bbaf4,0x14,local_38,&local_40);\n    if ((int)uVar4 == 0) {\n      iVar2 = compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0);\n      if (iVar2 == 0) {\n        local_40 = 4;\n        uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);\n        if ((int)uVar4 == 0) {\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }\n      }\n      else {\n        uVar4 = 5;\n      }\n    }\n  }" if (parenthesized_expression "(iVar1 == -1)" ( (binary_expression "iVar1 == -1" identifier == number_literal) )) (compound_statement "{\n    uVar4 = 2;\n  }" { (expression_statement "uVar4 = 2;" (assignment_expression "uVar4 = 2" identifier = number_literal) ;) }) (else_clause "else {\n    local_40 = 4;\n    uVar4 = f9_memory(iVar1,&DAT_001bbae4,0x10,&DAT_001bbaf4,0x14,local_38,&local_40);\n    if ((int)uVar4 == 0) {\n      iVar2 = compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0);\n      if (iVar2 == 0) {\n        local_40 = 4;\n        uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);\n        if ((int)uVar4 == 0) {\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }\n      }\n      else {\n        uVar4 = 5;\n      }\n    }\n  }" else (compound_statement "{\n    local_40 = 4;\n    uVar4 = f9_memory(iVar1,&DAT_001bbae4,0x10,&DAT_001bbaf4,0x14,local_38,&local_40);\n    if ((int)uVar4 == 0) {\n      iVar2 = compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0);\n      if (iVar2 == 0) {\n        local_40 = 4;\n        uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);\n        if ((int)uVar4 == 0) {\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }\n      }\n      else {\n        uVar4 = 5;\n      }\n    }\n  }" { (expression_statement "local_40 = 4;" (assignment_expression "local_40 = 4" identifier = number_literal) ;) (expression_statement "uVar4 = f9_memory(iVar1,&DAT_001bbae4,0x10,&DAT_001bbaf4,0x14,local_38,&local_40);" (assignment_expression "uVar4 = f9_memory(iVar1,&DAT_001bbae4,0x10,&DAT_001bbaf4,0x14,local_38,&local_40)" identifier = (call_expression "f9_memory(iVar1,&DAT_001bbae4,0x10,&DAT_001bbaf4,0x14,local_38,&local_40)" identifier (argument_list "(iVar1,&DAT_001bbae4,0x10,&DAT_001bbaf4,0x14,local_38,&local_40)" ( identifier , (pointer_expression "&DAT_001bbae4" & identifier) , number_literal , (pointer_expression "&DAT_001bbaf4" & identifier) , number_literal , identifier , (pointer_expression "&local_40" & identifier) )))) ;) (if_statement "if ((int)uVar4 == 0) {\n      iVar2 = compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0);\n      if (iVar2 == 0) {\n        local_40 = 4;\n        uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);\n        if ((int)uVar4 == 0) {\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }\n      }\n      else {\n        uVar4 = 5;\n      }\n    }" if (parenthesized_expression "((int)uVar4 == 0)" ( (binary_expression "(int)uVar4 == 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n      iVar2 = compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0);\n      if (iVar2 == 0) {\n        local_40 = 4;\n        uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);\n        if ((int)uVar4 == 0) {\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }\n      }\n      else {\n        uVar4 = 5;\n      }\n    }" { (expression_statement "iVar2 = compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0);" (assignment_expression "iVar2 = compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0)" identifier = (call_expression "compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0)" identifier (argument_list "(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0)" ( identifier , identifier , (pointer_expression "&DAT_001bbb74" & identifier) , number_literal , (pointer_expression "&DAT_001bbabf" & identifier) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n        local_40 = 4;\n        uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);\n        if ((int)uVar4 == 0) {\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }\n      }\n      else {\n        uVar4 = 5;\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        local_40 = 4;\n        uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);\n        if ((int)uVar4 == 0) {\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }\n      }" { (expression_statement "local_40 = 4;" (assignment_expression "local_40 = 4" identifier = number_literal) ;) (expression_statement "uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);" (assignment_expression "uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38)" identifier = (call_expression "f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38)" identifier (argument_list "(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38)" ( identifier , (pointer_expression "&DAT_001bbb7c" & identifier) , number_literal , (pointer_expression "&DAT_001bbb8c" & identifier) , number_literal , identifier )))) ;) (if_statement "if ((int)uVar4 == 0) {\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }" if (parenthesized_expression "((int)uVar4 == 0)" ( (binary_expression "(int)uVar4 == 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }" { (expression_statement "uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);" (assignment_expression "uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1)" identifier = (call_expression "compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1)" identifier (argument_list "(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1)" ( identifier , identifier , (pointer_expression "&DAT_001bbc0c" & identifier) , number_literal , (pointer_expression "&DAT_001bbabf" & identifier) , number_literal )))) ;) (expression_statement "uVar4 = (ulong)uVar3;" (assignment_expression "uVar4 = (ulong)uVar3" identifier = (cast_expression "(ulong)uVar3" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar3 != 0) {\n            uVar4 = 5;\n          }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar4 = 5;\n          }" { (expression_statement "uVar4 = 5;" (assignment_expression "uVar4 = 5" identifier = number_literal) ;) })) })) }) (else_clause "else {\n        uVar4 = 5;\n      }" else (compound_statement "{\n        uVar4 = 5;\n      }" { (expression_statement "uVar4 = 5;" (assignment_expression "uVar4 = 5" identifier = number_literal) ;) }))) })) }))) (if_statement "if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar4;\n  }" if (parenthesized_expression "(local_20 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_20 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return uVar4;\n  }" { (return_statement "return uVar4;" return identifier ;) })) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT , (pointer_expression & IDENT) , LIT , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , LIT , (pointer_expression & IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT , (pointer_expression & IDENT) , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , LIT , (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_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 { (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "ulong f9_test(void)\n\n{\n  int iVar1;\n  int iVar2;\n  uint uVar3;\n  ulong uVar4;\n  long in_FS_OFFSET;\n  undefined8 local_40;\n  undefined1 local_38 [24];\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar1 = find_cipher("kasumi");\n  if (iVar1 == -1) {\n    uVar4 = 2;\n  }\n  else {\n    local_40 = 4;\n    uVar4 = f9_memory(iVar1,&DAT_001bbae4,0x10,&DAT_001bbaf4,0x14,local_38,&local_40);\n    if ((int)uVar4 == 0) {\n      iVar2 = compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0);\n      if (iVar2 == 0) {\n        local_40 = 4;\n        uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);\n        if ((int)uVar4 == 0) {\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }\n      }\n      else {\n        uVar4 = 5;\n      }\n    }\n  }\n  if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar4;\n  }\n                    \n  __stack_chk_fail();\n}" (type_identifier "ulong") (function_declarator "f9_test(void)" (identifier "f9_test") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  uint uVar3;\n  ulong uVar4;\n  long in_FS_OFFSET;\n  undefined8 local_40;\n  undefined1 local_38 [24];\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar1 = find_cipher("kasumi");\n  if (iVar1 == -1) {\n    uVar4 = 2;\n  }\n  else {\n    local_40 = 4;\n    uVar4 = f9_memory(iVar1,&DAT_001bbae4,0x10,&DAT_001bbaf4,0x14,local_38,&local_40);\n    if ((int)uVar4 == 0) {\n      iVar2 = compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0);\n      if (iVar2 == 0) {\n        local_40 = 4;\n        uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);\n        if ((int)uVar4 == 0) {\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }\n      }\n      else {\n        uVar4 = 5;\n      }\n    }\n  }\n  if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar4;\n  }\n                    \n  __stack_chk_fail();\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "ulong uVar4;" (type_identifier "ulong") (identifier "uVar4") (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "undefined8 local_40;" (type_identifier "undefined8") (identifier "local_40") (; ";")) (declaration "undefined1 local_38 [24];" (type_identifier "undefined1") (array_declarator "local_38 [24]" (identifier "local_38") ([ "[") (number_literal "24") (] "]")) (; ";")) (declaration "long local_20;" (sized_type_specifier "long" (long "long")) (identifier "local_20") (; ";")) (expression_statement "local_20 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_20 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_20") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "iVar1 = find_cipher("kasumi");" (assignment_expression "iVar1 = find_cipher("kasumi")" (identifier "iVar1") (= "=") (call_expression "find_cipher("kasumi")" (identifier "find_cipher") (argument_list "("kasumi")" (( "(") (string_literal ""kasumi"" (" """) (string_content "kasumi") (" """)) () ")")))) (; ";")) (if_statement "if (iVar1 == -1) {\n    uVar4 = 2;\n  }\n  else {\n    local_40 = 4;\n    uVar4 = f9_memory(iVar1,&DAT_001bbae4,0x10,&DAT_001bbaf4,0x14,local_38,&local_40);\n    if ((int)uVar4 == 0) {\n      iVar2 = compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0);\n      if (iVar2 == 0) {\n        local_40 = 4;\n        uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);\n        if ((int)uVar4 == 0) {\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }\n      }\n      else {\n        uVar4 = 5;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(iVar1 == -1)" (( "(") (binary_expression "iVar1 == -1" (identifier "iVar1") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n    uVar4 = 2;\n  }" ({ "{") (expression_statement "uVar4 = 2;" (assignment_expression "uVar4 = 2" (identifier "uVar4") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n    local_40 = 4;\n    uVar4 = f9_memory(iVar1,&DAT_001bbae4,0x10,&DAT_001bbaf4,0x14,local_38,&local_40);\n    if ((int)uVar4 == 0) {\n      iVar2 = compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0);\n      if (iVar2 == 0) {\n        local_40 = 4;\n        uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);\n        if ((int)uVar4 == 0) {\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }\n      }\n      else {\n        uVar4 = 5;\n      }\n    }\n  }" (else "else") (compound_statement "{\n    local_40 = 4;\n    uVar4 = f9_memory(iVar1,&DAT_001bbae4,0x10,&DAT_001bbaf4,0x14,local_38,&local_40);\n    if ((int)uVar4 == 0) {\n      iVar2 = compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0);\n      if (iVar2 == 0) {\n        local_40 = 4;\n        uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);\n        if ((int)uVar4 == 0) {\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }\n      }\n      else {\n        uVar4 = 5;\n      }\n    }\n  }" ({ "{") (expression_statement "local_40 = 4;" (assignment_expression "local_40 = 4" (identifier "local_40") (= "=") (number_literal "4")) (; ";")) (expression_statement "uVar4 = f9_memory(iVar1,&DAT_001bbae4,0x10,&DAT_001bbaf4,0x14,local_38,&local_40);" (assignment_expression "uVar4 = f9_memory(iVar1,&DAT_001bbae4,0x10,&DAT_001bbaf4,0x14,local_38,&local_40)" (identifier "uVar4") (= "=") (call_expression "f9_memory(iVar1,&DAT_001bbae4,0x10,&DAT_001bbaf4,0x14,local_38,&local_40)" (identifier "f9_memory") (argument_list "(iVar1,&DAT_001bbae4,0x10,&DAT_001bbaf4,0x14,local_38,&local_40)" (( "(") (identifier "iVar1") (, ",") (pointer_expression "&DAT_001bbae4" (& "&") (identifier "DAT_001bbae4")) (, ",") (number_literal "0x10") (, ",") (pointer_expression "&DAT_001bbaf4" (& "&") (identifier "DAT_001bbaf4")) (, ",") (number_literal "0x14") (, ",") (identifier "local_38") (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) () ")")))) (; ";")) (if_statement "if ((int)uVar4 == 0) {\n      iVar2 = compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0);\n      if (iVar2 == 0) {\n        local_40 = 4;\n        uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);\n        if ((int)uVar4 == 0) {\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }\n      }\n      else {\n        uVar4 = 5;\n      }\n    }" (if "if") (parenthesized_expression "((int)uVar4 == 0)" (( "(") (binary_expression "(int)uVar4 == 0" (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar2 = compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0);\n      if (iVar2 == 0) {\n        local_40 = 4;\n        uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);\n        if ((int)uVar4 == 0) {\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }\n      }\n      else {\n        uVar4 = 5;\n      }\n    }" ({ "{") (expression_statement "iVar2 = compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0);" (assignment_expression "iVar2 = compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0)" (identifier "iVar2") (= "=") (call_expression "compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0)" (identifier "compare_testvector") (argument_list "(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0)" (( "(") (identifier "local_38") (, ",") (identifier "local_40") (, ",") (pointer_expression "&DAT_001bbb74" (& "&") (identifier "DAT_001bbb74")) (, ",") (number_literal "4") (, ",") (pointer_expression "&DAT_001bbabf" (& "&") (identifier "DAT_001bbabf")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n        local_40 = 4;\n        uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);\n        if ((int)uVar4 == 0) {\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }\n      }\n      else {\n        uVar4 = 5;\n      }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        local_40 = 4;\n        uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);\n        if ((int)uVar4 == 0) {\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }\n      }" ({ "{") (expression_statement "local_40 = 4;" (assignment_expression "local_40 = 4" (identifier "local_40") (= "=") (number_literal "4")) (; ";")) (expression_statement "uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);" (assignment_expression "uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38)" (identifier "uVar4") (= "=") (call_expression "f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38)" (identifier "f9_memory") (argument_list "(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38)" (( "(") (identifier "iVar1") (, ",") (pointer_expression "&DAT_001bbb7c" (& "&") (identifier "DAT_001bbb7c")) (, ",") (number_literal "0x10") (, ",") (pointer_expression "&DAT_001bbb8c" (& "&") (identifier "DAT_001bbb8c")) (, ",") (number_literal "0x69") (, ",") (identifier "local_38") () ")")))) (; ";")) (if_statement "if ((int)uVar4 == 0) {\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }" (if "if") (parenthesized_expression "((int)uVar4 == 0)" (( "(") (binary_expression "(int)uVar4 == 0" (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);\n          uVar4 = (ulong)uVar3;\n          if (uVar3 != 0) {\n            uVar4 = 5;\n          }\n        }" ({ "{") (expression_statement "uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);" (assignment_expression "uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1)" (identifier "uVar3") (= "=") (call_expression "compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1)" (identifier "compare_testvector") (argument_list "(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1)" (( "(") (identifier "local_38") (, ",") (identifier "local_40") (, ",") (pointer_expression "&DAT_001bbc0c" (& "&") (identifier "DAT_001bbc0c")) (, ",") (number_literal "4") (, ",") (pointer_expression "&DAT_001bbabf" (& "&") (identifier "DAT_001bbabf")) (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "uVar4 = (ulong)uVar3;" (assignment_expression "uVar4 = (ulong)uVar3" (identifier "uVar4") (= "=") (cast_expression "(ulong)uVar3" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar3"))) (; ";")) (if_statement "if (uVar3 != 0) {\n            uVar4 = 5;\n          }" (if "if") (parenthesized_expression "(uVar3 != 0)" (( "(") (binary_expression "uVar3 != 0" (identifier "uVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar4 = 5;\n          }" ({ "{") (expression_statement "uVar4 = 5;" (assignment_expression "uVar4 = 5" (identifier "uVar4") (= "=") (number_literal "5")) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n        uVar4 = 5;\n      }" (else "else") (compound_statement "{\n        uVar4 = 5;\n      }" ({ "{") (expression_statement "uVar4 = 5;" (assignment_expression "uVar4 = 5" (identifier "uVar4") (= "=") (number_literal "5")) (; ";")) (} "}")))) (} "}"))) (} "}")))) (if_statement "if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar4;\n  }" (if "if") (parenthesized_expression "(local_20 == *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_20 == *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_20") (== "==") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n    return uVar4;\n  }" ({ "{") (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}"))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Unknown calling convention */

int function_1(void)

{
  long var_7;
  int var_3;
  int var_5;
  long var_1;
  type_1 taglen;
  type_2 T [16];
  
  var_7 = *(long *)(var_1 + 0x28);
  var_3 = var_2("kasumi");
  if (var_3 == -1) {
    var_5 = 2;
  }
  else {
    taglen = 4;
    var_5 = var_4(var_3,function_1::tests[0].K,0x10,function_1::tests[0].M,0x14,T,&taglen);
    if (var_5 == 0) {
      var_5 = var_6(T,taglen,function_1::tests[0].T,4,"F9",0);
      if (var_5 == 0) {
        taglen = 4;
        var_5 = var_4(var_3,function_1::tests[1].K,0x10,function_1::tests[1].M,0x69,T,&taglen);
        if (var_5 == 0) {
          var_5 = var_6(T,taglen,function_1::tests[1].T,4,"F9",1);
          if (var_5 != 0) {
            var_5 = 5;
          }
        }
      }
      else {
        var_5 = 5;
      }
    }
  }
  if (var_7 == *(long *)(var_1 + 0x28)) {
    return var_5;
  }
                    /* WARNING: Subroutine does not return */
  var_8();
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (sized_type_specifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (number_literal) (pointer_expression argument: (identifier)) (number_literal) (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (identifier)) (number_literal) (pointer_expression argument: (identifier)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (number_literal) (pointer_expression argument: (identifier)) (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (identifier)) (number_literal) (pointer_expression argument: (identifier)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_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 (return_statement (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))

ulong MASKED(void)

{
  int iVar1;
  int iVar2;
  uint uVar3;
  ulong uVar4;
  long in_FS_OFFSET;
  undefined8 local_40;
  undefined1 local_38 [24];
  long local_20;
  
  local_20 = *(long *)(in_FS_OFFSET + 0x28);
  iVar1 = find_cipher("kasumi");
  if (iVar1 == -1) {
    uVar4 = 2;
  }
  else {
    local_40 = 4;
    uVar4 = f9_memory(iVar1,&DAT_001bbae4,0x10,&DAT_001bbaf4,0x14,local_38,&local_40);
    if ((int)uVar4 == 0) {
      iVar2 = compare_testvector(local_38,local_40,&DAT_001bbb74,4,&DAT_001bbabf,0);
      if (iVar2 == 0) {
        local_40 = 4;
        uVar4 = f9_memory(iVar1,&DAT_001bbb7c,0x10,&DAT_001bbb8c,0x69,local_38);
        if ((int)uVar4 == 0) {
          uVar3 = compare_testvector(local_38,local_40,&DAT_001bbc0c,4,&DAT_001bbabf,1);
          uVar4 = (ulong)uVar3;
          if (uVar3 != 0) {
            uVar4 = 5;
          }
        }
      }
      else {
        uVar4 = 5;
      }
    }
  }
  if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {
    return uVar4;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}

