
int dsa_verify_hash_raw(void *r,void *s,uchar *hash,ulong hashlen,int *stat,dsa_key *key)

{
  int iVar1;
  int iVar2;
  ulong uVar3;
  long in_FS_OFFSET;
  void *w;
  void *v;
  void *u1;
  void *u2;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  if (r == (void *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24);
  }
  if (s == (void *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25);
  }
  if (stat == (int *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26);
  }
  if (key == (dsa_key *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27);
  }
  *stat = 0;
  iVar1 = ltc_init_multi(&w,&v,&u1,&u2,0);
  if (iVar1 != 0) goto LAB_0017b629;
  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(r,0);
  if (iVar1 == 1) {
    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(s,0);
    if (iVar1 != 1) goto LAB_0017b605;
    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,key->q);
    if (iVar1 != -1) goto LAB_0017b605;
    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(s,key->q);
    if (iVar1 != -1) goto LAB_0017b605;
    iVar2 = key->qord;
    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x118))(s,key->q,w);
    if (iVar1 == 0) {
      uVar3 = (long)iVar2;
      if (hashlen < (ulong)(long)iVar2) {
        uVar3 = hashlen;
      }
      iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(u1,hash,uVar3);
      if (iVar1 == 0) {
        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,w,key->q,u1);
        if (iVar1 == 0) {
          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(r,w,key->q,u2);
          if (iVar1 == 0) {
            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->g,u1,key->p,u1);
            if (iVar1 == 0) {
              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->y,u2,key->p,u2);
              if (iVar1 == 0) {
                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,u2,key->p,v);
                if (iVar1 == 0) {
                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(v,key->q,0,v);
                  if (iVar1 == 0) {
                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,v);
                    if (iVar2 == 0) {
                      *stat = 1;
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  else {
LAB_0017b605:
    iVar1 = 7;
  }
  ltc_deinit_multi(w,v,u1,u2,0);
LAB_0017b629:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return iVar1;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}



int dsa_verify_hash_raw(long param_1,long param_2,undefined8 param_3,ulong param_4,
                       undefined4 *param_5,long param_6)

{
  int iVar1;
  int iVar2;
  ulong uVar3;
  long in_FS_OFFSET;
  undefined8 local_60;
  undefined8 local_58;
  undefined8 local_50;
  undefined8 local_48;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24);
  }
  if (param_2 == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25);
  }
  if (param_5 == (undefined4 *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26);
  }
  if (param_6 == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27);
  }
  *param_5 = 0;
  iVar1 = ltc_init_multi(&local_60,&local_58,&local_50,&local_48,0);
  if (iVar1 != 0) goto LAB_0017b629;
  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_1,0);
  if (iVar1 == 1) {
    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_2,0);
    if (iVar1 != 1) goto LAB_0017b605;
    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,*(undefined8 *)(param_6 + 0x10));
    if (iVar1 != -1) goto LAB_0017b605;
    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_2,*(undefined8 *)(param_6 + 0x10));
    if (iVar1 != -1) goto LAB_0017b605;
    iVar2 = *(int *)(param_6 + 4);
    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x118))
                      (param_2,*(undefined8 *)(param_6 + 0x10),local_60);
    if (iVar1 == 0) {
      uVar3 = (long)iVar2;
      if (param_4 < (ulong)(long)iVar2) {
        uVar3 = param_4;
      }
      iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_50,param_3,uVar3);
      if (iVar1 == 0) {
        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))
                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50);
        if (iVar1 == 0) {
          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))
                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);
          if (iVar1 == 0) {
            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))
                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)
                               ,local_50);
            if (iVar1 == 0) {
              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))
                                (*(undefined8 *)(param_6 + 0x28),local_48,
                                 *(undefined8 *)(param_6 + 0x18),local_48);
              if (iVar1 == 0) {
                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))
                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);
                if (iVar1 == 0) {
                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))
                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);
                  if (iVar1 == 0) {
                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);
                    if (iVar2 == 0) {
                      *param_5 = 1;
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  else {
LAB_0017b605:
    iVar1 = 7;
  }
  ltc_deinit_multi(local_60,local_58,local_50,local_48,0);
LAB_0017b629:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return iVar1;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x48
MOV qword ptr [RSP],RDX
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x38],RAX
XOR EAX,EAX
TEST RDI,RDI
JZ 0x0017b857
MOV R12,RSI
TEST RSI,RSI
JZ 0x0017b83f
MOV RBX,R8
TEST R8,R8
JZ 0x0017b827
MOV R13,R9
TEST R9,R9
JZ 0x0017b80f
MOV dword ptr [R8],0x0
MOV RBP,RDI
MOV R14,RCX
XOR R8D,R8D
LEA RCX,[RSP + 0x30]
LEA RDX,[RSP + 0x28]
XOR EAX,EAX
LEA RSI,[RSP + 0x20]
LEA RDI,[RSP + 0x18]
CALL 0x001135b0
MOV R15D,EAX
TEST EAX,EAX
JNZ 0x0017b629
MOV RAX,qword ptr [0x001ddec0]
XOR ESI,ESI
MOV RDI,RBP
CALL qword ptr [RAX + 0x60]
CMP EAX,0x1
JZ 0x0017b650
MOV R15D,0x7
MOV RCX,qword ptr [RSP + 0x30]
MOV RDX,qword ptr [RSP + 0x28]
XOR R8D,R8D
XOR EAX,EAX
MOV RSI,qword ptr [RSP + 0x20]
MOV RDI,qword ptr [RSP + 0x18]
CALL 0x00113330
MOV RBX,qword ptr [RSP + 0x38]
XOR RBX,qword ptr FS:[0x28]
MOV EAX,R15D
JNZ 0x0017b86f
ADD RSP,0x48
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV R15,qword ptr [0x001ddec0]
XOR ESI,ESI
MOV RDI,R12
CALL qword ptr [R15 + 0x60]
CMP EAX,0x1
JNZ 0x0017b605
MOV RAX,qword ptr [0x001ddec0]
MOV RSI,qword ptr [R13 + 0x10]
MOV RDI,RBP
CALL qword ptr [RAX + 0x58]
CMP EAX,-0x1
JNZ 0x0017b605
MOV R15,qword ptr [0x001ddec0]
MOV RSI,qword ptr [R13 + 0x10]
MOV RDI,R12
CALL qword ptr [R15 + 0x58]
CMP EAX,-0x1
JNZ 0x0017b605
MOV EDX,dword ptr [R13 + 0x4]
MOV RDI,R12
MOV R12,qword ptr [0x001ddec0]
MOV RSI,qword ptr [R13 + 0x10]
MOV dword ptr [RSP + 0xc],EDX
MOV RDX,qword ptr [RSP + 0x18]
CALL qword ptr [R12 + 0x118]
MOV R15D,EAX
TEST EAX,EAX
JNZ 0x0017b60b
MOVSXD RDX,dword ptr [RSP + 0xc]
MOV RSI,qword ptr [RSP]
MOV RDI,qword ptr [RSP + 0x28]
CMP RDX,R14
CMOVA RDX,R14
MOV R14,qword ptr [0x001ddec0]
CALL qword ptr [R14 + 0xa0]
MOV R15D,EAX
TEST EAX,EAX
JNZ 0x0017b60b
MOV RDI,qword ptr [RSP + 0x28]
MOV RAX,qword ptr [0x001ddec0]
MOV RDX,qword ptr [R13 + 0x10]
MOV RSI,qword ptr [RSP + 0x18]
MOV RCX,RDI
CALL qword ptr [RAX + 0x108]
MOV R15D,EAX
TEST EAX,EAX
JNZ 0x0017b60b
MOV R15,qword ptr [0x001ddec0]
MOV RDX,qword ptr [R13 + 0x10]
MOV RDI,RBP
MOV RCX,qword ptr [RSP + 0x30]
MOV RSI,qword ptr [RSP + 0x18]
CALL qword ptr [R15 + 0x108]
MOV R15D,EAX
TEST EAX,EAX
JNZ 0x0017b60b
MOV RSI,qword ptr [RSP + 0x28]
MOV R12,qword ptr [0x001ddec0]
MOV RDX,qword ptr [R13 + 0x18]
MOV RDI,qword ptr [R13 + 0x8]
MOV RCX,RSI
CALL qword ptr [R12 + 0x140]
MOV R15D,EAX
TEST EAX,EAX
JNZ 0x0017b60b
MOV RSI,qword ptr [RSP + 0x30]
MOV R14,qword ptr [0x001ddec0]
MOV RDX,qword ptr [R13 + 0x18]
MOV RDI,qword ptr [R13 + 0x28]
MOV RCX,RSI
CALL qword ptr [R14 + 0x140]
MOV R15D,EAX
TEST EAX,EAX
JNZ 0x0017b60b
MOV RAX,qword ptr [0x001ddec0]
MOV RDX,qword ptr [R13 + 0x18]
MOV RCX,qword ptr [RSP + 0x20]
MOV RSI,qword ptr [RSP + 0x30]
MOV RDI,qword ptr [RSP + 0x28]
CALL qword ptr [RAX + 0x108]
MOV R15D,EAX
TEST EAX,EAX
JNZ 0x0017b60b
MOV RDI,qword ptr [RSP + 0x20]
MOV RSI,qword ptr [R13 + 0x10]
XOR EDX,EDX
MOV R13,qword ptr [0x001ddec0]
MOV RCX,RDI
CALL qword ptr [R13 + 0xe0]
MOV R15D,EAX
TEST EAX,EAX
JNZ 0x0017b60b
MOV RDI,RBP
MOV RBP,qword ptr [0x001ddec0]
MOV RSI,qword ptr [RSP + 0x20]
CALL qword ptr [RBP + 0x58]
TEST EAX,EAX
JNZ 0x0017b60b
MOV dword ptr [RBX],0x1
JMP 0x0017b60b
MOV EDX,0x27
LEA RSI,[0x1c5ffa]
LEA RDI,[0x1c5e5d]
CALL 0x00114270
MOV EDX,0x26
LEA RSI,[0x1c5ffa]
LEA RDI,[0x1aafac]
CALL 0x00114270
MOV EDX,0x25
LEA RSI,[0x1c5ffa]
LEA RDI,[0x1c33d5]
CALL 0x00114270
MOV EDX,0x24
LEA RSI,[0x1c5ffa]
LEA RDI,[0x1aa7c5]
CALL 0x00114270
CALL 0x00113880
(translation_unit "int dsa_verify_hash_raw(long param_1,long param_2,undefined8 param_3,ulong param_4,\n                       undefined4 *param_5,long param_6)\n\n{\n  int iVar1;\n  int iVar2;\n  ulong uVar3;\n  long in_FS_OFFSET;\n  undefined8 local_60;\n  undefined8 local_58;\n  undefined8 local_50;\n  undefined8 local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24);\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25);\n  }\n  if (param_5 == (undefined4 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26);\n  }\n  if (param_6 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27);\n  }\n  *param_5 = 0;\n  iVar1 = ltc_init_multi(&local_60,&local_58,&local_50,&local_48,0);\n  if (iVar1 != 0) goto LAB_0017b629;\n  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_1,0);\n  if (iVar1 == 1) {\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_2,0);\n    if (iVar1 != 1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,*(undefined8 *)(param_6 + 0x10));\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_2,*(undefined8 *)(param_6 + 0x10));\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar2 = *(int *)(param_6 + 4);\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x118))\n                      (param_2,*(undefined8 *)(param_6 + 0x10),local_60);\n    if (iVar1 == 0) {\n      uVar3 = (long)iVar2;\n      if (param_4 < (ulong)(long)iVar2) {\n        uVar3 = param_4;\n      }\n      iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_50,param_3,uVar3);\n      if (iVar1 == 0) {\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  else {\nLAB_0017b605:\n    iVar1 = 7;\n  }\n  ltc_deinit_multi(local_60,local_58,local_50,local_48,0);\nLAB_0017b629:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar1;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" (function_definition "int dsa_verify_hash_raw(long param_1,long param_2,undefined8 param_3,ulong param_4,\n                       undefined4 *param_5,long param_6)\n\n{\n  int iVar1;\n  int iVar2;\n  ulong uVar3;\n  long in_FS_OFFSET;\n  undefined8 local_60;\n  undefined8 local_58;\n  undefined8 local_50;\n  undefined8 local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24);\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25);\n  }\n  if (param_5 == (undefined4 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26);\n  }\n  if (param_6 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27);\n  }\n  *param_5 = 0;\n  iVar1 = ltc_init_multi(&local_60,&local_58,&local_50,&local_48,0);\n  if (iVar1 != 0) goto LAB_0017b629;\n  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_1,0);\n  if (iVar1 == 1) {\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_2,0);\n    if (iVar1 != 1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,*(undefined8 *)(param_6 + 0x10));\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_2,*(undefined8 *)(param_6 + 0x10));\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar2 = *(int *)(param_6 + 4);\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x118))\n                      (param_2,*(undefined8 *)(param_6 + 0x10),local_60);\n    if (iVar1 == 0) {\n      uVar3 = (long)iVar2;\n      if (param_4 < (ulong)(long)iVar2) {\n        uVar3 = param_4;\n      }\n      iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_50,param_3,uVar3);\n      if (iVar1 == 0) {\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  else {\nLAB_0017b605:\n    iVar1 = 7;\n  }\n  ltc_deinit_multi(local_60,local_58,local_50,local_48,0);\nLAB_0017b629:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar1;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (function_declarator "dsa_verify_hash_raw(long param_1,long param_2,undefined8 param_3,ulong param_4,\n                       undefined4 *param_5,long param_6)" identifier (parameter_list "(long param_1,long param_2,undefined8 param_3,ulong param_4,\n                       undefined4 *param_5,long param_6)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "ulong param_4" type_identifier identifier) , (parameter_declaration "undefined4 *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "long param_6" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  ulong uVar3;\n  long in_FS_OFFSET;\n  undefined8 local_60;\n  undefined8 local_58;\n  undefined8 local_50;\n  undefined8 local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24);\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25);\n  }\n  if (param_5 == (undefined4 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26);\n  }\n  if (param_6 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27);\n  }\n  *param_5 = 0;\n  iVar1 = ltc_init_multi(&local_60,&local_58,&local_50,&local_48,0);\n  if (iVar1 != 0) goto LAB_0017b629;\n  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_1,0);\n  if (iVar1 == 1) {\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_2,0);\n    if (iVar1 != 1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,*(undefined8 *)(param_6 + 0x10));\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_2,*(undefined8 *)(param_6 + 0x10));\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar2 = *(int *)(param_6 + 4);\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x118))\n                      (param_2,*(undefined8 *)(param_6 + 0x10),local_60);\n    if (iVar1 == 0) {\n      uVar3 = (long)iVar2;\n      if (param_4 < (ulong)(long)iVar2) {\n        uVar3 = param_4;\n      }\n      iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_50,param_3,uVar3);\n      if (iVar1 == 0) {\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  else {\nLAB_0017b605:\n    iVar1 = 7;\n  }\n  ltc_deinit_multi(local_60,local_58,local_50,local_48,0);\nLAB_0017b629:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar1;\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 "ulong uVar3;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_60;" type_identifier identifier ;) (declaration "undefined8 local_58;" type_identifier identifier ;) (declaration "undefined8 local_50;" type_identifier identifier ;) (declaration "undefined8 local_48;" type_identifier identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_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) ))))) ;) (if_statement "if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24);\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24);\n  }" { comment (expression_statement "crypt_argchk("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24);" (call_expression "crypt_argchk("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24)" identifier (argument_list "("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24)" ( (string_literal ""r != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_verify_hash.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25);\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25);\n  }" { comment (expression_statement "crypt_argchk("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25);" (call_expression "crypt_argchk("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25)" identifier (argument_list "("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25)" ( (string_literal ""s != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_verify_hash.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_5 == (undefined4 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26);\n  }" if (parenthesized_expression "(param_5 == (undefined4 *)0x0)" ( (binary_expression "param_5 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26);\n  }" { comment (expression_statement "crypt_argchk("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26);" (call_expression "crypt_argchk("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26)" identifier (argument_list "("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26)" ( (string_literal ""stat != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_verify_hash.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_6 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27);\n  }" if (parenthesized_expression "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27);\n  }" { comment (expression_statement "crypt_argchk("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27);" (call_expression "crypt_argchk("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27)" identifier (argument_list "("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27)" ( (string_literal ""key != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_verify_hash.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" * identifier) = number_literal) ;) (expression_statement "iVar1 = ltc_init_multi(&local_60,&local_58,&local_50,&local_48,0);" (assignment_expression "iVar1 = ltc_init_multi(&local_60,&local_58,&local_50,&local_48,0)" identifier = (call_expression "ltc_init_multi(&local_60,&local_58,&local_50,&local_48,0)" identifier (argument_list "(&local_60,&local_58,&local_50,&local_48,0)" ( (pointer_expression "&local_60" & identifier) , (pointer_expression "&local_58" & identifier) , (pointer_expression "&local_50" & identifier) , (pointer_expression "&local_48" & identifier) , number_literal )))) ;) (if_statement "if (iVar1 != 0) goto LAB_0017b629;" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0017b629;" goto statement_identifier ;)) (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_1,0);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_1,0)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_1,0)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x60))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x60)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x60)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x60)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x60" identifier + number_literal) ))))) )) (argument_list "(param_1,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar1 == 1) {\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_2,0);\n    if (iVar1 != 1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,*(undefined8 *)(param_6 + 0x10));\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_2,*(undefined8 *)(param_6 + 0x10));\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar2 = *(int *)(param_6 + 4);\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x118))\n                      (param_2,*(undefined8 *)(param_6 + 0x10),local_60);\n    if (iVar1 == 0) {\n      uVar3 = (long)iVar2;\n      if (param_4 < (ulong)(long)iVar2) {\n        uVar3 = param_4;\n      }\n      iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_50,param_3,uVar3);\n      if (iVar1 == 0) {\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  else {\nLAB_0017b605:\n    iVar1 = 7;\n  }" if (parenthesized_expression "(iVar1 == 1)" ( (binary_expression "iVar1 == 1" identifier == number_literal) )) (compound_statement "{\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_2,0);\n    if (iVar1 != 1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,*(undefined8 *)(param_6 + 0x10));\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_2,*(undefined8 *)(param_6 + 0x10));\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar2 = *(int *)(param_6 + 4);\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x118))\n                      (param_2,*(undefined8 *)(param_6 + 0x10),local_60);\n    if (iVar1 == 0) {\n      uVar3 = (long)iVar2;\n      if (param_4 < (ulong)(long)iVar2) {\n        uVar3 = param_4;\n      }\n      iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_50,param_3,uVar3);\n      if (iVar1 == 0) {\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }" { (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_2,0);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_2,0)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_2,0)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x60))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x60)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x60)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x60)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x60" identifier + number_literal) ))))) )) (argument_list "(param_2,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar1 != 1) goto LAB_0017b605;" if (parenthesized_expression "(iVar1 != 1)" ( (binary_expression "iVar1 != 1" identifier != number_literal) )) (goto_statement "goto LAB_0017b605;" goto statement_identifier ;)) (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,*(undefined8 *)(param_6 + 0x10));" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,*(undefined8 *)(param_6 + 0x10))" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,*(undefined8 *)(param_6 + 0x10))" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x58)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x58)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x58)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x58" identifier + number_literal) ))))) )) (argument_list "(param_1,*(undefined8 *)(param_6 + 0x10))" ( identifier , (pointer_expression "*(undefined8 *)(param_6 + 0x10)" * (cast_expression "(undefined8 *)(param_6 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x10)" ( (binary_expression "param_6 + 0x10" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar1 != -1) goto LAB_0017b605;" if (parenthesized_expression "(iVar1 != -1)" ( (binary_expression "iVar1 != -1" identifier != number_literal) )) (goto_statement "goto LAB_0017b605;" goto statement_identifier ;)) (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_2,*(undefined8 *)(param_6 + 0x10));" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_2,*(undefined8 *)(param_6 + 0x10))" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_2,*(undefined8 *)(param_6 + 0x10))" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x58)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x58)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x58)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x58" identifier + number_literal) ))))) )) (argument_list "(param_2,*(undefined8 *)(param_6 + 0x10))" ( identifier , (pointer_expression "*(undefined8 *)(param_6 + 0x10)" * (cast_expression "(undefined8 *)(param_6 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x10)" ( (binary_expression "param_6 + 0x10" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar1 != -1) goto LAB_0017b605;" if (parenthesized_expression "(iVar1 != -1)" ( (binary_expression "iVar1 != -1" identifier != number_literal) )) (goto_statement "goto LAB_0017b605;" goto statement_identifier ;)) (expression_statement "iVar2 = *(int *)(param_6 + 4);" (assignment_expression "iVar2 = *(int *)(param_6 + 4)" identifier = (pointer_expression "*(int *)(param_6 + 4)" * (cast_expression "(int *)(param_6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 4)" ( (binary_expression "param_6 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x118))\n                      (param_2,*(undefined8 *)(param_6 + 0x10),local_60);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x118))\n                      (param_2,*(undefined8 *)(param_6 + 0x10),local_60)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x118))\n                      (param_2,*(undefined8 *)(param_6 + 0x10),local_60)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x118))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x118)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x118)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x118)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x118)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x118" identifier + number_literal) ))))) )) (argument_list "(param_2,*(undefined8 *)(param_6 + 0x10),local_60)" ( identifier , (pointer_expression "*(undefined8 *)(param_6 + 0x10)" * (cast_expression "(undefined8 *)(param_6 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x10)" ( (binary_expression "param_6 + 0x10" identifier + number_literal) )))) , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n      uVar3 = (long)iVar2;\n      if (param_4 < (ulong)(long)iVar2) {\n        uVar3 = param_4;\n      }\n      iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_50,param_3,uVar3);\n      if (iVar1 == 0) {\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar3 = (long)iVar2;\n      if (param_4 < (ulong)(long)iVar2) {\n        uVar3 = param_4;\n      }\n      iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_50,param_3,uVar3);\n      if (iVar1 == 0) {\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }" { (expression_statement "uVar3 = (long)iVar2;" (assignment_expression "uVar3 = (long)iVar2" identifier = (cast_expression "(long)iVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (if_statement "if (param_4 < (ulong)(long)iVar2) {\n        uVar3 = param_4;\n      }" if (parenthesized_expression "(param_4 < (ulong)(long)iVar2)" ( (binary_expression "param_4 < (ulong)(long)iVar2" identifier < (cast_expression "(ulong)(long)iVar2" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(long)iVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) )) (compound_statement "{\n        uVar3 = param_4;\n      }" { (expression_statement "uVar3 = param_4;" (assignment_expression "uVar3 = param_4" identifier = identifier) ;) })) (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_50,param_3,uVar3);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_50,param_3,uVar3)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_50,param_3,uVar3)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xa0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xa0" identifier + number_literal) ))))) )) (argument_list "(local_50,param_3,uVar3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" { (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x108))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x108)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x108)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x108)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x108)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x108" identifier + number_literal) ))))) )) (argument_list "(local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50)" ( identifier , identifier , (pointer_expression "*(undefined8 *)(param_6 + 0x10)" * (cast_expression "(undefined8 *)(param_6 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x10)" ( (binary_expression "param_6 + 0x10" identifier + number_literal) )))) , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" { (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x108))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x108)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x108)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x108)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x108)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x108" identifier + number_literal) ))))) )) (argument_list "(param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48)" ( identifier , identifier , (pointer_expression "*(undefined8 *)(param_6 + 0x10)" * (cast_expression "(undefined8 *)(param_6 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x10)" ( (binary_expression "param_6 + 0x10" identifier + number_literal) )))) , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }" { (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x140))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x140)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x140)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x140)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x140)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x140" identifier + number_literal) ))))) )) (argument_list "(*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50)" ( (pointer_expression "*(undefined8 *)(param_6 + 8)" * (cast_expression "(undefined8 *)(param_6 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 8)" ( (binary_expression "param_6 + 8" identifier + number_literal) )))) , identifier , (pointer_expression "*(undefined8 *)(param_6 + 0x18)" * (cast_expression "(undefined8 *)(param_6 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x18)" ( (binary_expression "param_6 + 0x18" identifier + number_literal) )))) , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }" { (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x140))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x140)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x140)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x140)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x140)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x140" identifier + number_literal) ))))) )) (argument_list "(*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48)" ( (pointer_expression "*(undefined8 *)(param_6 + 0x28)" * (cast_expression "(undefined8 *)(param_6 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x28)" ( (binary_expression "param_6 + 0x28" identifier + number_literal) )))) , identifier , (pointer_expression "*(undefined8 *)(param_6 + 0x18)" * (cast_expression "(undefined8 *)(param_6 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x18)" ( (binary_expression "param_6 + 0x18" identifier + number_literal) )))) , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }" { (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x108))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x108)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x108)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x108)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x108)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x108" identifier + number_literal) ))))) )) (argument_list "(local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58)" ( identifier , identifier , (pointer_expression "*(undefined8 *)(param_6 + 0x18)" * (cast_expression "(undefined8 *)(param_6 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x18)" ( (binary_expression "param_6 + 0x18" identifier + number_literal) )))) , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }" { (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xe0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xe0" identifier + number_literal) ))))) )) (argument_list "(local_58,*(undefined8 *)(param_6 + 0x10),0,local_58)" ( identifier , (pointer_expression "*(undefined8 *)(param_6 + 0x10)" * (cast_expression "(undefined8 *)(param_6 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x10)" ( (binary_expression "param_6 + 0x10" identifier + number_literal) )))) , number_literal , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }" { (expression_statement "iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);" (assignment_expression "iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x58)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x58)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x58)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x58" identifier + number_literal) ))))) )) (argument_list "(param_1,local_58)" ( identifier , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                      *param_5 = 1;\n                    }" { (expression_statement "*param_5 = 1;" (assignment_expression "*param_5 = 1" (pointer_expression "*param_5" * identifier) = number_literal) ;) })) })) })) })) })) })) })) })) })) }) (else_clause "else {\nLAB_0017b605:\n    iVar1 = 7;\n  }" else (compound_statement "{\nLAB_0017b605:\n    iVar1 = 7;\n  }" { (labeled_statement "LAB_0017b605:\n    iVar1 = 7;" statement_identifier : (expression_statement "iVar1 = 7;" (assignment_expression "iVar1 = 7" identifier = number_literal) ;)) }))) (expression_statement "ltc_deinit_multi(local_60,local_58,local_50,local_48,0);" (call_expression "ltc_deinit_multi(local_60,local_58,local_50,local_48,0)" identifier (argument_list "(local_60,local_58,local_50,local_48,0)" ( identifier , identifier , identifier , identifier , number_literal ))) ;) (labeled_statement "LAB_0017b629:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar1;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar1;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_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    return iVar1;\n  }" { (return_statement "return iVar1;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "int dsa_verify_hash_raw(void *r,void *s,uchar *hash,ulong hashlen,int *stat,dsa_key *key)\n\n{\n  int iVar1;\n  int iVar2;\n  ulong uVar3;\n  long in_FS_OFFSET;\n  void *w;\n  void *v;\n  void *u1;\n  void *u2;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (r == (void *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24);\n  }\n  if (s == (void *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25);\n  }\n  if (stat == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26);\n  }\n  if (key == (dsa_key *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27);\n  }\n  *stat = 0;\n  iVar1 = ltc_init_multi(&w,&v,&u1,&u2,0);\n  if (iVar1 != 0) goto LAB_0017b629;\n  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(r,0);\n  if (iVar1 == 1) {\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(s,0);\n    if (iVar1 != 1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,key->q);\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(s,key->q);\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar2 = key->qord;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x118))(s,key->q,w);\n    if (iVar1 == 0) {\n      uVar3 = (long)iVar2;\n      if (hashlen < (ulong)(long)iVar2) {\n        uVar3 = hashlen;\n      }\n      iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(u1,hash,uVar3);\n      if (iVar1 == 0) {\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,w,key->q,u1);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(r,w,key->q,u2);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->g,u1,key->p,u1);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->y,u2,key->p,u2);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,u2,key->p,v);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(v,key->q,0,v);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,v);\n                    if (iVar2 == 0) {\n                      *stat = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  else {\nLAB_0017b605:\n    iVar1 = 7;\n  }\n  ltc_deinit_multi(w,v,u1,u2,0);\nLAB_0017b629:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar1;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" (function_definition "int dsa_verify_hash_raw(void *r,void *s,uchar *hash,ulong hashlen,int *stat,dsa_key *key)\n\n{\n  int iVar1;\n  int iVar2;\n  ulong uVar3;\n  long in_FS_OFFSET;\n  void *w;\n  void *v;\n  void *u1;\n  void *u2;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (r == (void *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24);\n  }\n  if (s == (void *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25);\n  }\n  if (stat == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26);\n  }\n  if (key == (dsa_key *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27);\n  }\n  *stat = 0;\n  iVar1 = ltc_init_multi(&w,&v,&u1,&u2,0);\n  if (iVar1 != 0) goto LAB_0017b629;\n  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(r,0);\n  if (iVar1 == 1) {\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(s,0);\n    if (iVar1 != 1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,key->q);\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(s,key->q);\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar2 = key->qord;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x118))(s,key->q,w);\n    if (iVar1 == 0) {\n      uVar3 = (long)iVar2;\n      if (hashlen < (ulong)(long)iVar2) {\n        uVar3 = hashlen;\n      }\n      iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(u1,hash,uVar3);\n      if (iVar1 == 0) {\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,w,key->q,u1);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(r,w,key->q,u2);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->g,u1,key->p,u1);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->y,u2,key->p,u2);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,u2,key->p,v);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(v,key->q,0,v);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,v);\n                    if (iVar2 == 0) {\n                      *stat = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  else {\nLAB_0017b605:\n    iVar1 = 7;\n  }\n  ltc_deinit_multi(w,v,u1,u2,0);\nLAB_0017b629:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar1;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (function_declarator "dsa_verify_hash_raw(void *r,void *s,uchar *hash,ulong hashlen,int *stat,dsa_key *key)" identifier (parameter_list "(void *r,void *s,uchar *hash,ulong hashlen,int *stat,dsa_key *key)" ( (parameter_declaration "void *r" primitive_type (pointer_declarator "*r" * identifier)) , (parameter_declaration "void *s" primitive_type (pointer_declarator "*s" * identifier)) , (parameter_declaration "uchar *hash" type_identifier (pointer_declarator "*hash" * identifier)) , (parameter_declaration "ulong hashlen" type_identifier identifier) , (parameter_declaration "int *stat" primitive_type (pointer_declarator "*stat" * identifier)) , (parameter_declaration "dsa_key *key" type_identifier (pointer_declarator "*key" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  ulong uVar3;\n  long in_FS_OFFSET;\n  void *w;\n  void *v;\n  void *u1;\n  void *u2;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (r == (void *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24);\n  }\n  if (s == (void *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25);\n  }\n  if (stat == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26);\n  }\n  if (key == (dsa_key *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27);\n  }\n  *stat = 0;\n  iVar1 = ltc_init_multi(&w,&v,&u1,&u2,0);\n  if (iVar1 != 0) goto LAB_0017b629;\n  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(r,0);\n  if (iVar1 == 1) {\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(s,0);\n    if (iVar1 != 1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,key->q);\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(s,key->q);\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar2 = key->qord;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x118))(s,key->q,w);\n    if (iVar1 == 0) {\n      uVar3 = (long)iVar2;\n      if (hashlen < (ulong)(long)iVar2) {\n        uVar3 = hashlen;\n      }\n      iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(u1,hash,uVar3);\n      if (iVar1 == 0) {\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,w,key->q,u1);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(r,w,key->q,u2);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->g,u1,key->p,u1);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->y,u2,key->p,u2);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,u2,key->p,v);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(v,key->q,0,v);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,v);\n                    if (iVar2 == 0) {\n                      *stat = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  else {\nLAB_0017b605:\n    iVar1 = 7;\n  }\n  ltc_deinit_multi(w,v,u1,u2,0);\nLAB_0017b629:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar1;\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 "ulong uVar3;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "void *w;" primitive_type (pointer_declarator "*w" * identifier) ;) (declaration "void *v;" primitive_type (pointer_declarator "*v" * identifier) ;) (declaration "void *u1;" primitive_type (pointer_declarator "*u1" * identifier) ;) (declaration "void *u2;" primitive_type (pointer_declarator "*u2" * identifier) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_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) ))))) ;) (if_statement "if (r == (void *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24);\n  }" if (parenthesized_expression "(r == (void *)0x0)" ( (binary_expression "r == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24);\n  }" { comment (expression_statement "crypt_argchk("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24);" (call_expression "crypt_argchk("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24)" identifier (argument_list "("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24)" ( (string_literal ""r != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_verify_hash.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (s == (void *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25);\n  }" if (parenthesized_expression "(s == (void *)0x0)" ( (binary_expression "s == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25);\n  }" { comment (expression_statement "crypt_argchk("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25);" (call_expression "crypt_argchk("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25)" identifier (argument_list "("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25)" ( (string_literal ""s != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_verify_hash.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (stat == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26);\n  }" if (parenthesized_expression "(stat == (int *)0x0)" ( (binary_expression "stat == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26);\n  }" { comment (expression_statement "crypt_argchk("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26);" (call_expression "crypt_argchk("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26)" identifier (argument_list "("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26)" ( (string_literal ""stat != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_verify_hash.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (key == (dsa_key *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27);\n  }" if (parenthesized_expression "(key == (dsa_key *)0x0)" ( (binary_expression "key == (dsa_key *)0x0" identifier == (cast_expression "(dsa_key *)0x0" ( (type_descriptor "dsa_key *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27);\n  }" { comment (expression_statement "crypt_argchk("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27);" (call_expression "crypt_argchk("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27)" identifier (argument_list "("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27)" ( (string_literal ""key != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_verify_hash.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "*stat = 0;" (assignment_expression "*stat = 0" (pointer_expression "*stat" * identifier) = number_literal) ;) (expression_statement "iVar1 = ltc_init_multi(&w,&v,&u1,&u2,0);" (assignment_expression "iVar1 = ltc_init_multi(&w,&v,&u1,&u2,0)" identifier = (call_expression "ltc_init_multi(&w,&v,&u1,&u2,0)" identifier (argument_list "(&w,&v,&u1,&u2,0)" ( (pointer_expression "&w" & identifier) , (pointer_expression "&v" & identifier) , (pointer_expression "&u1" & identifier) , (pointer_expression "&u2" & identifier) , number_literal )))) ;) (if_statement "if (iVar1 != 0) goto LAB_0017b629;" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0017b629;" goto statement_identifier ;)) (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(r,0);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(r,0)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(r,0)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x60))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x60)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x60)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x60)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x60" identifier + number_literal) ))))) )) (argument_list "(r,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar1 == 1) {\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(s,0);\n    if (iVar1 != 1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,key->q);\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(s,key->q);\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar2 = key->qord;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x118))(s,key->q,w);\n    if (iVar1 == 0) {\n      uVar3 = (long)iVar2;\n      if (hashlen < (ulong)(long)iVar2) {\n        uVar3 = hashlen;\n      }\n      iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(u1,hash,uVar3);\n      if (iVar1 == 0) {\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,w,key->q,u1);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(r,w,key->q,u2);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->g,u1,key->p,u1);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->y,u2,key->p,u2);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,u2,key->p,v);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(v,key->q,0,v);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,v);\n                    if (iVar2 == 0) {\n                      *stat = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  else {\nLAB_0017b605:\n    iVar1 = 7;\n  }" if (parenthesized_expression "(iVar1 == 1)" ( (binary_expression "iVar1 == 1" identifier == number_literal) )) (compound_statement "{\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(s,0);\n    if (iVar1 != 1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,key->q);\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(s,key->q);\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar2 = key->qord;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x118))(s,key->q,w);\n    if (iVar1 == 0) {\n      uVar3 = (long)iVar2;\n      if (hashlen < (ulong)(long)iVar2) {\n        uVar3 = hashlen;\n      }\n      iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(u1,hash,uVar3);\n      if (iVar1 == 0) {\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,w,key->q,u1);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(r,w,key->q,u2);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->g,u1,key->p,u1);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->y,u2,key->p,u2);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,u2,key->p,v);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(v,key->q,0,v);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,v);\n                    if (iVar2 == 0) {\n                      *stat = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }" { (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(s,0);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(s,0)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(s,0)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x60))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x60)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x60)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x60)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x60" identifier + number_literal) ))))) )) (argument_list "(s,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar1 != 1) goto LAB_0017b605;" if (parenthesized_expression "(iVar1 != 1)" ( (binary_expression "iVar1 != 1" identifier != number_literal) )) (goto_statement "goto LAB_0017b605;" goto statement_identifier ;)) (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,key->q);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,key->q)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,key->q)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x58)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x58)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x58)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x58" identifier + number_literal) ))))) )) (argument_list "(r,key->q)" ( identifier , (field_expression "key->q" identifier -> field_identifier) )))) ;) (if_statement "if (iVar1 != -1) goto LAB_0017b605;" if (parenthesized_expression "(iVar1 != -1)" ( (binary_expression "iVar1 != -1" identifier != number_literal) )) (goto_statement "goto LAB_0017b605;" goto statement_identifier ;)) (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(s,key->q);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(s,key->q)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(s,key->q)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x58)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x58)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x58)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x58" identifier + number_literal) ))))) )) (argument_list "(s,key->q)" ( identifier , (field_expression "key->q" identifier -> field_identifier) )))) ;) (if_statement "if (iVar1 != -1) goto LAB_0017b605;" if (parenthesized_expression "(iVar1 != -1)" ( (binary_expression "iVar1 != -1" identifier != number_literal) )) (goto_statement "goto LAB_0017b605;" goto statement_identifier ;)) (expression_statement "iVar2 = key->qord;" (assignment_expression "iVar2 = key->qord" identifier = (field_expression "key->qord" identifier -> field_identifier)) ;) (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x118))(s,key->q,w);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x118))(s,key->q,w)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x118))(s,key->q,w)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x118))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x118)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x118)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x118)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x118)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x118" identifier + number_literal) ))))) )) (argument_list "(s,key->q,w)" ( identifier , (field_expression "key->q" identifier -> field_identifier) , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n      uVar3 = (long)iVar2;\n      if (hashlen < (ulong)(long)iVar2) {\n        uVar3 = hashlen;\n      }\n      iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(u1,hash,uVar3);\n      if (iVar1 == 0) {\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,w,key->q,u1);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(r,w,key->q,u2);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->g,u1,key->p,u1);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->y,u2,key->p,u2);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,u2,key->p,v);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(v,key->q,0,v);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,v);\n                    if (iVar2 == 0) {\n                      *stat = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar3 = (long)iVar2;\n      if (hashlen < (ulong)(long)iVar2) {\n        uVar3 = hashlen;\n      }\n      iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(u1,hash,uVar3);\n      if (iVar1 == 0) {\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,w,key->q,u1);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(r,w,key->q,u2);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->g,u1,key->p,u1);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->y,u2,key->p,u2);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,u2,key->p,v);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(v,key->q,0,v);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,v);\n                    if (iVar2 == 0) {\n                      *stat = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }" { (expression_statement "uVar3 = (long)iVar2;" (assignment_expression "uVar3 = (long)iVar2" identifier = (cast_expression "(long)iVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (if_statement "if (hashlen < (ulong)(long)iVar2) {\n        uVar3 = hashlen;\n      }" if (parenthesized_expression "(hashlen < (ulong)(long)iVar2)" ( (binary_expression "hashlen < (ulong)(long)iVar2" identifier < (cast_expression "(ulong)(long)iVar2" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(long)iVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) )) (compound_statement "{\n        uVar3 = hashlen;\n      }" { (expression_statement "uVar3 = hashlen;" (assignment_expression "uVar3 = hashlen" identifier = identifier) ;) })) (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(u1,hash,uVar3);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(u1,hash,uVar3)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(u1,hash,uVar3)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xa0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xa0" identifier + number_literal) ))))) )) (argument_list "(u1,hash,uVar3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,w,key->q,u1);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(r,w,key->q,u2);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->g,u1,key->p,u1);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->y,u2,key->p,u2);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,u2,key->p,v);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(v,key->q,0,v);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,v);\n                    if (iVar2 == 0) {\n                      *stat = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,w,key->q,u1);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(r,w,key->q,u2);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->g,u1,key->p,u1);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->y,u2,key->p,u2);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,u2,key->p,v);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(v,key->q,0,v);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,v);\n                    if (iVar2 == 0) {\n                      *stat = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" { (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,w,key->q,u1);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,w,key->q,u1)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,w,key->q,u1)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x108))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x108)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x108)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x108)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x108)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x108" identifier + number_literal) ))))) )) (argument_list "(u1,w,key->q,u1)" ( identifier , identifier , (field_expression "key->q" identifier -> field_identifier) , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(r,w,key->q,u2);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->g,u1,key->p,u1);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->y,u2,key->p,u2);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,u2,key->p,v);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(v,key->q,0,v);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,v);\n                    if (iVar2 == 0) {\n                      *stat = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(r,w,key->q,u2);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->g,u1,key->p,u1);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->y,u2,key->p,u2);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,u2,key->p,v);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(v,key->q,0,v);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,v);\n                    if (iVar2 == 0) {\n                      *stat = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" { (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(r,w,key->q,u2);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(r,w,key->q,u2)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(r,w,key->q,u2)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x108))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x108)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x108)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x108)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x108)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x108" identifier + number_literal) ))))) )) (argument_list "(r,w,key->q,u2)" ( identifier , identifier , (field_expression "key->q" identifier -> field_identifier) , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->g,u1,key->p,u1);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->y,u2,key->p,u2);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,u2,key->p,v);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(v,key->q,0,v);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,v);\n                    if (iVar2 == 0) {\n                      *stat = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->g,u1,key->p,u1);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->y,u2,key->p,u2);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,u2,key->p,v);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(v,key->q,0,v);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,v);\n                    if (iVar2 == 0) {\n                      *stat = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }" { (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->g,u1,key->p,u1);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->g,u1,key->p,u1)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->g,u1,key->p,u1)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x140))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x140)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x140)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x140)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x140)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x140" identifier + number_literal) ))))) )) (argument_list "(key->g,u1,key->p,u1)" ( (field_expression "key->g" identifier -> field_identifier) , identifier , (field_expression "key->p" identifier -> field_identifier) , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->y,u2,key->p,u2);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,u2,key->p,v);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(v,key->q,0,v);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,v);\n                    if (iVar2 == 0) {\n                      *stat = 1;\n                    }\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->y,u2,key->p,u2);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,u2,key->p,v);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(v,key->q,0,v);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,v);\n                    if (iVar2 == 0) {\n                      *stat = 1;\n                    }\n                  }\n                }\n              }\n            }" { (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->y,u2,key->p,u2);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->y,u2,key->p,u2)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(key->y,u2,key->p,u2)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x140))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x140)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x140)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x140)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x140)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x140" identifier + number_literal) ))))) )) (argument_list "(key->y,u2,key->p,u2)" ( (field_expression "key->y" identifier -> field_identifier) , identifier , (field_expression "key->p" identifier -> field_identifier) , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,u2,key->p,v);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(v,key->q,0,v);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,v);\n                    if (iVar2 == 0) {\n                      *stat = 1;\n                    }\n                  }\n                }\n              }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,u2,key->p,v);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(v,key->q,0,v);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,v);\n                    if (iVar2 == 0) {\n                      *stat = 1;\n                    }\n                  }\n                }\n              }" { (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,u2,key->p,v);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,u2,key->p,v)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x108))(u1,u2,key->p,v)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x108))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x108)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x108)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x108)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x108)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x108" identifier + number_literal) ))))) )) (argument_list "(u1,u2,key->p,v)" ( identifier , identifier , (field_expression "key->p" identifier -> field_identifier) , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(v,key->q,0,v);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,v);\n                    if (iVar2 == 0) {\n                      *stat = 1;\n                    }\n                  }\n                }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(v,key->q,0,v);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,v);\n                    if (iVar2 == 0) {\n                      *stat = 1;\n                    }\n                  }\n                }" { (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(v,key->q,0,v);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(v,key->q,0,v)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(v,key->q,0,v)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xe0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xe0" identifier + number_literal) ))))) )) (argument_list "(v,key->q,0,v)" ( identifier , (field_expression "key->q" identifier -> field_identifier) , number_literal , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,v);\n                    if (iVar2 == 0) {\n                      *stat = 1;\n                    }\n                  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,v);\n                    if (iVar2 == 0) {\n                      *stat = 1;\n                    }\n                  }" { (expression_statement "iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,v);" (assignment_expression "iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,v)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(r,v)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x58)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x58)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x58)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x58" identifier + number_literal) ))))) )) (argument_list "(r,v)" ( identifier , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n                      *stat = 1;\n                    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                      *stat = 1;\n                    }" { (expression_statement "*stat = 1;" (assignment_expression "*stat = 1" (pointer_expression "*stat" * identifier) = number_literal) ;) })) })) })) })) })) })) })) })) })) }) (else_clause "else {\nLAB_0017b605:\n    iVar1 = 7;\n  }" else (compound_statement "{\nLAB_0017b605:\n    iVar1 = 7;\n  }" { (labeled_statement "LAB_0017b605:\n    iVar1 = 7;" statement_identifier : (expression_statement "iVar1 = 7;" (assignment_expression "iVar1 = 7" identifier = number_literal) ;)) }))) (expression_statement "ltc_deinit_multi(w,v,u1,u2,0);" (call_expression "ltc_deinit_multi(w,v,u1,u2,0)" identifier (argument_list "(w,v,u1,u2,0)" ( identifier , identifier , identifier , identifier , number_literal ))) ;) (labeled_statement "LAB_0017b629:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar1;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar1;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_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    return iVar1;\n  }" { (return_statement "return iVar1;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "int dsa_verify_hash_raw(long param_1,long param_2,undefined8 param_3,ulong param_4,\n                       undefined4 *param_5,long param_6)\n\n{\n  int iVar1;\n  int iVar2;\n  ulong uVar3;\n  long in_FS_OFFSET;\n  undefined8 local_60;\n  undefined8 local_58;\n  undefined8 local_50;\n  undefined8 local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    \n    crypt_argchk("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24);\n  }\n  if (param_2 == 0) {\n                    \n    crypt_argchk("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25);\n  }\n  if (param_5 == (undefined4 *)0x0) {\n                    \n    crypt_argchk("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26);\n  }\n  if (param_6 == 0) {\n                    \n    crypt_argchk("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27);\n  }\n  *param_5 = 0;\n  iVar1 = ltc_init_multi(&local_60,&local_58,&local_50,&local_48,0);\n  if (iVar1 != 0) goto LAB_0017b629;\n  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_1,0);\n  if (iVar1 == 1) {\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_2,0);\n    if (iVar1 != 1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,*(undefined8 *)(param_6 + 0x10));\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_2,*(undefined8 *)(param_6 + 0x10));\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar2 = *(int *)(param_6 + 4);\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x118))\n                      (param_2,*(undefined8 *)(param_6 + 0x10),local_60);\n    if (iVar1 == 0) {\n      uVar3 = (long)iVar2;\n      if (param_4 < (ulong)(long)iVar2) {\n        uVar3 = param_4;\n      }\n      iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_50,param_3,uVar3);\n      if (iVar1 == 0) {\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  else {\nLAB_0017b605:\n    iVar1 = 7;\n  }\n  ltc_deinit_multi(local_60,local_58,local_50,local_48,0);\nLAB_0017b629:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar1;\n  }\n                    \n  __stack_chk_fail();\n}\n\n" (function_definition "int dsa_verify_hash_raw(long param_1,long param_2,undefined8 param_3,ulong param_4,\n                       undefined4 *param_5,long param_6)\n\n{\n  int iVar1;\n  int iVar2;\n  ulong uVar3;\n  long in_FS_OFFSET;\n  undefined8 local_60;\n  undefined8 local_58;\n  undefined8 local_50;\n  undefined8 local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    \n    crypt_argchk("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24);\n  }\n  if (param_2 == 0) {\n                    \n    crypt_argchk("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25);\n  }\n  if (param_5 == (undefined4 *)0x0) {\n                    \n    crypt_argchk("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26);\n  }\n  if (param_6 == 0) {\n                    \n    crypt_argchk("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27);\n  }\n  *param_5 = 0;\n  iVar1 = ltc_init_multi(&local_60,&local_58,&local_50,&local_48,0);\n  if (iVar1 != 0) goto LAB_0017b629;\n  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_1,0);\n  if (iVar1 == 1) {\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_2,0);\n    if (iVar1 != 1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,*(undefined8 *)(param_6 + 0x10));\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_2,*(undefined8 *)(param_6 + 0x10));\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar2 = *(int *)(param_6 + 4);\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x118))\n                      (param_2,*(undefined8 *)(param_6 + 0x10),local_60);\n    if (iVar1 == 0) {\n      uVar3 = (long)iVar2;\n      if (param_4 < (ulong)(long)iVar2) {\n        uVar3 = param_4;\n      }\n      iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_50,param_3,uVar3);\n      if (iVar1 == 0) {\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  else {\nLAB_0017b605:\n    iVar1 = 7;\n  }\n  ltc_deinit_multi(local_60,local_58,local_50,local_48,0);\nLAB_0017b629:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar1;\n  }\n                    \n  __stack_chk_fail();\n}" primitive_type (function_declarator "dsa_verify_hash_raw(long param_1,long param_2,undefined8 param_3,ulong param_4,\n                       undefined4 *param_5,long param_6)" identifier (parameter_list "(long param_1,long param_2,undefined8 param_3,ulong param_4,\n                       undefined4 *param_5,long param_6)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "ulong param_4" type_identifier identifier) , (parameter_declaration "undefined4 *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "long param_6" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  ulong uVar3;\n  long in_FS_OFFSET;\n  undefined8 local_60;\n  undefined8 local_58;\n  undefined8 local_50;\n  undefined8 local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    \n    crypt_argchk("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24);\n  }\n  if (param_2 == 0) {\n                    \n    crypt_argchk("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25);\n  }\n  if (param_5 == (undefined4 *)0x0) {\n                    \n    crypt_argchk("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26);\n  }\n  if (param_6 == 0) {\n                    \n    crypt_argchk("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27);\n  }\n  *param_5 = 0;\n  iVar1 = ltc_init_multi(&local_60,&local_58,&local_50,&local_48,0);\n  if (iVar1 != 0) goto LAB_0017b629;\n  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_1,0);\n  if (iVar1 == 1) {\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_2,0);\n    if (iVar1 != 1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,*(undefined8 *)(param_6 + 0x10));\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_2,*(undefined8 *)(param_6 + 0x10));\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar2 = *(int *)(param_6 + 4);\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x118))\n                      (param_2,*(undefined8 *)(param_6 + 0x10),local_60);\n    if (iVar1 == 0) {\n      uVar3 = (long)iVar2;\n      if (param_4 < (ulong)(long)iVar2) {\n        uVar3 = param_4;\n      }\n      iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_50,param_3,uVar3);\n      if (iVar1 == 0) {\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  else {\nLAB_0017b605:\n    iVar1 = 7;\n  }\n  ltc_deinit_multi(local_60,local_58,local_50,local_48,0);\nLAB_0017b629:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar1;\n  }\n                    \n  __stack_chk_fail();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "ulong uVar3;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_60;" type_identifier identifier ;) (declaration "undefined8 local_58;" type_identifier identifier ;) (declaration "undefined8 local_50;" type_identifier identifier ;) (declaration "undefined8 local_48;" type_identifier identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_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) ))))) ;) (if_statement "if (param_1 == 0) {\n                    \n    crypt_argchk("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24);\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    crypt_argchk("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24);\n  }" { (expression_statement "crypt_argchk("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24);" (call_expression "crypt_argchk("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24)" identifier (argument_list "("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24)" ( (string_literal ""r != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_verify_hash.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_2 == 0) {\n                    \n    crypt_argchk("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25);\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    crypt_argchk("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25);\n  }" { (expression_statement "crypt_argchk("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25);" (call_expression "crypt_argchk("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25)" identifier (argument_list "("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25)" ( (string_literal ""s != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_verify_hash.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_5 == (undefined4 *)0x0) {\n                    \n    crypt_argchk("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26);\n  }" if (parenthesized_expression "(param_5 == (undefined4 *)0x0)" ( (binary_expression "param_5 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n    crypt_argchk("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26);\n  }" { (expression_statement "crypt_argchk("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26);" (call_expression "crypt_argchk("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26)" identifier (argument_list "("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26)" ( (string_literal ""stat != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_verify_hash.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_6 == 0) {\n                    \n    crypt_argchk("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27);\n  }" if (parenthesized_expression "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    crypt_argchk("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27);\n  }" { (expression_statement "crypt_argchk("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27);" (call_expression "crypt_argchk("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27)" identifier (argument_list "("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27)" ( (string_literal ""key != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_verify_hash.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" * identifier) = number_literal) ;) (expression_statement "iVar1 = ltc_init_multi(&local_60,&local_58,&local_50,&local_48,0);" (assignment_expression "iVar1 = ltc_init_multi(&local_60,&local_58,&local_50,&local_48,0)" identifier = (call_expression "ltc_init_multi(&local_60,&local_58,&local_50,&local_48,0)" identifier (argument_list "(&local_60,&local_58,&local_50,&local_48,0)" ( (pointer_expression "&local_60" & identifier) , (pointer_expression "&local_58" & identifier) , (pointer_expression "&local_50" & identifier) , (pointer_expression "&local_48" & identifier) , number_literal )))) ;) (if_statement "if (iVar1 != 0) goto LAB_0017b629;" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0017b629;" goto statement_identifier ;)) (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_1,0);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_1,0)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_1,0)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x60))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x60)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x60)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x60)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x60" identifier + number_literal) ))))) )) (argument_list "(param_1,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar1 == 1) {\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_2,0);\n    if (iVar1 != 1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,*(undefined8 *)(param_6 + 0x10));\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_2,*(undefined8 *)(param_6 + 0x10));\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar2 = *(int *)(param_6 + 4);\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x118))\n                      (param_2,*(undefined8 *)(param_6 + 0x10),local_60);\n    if (iVar1 == 0) {\n      uVar3 = (long)iVar2;\n      if (param_4 < (ulong)(long)iVar2) {\n        uVar3 = param_4;\n      }\n      iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_50,param_3,uVar3);\n      if (iVar1 == 0) {\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  else {\nLAB_0017b605:\n    iVar1 = 7;\n  }" if (parenthesized_expression "(iVar1 == 1)" ( (binary_expression "iVar1 == 1" identifier == number_literal) )) (compound_statement "{\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_2,0);\n    if (iVar1 != 1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,*(undefined8 *)(param_6 + 0x10));\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_2,*(undefined8 *)(param_6 + 0x10));\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar2 = *(int *)(param_6 + 4);\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x118))\n                      (param_2,*(undefined8 *)(param_6 + 0x10),local_60);\n    if (iVar1 == 0) {\n      uVar3 = (long)iVar2;\n      if (param_4 < (ulong)(long)iVar2) {\n        uVar3 = param_4;\n      }\n      iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_50,param_3,uVar3);\n      if (iVar1 == 0) {\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }" { (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_2,0);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_2,0)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_2,0)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x60))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x60)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x60)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x60)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x60" identifier + number_literal) ))))) )) (argument_list "(param_2,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar1 != 1) goto LAB_0017b605;" if (parenthesized_expression "(iVar1 != 1)" ( (binary_expression "iVar1 != 1" identifier != number_literal) )) (goto_statement "goto LAB_0017b605;" goto statement_identifier ;)) (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,*(undefined8 *)(param_6 + 0x10));" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,*(undefined8 *)(param_6 + 0x10))" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,*(undefined8 *)(param_6 + 0x10))" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x58)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x58)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x58)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x58" identifier + number_literal) ))))) )) (argument_list "(param_1,*(undefined8 *)(param_6 + 0x10))" ( identifier , (pointer_expression "*(undefined8 *)(param_6 + 0x10)" * (cast_expression "(undefined8 *)(param_6 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x10)" ( (binary_expression "param_6 + 0x10" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar1 != -1) goto LAB_0017b605;" if (parenthesized_expression "(iVar1 != -1)" ( (binary_expression "iVar1 != -1" identifier != number_literal) )) (goto_statement "goto LAB_0017b605;" goto statement_identifier ;)) (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_2,*(undefined8 *)(param_6 + 0x10));" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_2,*(undefined8 *)(param_6 + 0x10))" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_2,*(undefined8 *)(param_6 + 0x10))" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x58)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x58)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x58)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x58" identifier + number_literal) ))))) )) (argument_list "(param_2,*(undefined8 *)(param_6 + 0x10))" ( identifier , (pointer_expression "*(undefined8 *)(param_6 + 0x10)" * (cast_expression "(undefined8 *)(param_6 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x10)" ( (binary_expression "param_6 + 0x10" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar1 != -1) goto LAB_0017b605;" if (parenthesized_expression "(iVar1 != -1)" ( (binary_expression "iVar1 != -1" identifier != number_literal) )) (goto_statement "goto LAB_0017b605;" goto statement_identifier ;)) (expression_statement "iVar2 = *(int *)(param_6 + 4);" (assignment_expression "iVar2 = *(int *)(param_6 + 4)" identifier = (pointer_expression "*(int *)(param_6 + 4)" * (cast_expression "(int *)(param_6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 4)" ( (binary_expression "param_6 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x118))\n                      (param_2,*(undefined8 *)(param_6 + 0x10),local_60);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x118))\n                      (param_2,*(undefined8 *)(param_6 + 0x10),local_60)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x118))\n                      (param_2,*(undefined8 *)(param_6 + 0x10),local_60)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x118))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x118)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x118)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x118)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x118)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x118" identifier + number_literal) ))))) )) (argument_list "(param_2,*(undefined8 *)(param_6 + 0x10),local_60)" ( identifier , (pointer_expression "*(undefined8 *)(param_6 + 0x10)" * (cast_expression "(undefined8 *)(param_6 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x10)" ( (binary_expression "param_6 + 0x10" identifier + number_literal) )))) , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n      uVar3 = (long)iVar2;\n      if (param_4 < (ulong)(long)iVar2) {\n        uVar3 = param_4;\n      }\n      iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_50,param_3,uVar3);\n      if (iVar1 == 0) {\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar3 = (long)iVar2;\n      if (param_4 < (ulong)(long)iVar2) {\n        uVar3 = param_4;\n      }\n      iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_50,param_3,uVar3);\n      if (iVar1 == 0) {\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }" { (expression_statement "uVar3 = (long)iVar2;" (assignment_expression "uVar3 = (long)iVar2" identifier = (cast_expression "(long)iVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (if_statement "if (param_4 < (ulong)(long)iVar2) {\n        uVar3 = param_4;\n      }" if (parenthesized_expression "(param_4 < (ulong)(long)iVar2)" ( (binary_expression "param_4 < (ulong)(long)iVar2" identifier < (cast_expression "(ulong)(long)iVar2" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(long)iVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) )) (compound_statement "{\n        uVar3 = param_4;\n      }" { (expression_statement "uVar3 = param_4;" (assignment_expression "uVar3 = param_4" identifier = identifier) ;) })) (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_50,param_3,uVar3);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_50,param_3,uVar3)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_50,param_3,uVar3)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xa0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xa0" identifier + number_literal) ))))) )) (argument_list "(local_50,param_3,uVar3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" { (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x108))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x108)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x108)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x108)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x108)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x108" identifier + number_literal) ))))) )) (argument_list "(local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50)" ( identifier , identifier , (pointer_expression "*(undefined8 *)(param_6 + 0x10)" * (cast_expression "(undefined8 *)(param_6 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x10)" ( (binary_expression "param_6 + 0x10" identifier + number_literal) )))) , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" { (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x108))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x108)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x108)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x108)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x108)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x108" identifier + number_literal) ))))) )) (argument_list "(param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48)" ( identifier , identifier , (pointer_expression "*(undefined8 *)(param_6 + 0x10)" * (cast_expression "(undefined8 *)(param_6 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x10)" ( (binary_expression "param_6 + 0x10" identifier + number_literal) )))) , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }" { (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x140))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x140)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x140)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x140)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x140)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x140" identifier + number_literal) ))))) )) (argument_list "(*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50)" ( (pointer_expression "*(undefined8 *)(param_6 + 8)" * (cast_expression "(undefined8 *)(param_6 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 8)" ( (binary_expression "param_6 + 8" identifier + number_literal) )))) , identifier , (pointer_expression "*(undefined8 *)(param_6 + 0x18)" * (cast_expression "(undefined8 *)(param_6 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x18)" ( (binary_expression "param_6 + 0x18" identifier + number_literal) )))) , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }" { (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x140))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x140)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x140)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x140)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x140)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x140" identifier + number_literal) ))))) )) (argument_list "(*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48)" ( (pointer_expression "*(undefined8 *)(param_6 + 0x28)" * (cast_expression "(undefined8 *)(param_6 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x28)" ( (binary_expression "param_6 + 0x28" identifier + number_literal) )))) , identifier , (pointer_expression "*(undefined8 *)(param_6 + 0x18)" * (cast_expression "(undefined8 *)(param_6 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x18)" ( (binary_expression "param_6 + 0x18" identifier + number_literal) )))) , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }" { (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x108))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x108)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x108)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x108)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x108)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x108" identifier + number_literal) ))))) )) (argument_list "(local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58)" ( identifier , identifier , (pointer_expression "*(undefined8 *)(param_6 + 0x18)" * (cast_expression "(undefined8 *)(param_6 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x18)" ( (binary_expression "param_6 + 0x18" identifier + number_literal) )))) , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }" { (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xe0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xe0" identifier + number_literal) ))))) )) (argument_list "(local_58,*(undefined8 *)(param_6 + 0x10),0,local_58)" ( identifier , (pointer_expression "*(undefined8 *)(param_6 + 0x10)" * (cast_expression "(undefined8 *)(param_6 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x10)" ( (binary_expression "param_6 + 0x10" identifier + number_literal) )))) , number_literal , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }" { (expression_statement "iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);" (assignment_expression "iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x58)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x58)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x58)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x58" identifier + number_literal) ))))) )) (argument_list "(param_1,local_58)" ( identifier , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                      *param_5 = 1;\n                    }" { (expression_statement "*param_5 = 1;" (assignment_expression "*param_5 = 1" (pointer_expression "*param_5" * identifier) = number_literal) ;) })) })) })) })) })) })) })) })) })) }) (else_clause "else {\nLAB_0017b605:\n    iVar1 = 7;\n  }" else (compound_statement "{\nLAB_0017b605:\n    iVar1 = 7;\n  }" { (labeled_statement "LAB_0017b605:\n    iVar1 = 7;" statement_identifier : (expression_statement "iVar1 = 7;" (assignment_expression "iVar1 = 7" identifier = number_literal) ;)) }))) (expression_statement "ltc_deinit_multi(local_60,local_58,local_50,local_48,0);" (call_expression "ltc_deinit_multi(local_60,local_58,local_50,local_48,0)" identifier (argument_list "(local_60,local_58,local_50,local_48,0)" ( identifier , identifier , identifier , identifier , number_literal ))) ;) (labeled_statement "LAB_0017b629:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar1;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar1;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_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    return iVar1;\n  }" { (return_statement "return iVar1;" 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 (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT ))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) })) })) })) })) })) })) })) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , LIT ))) ;) (labeled_statement statement_identifier : (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 "int dsa_verify_hash_raw(long param_1,long param_2,undefined8 param_3,ulong param_4,\n                       undefined4 *param_5,long param_6)\n\n{\n  int iVar1;\n  int iVar2;\n  ulong uVar3;\n  long in_FS_OFFSET;\n  undefined8 local_60;\n  undefined8 local_58;\n  undefined8 local_50;\n  undefined8 local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    \n    crypt_argchk("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24);\n  }\n  if (param_2 == 0) {\n                    \n    crypt_argchk("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25);\n  }\n  if (param_5 == (undefined4 *)0x0) {\n                    \n    crypt_argchk("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26);\n  }\n  if (param_6 == 0) {\n                    \n    crypt_argchk("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27);\n  }\n  *param_5 = 0;\n  iVar1 = ltc_init_multi(&local_60,&local_58,&local_50,&local_48,0);\n  if (iVar1 != 0) goto LAB_0017b629;\n  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_1,0);\n  if (iVar1 == 1) {\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_2,0);\n    if (iVar1 != 1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,*(undefined8 *)(param_6 + 0x10));\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_2,*(undefined8 *)(param_6 + 0x10));\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar2 = *(int *)(param_6 + 4);\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x118))\n                      (param_2,*(undefined8 *)(param_6 + 0x10),local_60);\n    if (iVar1 == 0) {\n      uVar3 = (long)iVar2;\n      if (param_4 < (ulong)(long)iVar2) {\n        uVar3 = param_4;\n      }\n      iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_50,param_3,uVar3);\n      if (iVar1 == 0) {\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  else {\nLAB_0017b605:\n    iVar1 = 7;\n  }\n  ltc_deinit_multi(local_60,local_58,local_50,local_48,0);\nLAB_0017b629:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar1;\n  }\n                    \n  __stack_chk_fail();\n}" (primitive_type "int") (function_declarator "dsa_verify_hash_raw(long param_1,long param_2,undefined8 param_3,ulong param_4,\n                       undefined4 *param_5,long param_6)" (identifier "dsa_verify_hash_raw") (parameter_list "(long param_1,long param_2,undefined8 param_3,ulong param_4,\n                       undefined4 *param_5,long param_6)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) (, ",") (parameter_declaration "ulong param_4" (type_identifier "ulong") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 *param_5" (type_identifier "undefined4") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "long param_6" (sized_type_specifier "long" (long "long")) (identifier "param_6")) () ")"))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  ulong uVar3;\n  long in_FS_OFFSET;\n  undefined8 local_60;\n  undefined8 local_58;\n  undefined8 local_50;\n  undefined8 local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    \n    crypt_argchk("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24);\n  }\n  if (param_2 == 0) {\n                    \n    crypt_argchk("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25);\n  }\n  if (param_5 == (undefined4 *)0x0) {\n                    \n    crypt_argchk("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26);\n  }\n  if (param_6 == 0) {\n                    \n    crypt_argchk("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27);\n  }\n  *param_5 = 0;\n  iVar1 = ltc_init_multi(&local_60,&local_58,&local_50,&local_48,0);\n  if (iVar1 != 0) goto LAB_0017b629;\n  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_1,0);\n  if (iVar1 == 1) {\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_2,0);\n    if (iVar1 != 1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,*(undefined8 *)(param_6 + 0x10));\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_2,*(undefined8 *)(param_6 + 0x10));\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar2 = *(int *)(param_6 + 4);\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x118))\n                      (param_2,*(undefined8 *)(param_6 + 0x10),local_60);\n    if (iVar1 == 0) {\n      uVar3 = (long)iVar2;\n      if (param_4 < (ulong)(long)iVar2) {\n        uVar3 = param_4;\n      }\n      iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_50,param_3,uVar3);\n      if (iVar1 == 0) {\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  else {\nLAB_0017b605:\n    iVar1 = 7;\n  }\n  ltc_deinit_multi(local_60,local_58,local_50,local_48,0);\nLAB_0017b629:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar1;\n  }\n                    \n  __stack_chk_fail();\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "ulong uVar3;" (type_identifier "ulong") (identifier "uVar3") (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "undefined8 local_60;" (type_identifier "undefined8") (identifier "local_60") (; ";")) (declaration "undefined8 local_58;" (type_identifier "undefined8") (identifier "local_58") (; ";")) (declaration "undefined8 local_50;" (type_identifier "undefined8") (identifier "local_50") (; ";")) (declaration "undefined8 local_48;" (type_identifier "undefined8") (identifier "local_48") (; ";")) (declaration "long local_40;" (sized_type_specifier "long" (long "long")) (identifier "local_40") (; ";")) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_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")) () ")"))))) (; ";")) (if_statement "if (param_1 == 0) {\n                    \n    crypt_argchk("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24);\n  }" (if "if") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    crypt_argchk("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24);\n  }" ({ "{") (expression_statement "crypt_argchk("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24);" (call_expression "crypt_argchk("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24)" (identifier "crypt_argchk") (argument_list "("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24)" (( "(") (string_literal ""r != NULL"" (" """) (string_content "r != NULL") (" """)) (, ",") (string_literal ""src/pk/dsa/dsa_verify_hash.c"" (" """) (string_content "src/pk/dsa/dsa_verify_hash.c") (" """)) (, ",") (number_literal "0x24") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_2 == 0) {\n                    \n    crypt_argchk("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25);\n  }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    crypt_argchk("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25);\n  }" ({ "{") (expression_statement "crypt_argchk("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25);" (call_expression "crypt_argchk("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25)" (identifier "crypt_argchk") (argument_list "("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25)" (( "(") (string_literal ""s != NULL"" (" """) (string_content "s != NULL") (" """)) (, ",") (string_literal ""src/pk/dsa/dsa_verify_hash.c"" (" """) (string_content "src/pk/dsa/dsa_verify_hash.c") (" """)) (, ",") (number_literal "0x25") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_5 == (undefined4 *)0x0) {\n                    \n    crypt_argchk("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26);\n  }" (if "if") (parenthesized_expression "(param_5 == (undefined4 *)0x0)" (( "(") (binary_expression "param_5 == (undefined4 *)0x0" (identifier "param_5") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n    crypt_argchk("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26);\n  }" ({ "{") (expression_statement "crypt_argchk("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26);" (call_expression "crypt_argchk("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26)" (identifier "crypt_argchk") (argument_list "("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26)" (( "(") (string_literal ""stat != NULL"" (" """) (string_content "stat != NULL") (" """)) (, ",") (string_literal ""src/pk/dsa/dsa_verify_hash.c"" (" """) (string_content "src/pk/dsa/dsa_verify_hash.c") (" """)) (, ",") (number_literal "0x26") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_6 == 0) {\n                    \n    crypt_argchk("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27);\n  }" (if "if") (parenthesized_expression "(param_6 == 0)" (( "(") (binary_expression "param_6 == 0" (identifier "param_6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    crypt_argchk("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27);\n  }" ({ "{") (expression_statement "crypt_argchk("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27);" (call_expression "crypt_argchk("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27)" (identifier "crypt_argchk") (argument_list "("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27)" (( "(") (string_literal ""key != NULL"" (" """) (string_content "key != NULL") (" """)) (, ",") (string_literal ""src/pk/dsa/dsa_verify_hash.c"" (" """) (string_content "src/pk/dsa/dsa_verify_hash.c") (" """)) (, ",") (number_literal "0x27") () ")"))) (; ";")) (} "}"))) (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar1 = ltc_init_multi(&local_60,&local_58,&local_50,&local_48,0);" (assignment_expression "iVar1 = ltc_init_multi(&local_60,&local_58,&local_50,&local_48,0)" (identifier "iVar1") (= "=") (call_expression "ltc_init_multi(&local_60,&local_58,&local_50,&local_48,0)" (identifier "ltc_init_multi") (argument_list "(&local_60,&local_58,&local_50,&local_48,0)" (( "(") (pointer_expression "&local_60" (& "&") (identifier "local_60")) (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (pointer_expression "&local_50" (& "&") (identifier "local_50")) (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar1 != 0) goto LAB_0017b629;" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0017b629;" (goto "goto") (statement_identifier "LAB_0017b629") (; ";"))) (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_1,0);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_1,0)" (identifier "iVar1") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_1,0)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x60))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x60)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x60)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x60)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0x60" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0x60")) () ")"))))) () ")")) (argument_list "(param_1,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar1 == 1) {\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_2,0);\n    if (iVar1 != 1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,*(undefined8 *)(param_6 + 0x10));\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_2,*(undefined8 *)(param_6 + 0x10));\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar2 = *(int *)(param_6 + 4);\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x118))\n                      (param_2,*(undefined8 *)(param_6 + 0x10),local_60);\n    if (iVar1 == 0) {\n      uVar3 = (long)iVar2;\n      if (param_4 < (ulong)(long)iVar2) {\n        uVar3 = param_4;\n      }\n      iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_50,param_3,uVar3);\n      if (iVar1 == 0) {\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  else {\nLAB_0017b605:\n    iVar1 = 7;\n  }" (if "if") (parenthesized_expression "(iVar1 == 1)" (( "(") (binary_expression "iVar1 == 1" (identifier "iVar1") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_2,0);\n    if (iVar1 != 1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,*(undefined8 *)(param_6 + 0x10));\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_2,*(undefined8 *)(param_6 + 0x10));\n    if (iVar1 != -1) goto LAB_0017b605;\n    iVar2 = *(int *)(param_6 + 4);\n    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x118))\n                      (param_2,*(undefined8 *)(param_6 + 0x10),local_60);\n    if (iVar1 == 0) {\n      uVar3 = (long)iVar2;\n      if (param_4 < (ulong)(long)iVar2) {\n        uVar3 = param_4;\n      }\n      iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_50,param_3,uVar3);\n      if (iVar1 == 0) {\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }" ({ "{") (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_2,0);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_2,0)" (identifier "iVar1") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_2,0)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x60))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x60)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x60)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x60)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0x60" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0x60")) () ")"))))) () ")")) (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar1 != 1) goto LAB_0017b605;" (if "if") (parenthesized_expression "(iVar1 != 1)" (( "(") (binary_expression "iVar1 != 1" (identifier "iVar1") (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_0017b605;" (goto "goto") (statement_identifier "LAB_0017b605") (; ";"))) (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,*(undefined8 *)(param_6 + 0x10));" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,*(undefined8 *)(param_6 + 0x10))" (identifier "iVar1") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,*(undefined8 *)(param_6 + 0x10))" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x58)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x58)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x58)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0x58" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0x58")) () ")"))))) () ")")) (argument_list "(param_1,*(undefined8 *)(param_6 + 0x10))" (( "(") (identifier "param_1") (, ",") (pointer_expression "*(undefined8 *)(param_6 + 0x10)" (* "*") (cast_expression "(undefined8 *)(param_6 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x10)" (( "(") (binary_expression "param_6 + 0x10" (identifier "param_6") (+ "+") (number_literal "0x10")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar1 != -1) goto LAB_0017b605;" (if "if") (parenthesized_expression "(iVar1 != -1)" (( "(") (binary_expression "iVar1 != -1" (identifier "iVar1") (!= "!=") (number_literal "-1")) () ")")) (goto_statement "goto LAB_0017b605;" (goto "goto") (statement_identifier "LAB_0017b605") (; ";"))) (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_2,*(undefined8 *)(param_6 + 0x10));" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_2,*(undefined8 *)(param_6 + 0x10))" (identifier "iVar1") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_2,*(undefined8 *)(param_6 + 0x10))" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x58)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x58)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x58)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0x58" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0x58")) () ")"))))) () ")")) (argument_list "(param_2,*(undefined8 *)(param_6 + 0x10))" (( "(") (identifier "param_2") (, ",") (pointer_expression "*(undefined8 *)(param_6 + 0x10)" (* "*") (cast_expression "(undefined8 *)(param_6 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x10)" (( "(") (binary_expression "param_6 + 0x10" (identifier "param_6") (+ "+") (number_literal "0x10")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar1 != -1) goto LAB_0017b605;" (if "if") (parenthesized_expression "(iVar1 != -1)" (( "(") (binary_expression "iVar1 != -1" (identifier "iVar1") (!= "!=") (number_literal "-1")) () ")")) (goto_statement "goto LAB_0017b605;" (goto "goto") (statement_identifier "LAB_0017b605") (; ";"))) (expression_statement "iVar2 = *(int *)(param_6 + 4);" (assignment_expression "iVar2 = *(int *)(param_6 + 4)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(param_6 + 4)" (* "*") (cast_expression "(int *)(param_6 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 4)" (( "(") (binary_expression "param_6 + 4" (identifier "param_6") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x118))\n                      (param_2,*(undefined8 *)(param_6 + 0x10),local_60);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x118))\n                      (param_2,*(undefined8 *)(param_6 + 0x10),local_60)" (identifier "iVar1") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x118))\n                      (param_2,*(undefined8 *)(param_6 + 0x10),local_60)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x118))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x118)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x118)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x118)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x118)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0x118" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0x118")) () ")"))))) () ")")) (argument_list "(param_2,*(undefined8 *)(param_6 + 0x10),local_60)" (( "(") (identifier "param_2") (, ",") (pointer_expression "*(undefined8 *)(param_6 + 0x10)" (* "*") (cast_expression "(undefined8 *)(param_6 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x10)" (( "(") (binary_expression "param_6 + 0x10" (identifier "param_6") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (identifier "local_60") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n      uVar3 = (long)iVar2;\n      if (param_4 < (ulong)(long)iVar2) {\n        uVar3 = param_4;\n      }\n      iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_50,param_3,uVar3);\n      if (iVar1 == 0) {\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar3 = (long)iVar2;\n      if (param_4 < (ulong)(long)iVar2) {\n        uVar3 = param_4;\n      }\n      iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_50,param_3,uVar3);\n      if (iVar1 == 0) {\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }" ({ "{") (expression_statement "uVar3 = (long)iVar2;" (assignment_expression "uVar3 = (long)iVar2" (identifier "uVar3") (= "=") (cast_expression "(long)iVar2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar2"))) (; ";")) (if_statement "if (param_4 < (ulong)(long)iVar2) {\n        uVar3 = param_4;\n      }" (if "if") (parenthesized_expression "(param_4 < (ulong)(long)iVar2)" (( "(") (binary_expression "param_4 < (ulong)(long)iVar2" (identifier "param_4") (< "<") (cast_expression "(ulong)(long)iVar2" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (cast_expression "(long)iVar2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar2")))) () ")")) (compound_statement "{\n        uVar3 = param_4;\n      }" ({ "{") (expression_statement "uVar3 = param_4;" (assignment_expression "uVar3 = param_4" (identifier "uVar3") (= "=") (identifier "param_4")) (; ";")) (} "}"))) (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_50,param_3,uVar3);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_50,param_3,uVar3)" (identifier "iVar1") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_50,param_3,uVar3)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xa0)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0xa0" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0xa0")) () ")"))))) () ")")) (argument_list "(local_50,param_3,uVar3)" (( "(") (identifier "local_50") (, ",") (identifier "param_3") (, ",") (identifier "uVar3") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50);\n        if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50)" (identifier "iVar1") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x108))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x108)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x108)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x108)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x108)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0x108" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0x108")) () ")"))))) () ")")) (argument_list "(local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50)" (( "(") (identifier "local_50") (, ",") (identifier "local_60") (, ",") (pointer_expression "*(undefined8 *)(param_6 + 0x10)" (* "*") (cast_expression "(undefined8 *)(param_6 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x10)" (( "(") (binary_expression "param_6 + 0x10" (identifier "param_6") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (identifier "local_50") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);\n          if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" ({ "{") (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48)" (identifier "iVar1") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x108))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x108)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x108)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x108)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x108)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0x108" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0x108")) () ")"))))) () ")")) (argument_list "(param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48)" (( "(") (identifier "param_1") (, ",") (identifier "local_60") (, ",") (pointer_expression "*(undefined8 *)(param_6 + 0x10)" (* "*") (cast_expression "(undefined8 *)(param_6 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x10)" (( "(") (binary_expression "param_6 + 0x10" (identifier "param_6") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (identifier "local_48") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);\n            if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }\n          }" ({ "{") (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50)" (identifier "iVar1") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x140))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x140)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x140)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x140)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x140)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0x140" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0x140")) () ")"))))) () ")")) (argument_list "(*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)\n                               ,local_50)" (( "(") (pointer_expression "*(undefined8 *)(param_6 + 8)" (* "*") (cast_expression "(undefined8 *)(param_6 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 8)" (( "(") (binary_expression "param_6 + 8" (identifier "param_6") (+ "+") (number_literal "8")) () ")")))) (, ",") (identifier "local_50") (, ",") (pointer_expression "*(undefined8 *)(param_6 + 0x18)" (* "*") (cast_expression "(undefined8 *)(param_6 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x18)" (( "(") (binary_expression "param_6 + 0x18" (identifier "param_6") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (identifier "local_50") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);\n              if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }\n            }" ({ "{") (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48)" (identifier "iVar1") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x140))\n                                (*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x140))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x140)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x140)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x140)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x140)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0x140" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0x140")) () ")"))))) () ")")) (argument_list "(*(undefined8 *)(param_6 + 0x28),local_48,\n                                 *(undefined8 *)(param_6 + 0x18),local_48)" (( "(") (pointer_expression "*(undefined8 *)(param_6 + 0x28)" (* "*") (cast_expression "(undefined8 *)(param_6 + 0x28)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x28)" (( "(") (binary_expression "param_6 + 0x28" (identifier "param_6") (+ "+") (number_literal "0x28")) () ")")))) (, ",") (identifier "local_48") (, ",") (pointer_expression "*(undefined8 *)(param_6 + 0x18)" (* "*") (cast_expression "(undefined8 *)(param_6 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x18)" (( "(") (binary_expression "param_6 + 0x18" (identifier "param_6") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (identifier "local_48") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);\n                if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }\n              }" ({ "{") (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58)" (identifier "iVar1") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x108))\n                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x108))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x108)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x108)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x108)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x108)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0x108" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0x108")) () ")"))))) () ")")) (argument_list "(local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58)" (( "(") (identifier "local_50") (, ",") (identifier "local_48") (, ",") (pointer_expression "*(undefined8 *)(param_6 + 0x18)" (* "*") (cast_expression "(undefined8 *)(param_6 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x18)" (( "(") (binary_expression "param_6 + 0x18" (identifier "param_6") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (identifier "local_58") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);\n                  if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }\n                }" ({ "{") (expression_statement "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);" (assignment_expression "iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58)" (identifier "iVar1") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xe0)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0xe0" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0xe0")) () ")"))))) () ")")) (argument_list "(local_58,*(undefined8 *)(param_6 + 0x10),0,local_58)" (( "(") (identifier "local_58") (, ",") (pointer_expression "*(undefined8 *)(param_6 + 0x10)" (* "*") (cast_expression "(undefined8 *)(param_6 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x10)" (( "(") (binary_expression "param_6 + 0x10" (identifier "param_6") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (number_literal "0") (, ",") (identifier "local_58") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);\n                    if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }\n                  }" ({ "{") (expression_statement "iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);" (assignment_expression "iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x58)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x58)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x58)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0x58" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0x58")) () ")"))))) () ")")) (argument_list "(param_1,local_58)" (( "(") (identifier "param_1") (, ",") (identifier "local_58") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n                      *param_5 = 1;\n                    }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      *param_5 = 1;\n                    }" ({ "{") (expression_statement "*param_5 = 1;" (assignment_expression "*param_5 = 1" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (number_literal "1")) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\nLAB_0017b605:\n    iVar1 = 7;\n  }" (else "else") (compound_statement "{\nLAB_0017b605:\n    iVar1 = 7;\n  }" ({ "{") (labeled_statement "LAB_0017b605:\n    iVar1 = 7;" (statement_identifier "LAB_0017b605") (: ":") (expression_statement "iVar1 = 7;" (assignment_expression "iVar1 = 7" (identifier "iVar1") (= "=") (number_literal "7")) (; ";"))) (} "}")))) (expression_statement "ltc_deinit_multi(local_60,local_58,local_50,local_48,0);" (call_expression "ltc_deinit_multi(local_60,local_58,local_50,local_48,0)" (identifier "ltc_deinit_multi") (argument_list "(local_60,local_58,local_50,local_48,0)" (( "(") (identifier "local_60") (, ",") (identifier "local_58") (, ",") (identifier "local_50") (, ",") (identifier "local_48") (, ",") (number_literal "0") () ")"))) (; ";")) (labeled_statement "LAB_0017b629:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar1;\n  }" (statement_identifier "LAB_0017b629") (: ":") (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar1;\n  }" (if "if") (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_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    return iVar1;\n  }" ({ "{") (return_statement "return iVar1;" (return "return") (identifier "iVar1") (; ";")) (} "}")))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

int function_1(void *var_2,void *var_4,type_1 *hash,type_2 var_10,int *var_5,type_3 *var_6)

{
  int var_8;
  int var_11;
  type_2 uVar3;
  long var_1;
  void *w;
  void *v;
  void *u1;
  void *u2;
  long var_13;
  
  var_13 = *(long *)(var_1 + 0x28);
  if (var_2 == (void *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24);
  }
  if (var_4 == (void *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25);
  }
  if (var_5 == (int *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26);
  }
  if (var_6 == (type_3 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27);
  }
  *var_5 = 0;
  var_8 = var_7(&w,&v,&u1,&u2,0);
  if (var_8 != 0) goto LAB_0017b629;
  var_8 = (**(type_4 **)(var_9 + 0x60))(var_2,0);
  if (var_8 == 1) {
    var_8 = (**(type_4 **)(var_9 + 0x60))(var_4,0);
    if (var_8 != 1) goto LAB_0017b605;
    var_8 = (**(type_4 **)(var_9 + 0x58))(var_2,var_6->q);
    if (var_8 != -1) goto LAB_0017b605;
    var_8 = (**(type_4 **)(var_9 + 0x58))(var_4,var_6->q);
    if (var_8 != -1) goto LAB_0017b605;
    var_11 = var_6->qord;
    var_8 = (**(type_4 **)(var_9 + 0x118))(var_4,var_6->q,w);
    if (var_8 == 0) {
      uVar3 = (long)var_11;
      if (var_10 < (type_2)(long)var_11) {
        uVar3 = var_10;
      }
      var_8 = (**(type_4 **)(var_9 + 0xa0))(u1,hash,uVar3);
      if (var_8 == 0) {
        var_8 = (**(type_4 **)(var_9 + 0x108))(u1,w,var_6->q,u1);
        if (var_8 == 0) {
          var_8 = (**(type_4 **)(var_9 + 0x108))(var_2,w,var_6->q,u2);
          if (var_8 == 0) {
            var_8 = (**(type_4 **)(var_9 + 0x140))(var_6->g,u1,var_6->p,u1);
            if (var_8 == 0) {
              var_8 = (**(type_4 **)(var_9 + 0x140))(var_6->y,u2,var_6->p,u2);
              if (var_8 == 0) {
                var_8 = (**(type_4 **)(var_9 + 0x108))(u1,u2,var_6->p,v);
                if (var_8 == 0) {
                  var_8 = (**(type_4 **)(var_9 + 0xe0))(v,var_6->q,0,v);
                  if (var_8 == 0) {
                    var_11 = (**(type_4 **)(var_9 + 0x58))(var_2,v);
                    if (var_11 == 0) {
                      *var_5 = 1;
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  else {
LAB_0017b605:
    var_8 = 7;
  }
  var_12(w,v,u1,u2,0);
LAB_0017b629:
  if (var_13 == *(long *)(var_1 + 0x28)) {
    return var_8;
  }
                    /* WARNING: Subroutine does not return */
  var_14();
}


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

int MASKED(long param_1,long param_2,undefined8 param_3,ulong param_4,
                       undefined4 *param_5,long param_6)

{
  int iVar1;
  int iVar2;
  ulong uVar3;
  long in_FS_OFFSET;
  undefined8 local_60;
  undefined8 local_58;
  undefined8 local_50;
  undefined8 local_48;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("r != NULL","src/pk/dsa/dsa_verify_hash.c",0x24);
  }
  if (param_2 == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("s != NULL","src/pk/dsa/dsa_verify_hash.c",0x25);
  }
  if (param_5 == (undefined4 *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("stat != NULL","src/pk/dsa/dsa_verify_hash.c",0x26);
  }
  if (param_6 == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("key != NULL","src/pk/dsa/dsa_verify_hash.c",0x27);
  }
  *param_5 = 0;
  iVar1 = ltc_init_multi(&local_60,&local_58,&local_50,&local_48,0);
  if (iVar1 != 0) goto LAB_0017b629;
  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_1,0);
  if (iVar1 == 1) {
    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(param_2,0);
    if (iVar1 != 1) goto LAB_0017b605;
    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,*(undefined8 *)(param_6 + 0x10));
    if (iVar1 != -1) goto LAB_0017b605;
    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_2,*(undefined8 *)(param_6 + 0x10));
    if (iVar1 != -1) goto LAB_0017b605;
    iVar2 = *(int *)(param_6 + 4);
    iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x118))
                      (param_2,*(undefined8 *)(param_6 + 0x10),local_60);
    if (iVar1 == 0) {
      uVar3 = (long)iVar2;
      if (param_4 < (ulong)(long)iVar2) {
        uVar3 = param_4;
      }
      iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_50,param_3,uVar3);
      if (iVar1 == 0) {
        iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))
                          (local_50,local_60,*(undefined8 *)(param_6 + 0x10),local_50);
        if (iVar1 == 0) {
          iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))
                            (param_1,local_60,*(undefined8 *)(param_6 + 0x10),local_48);
          if (iVar1 == 0) {
            iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))
                              (*(undefined8 *)(param_6 + 8),local_50,*(undefined8 *)(param_6 + 0x18)
                               ,local_50);
            if (iVar1 == 0) {
              iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))
                                (*(undefined8 *)(param_6 + 0x28),local_48,
                                 *(undefined8 *)(param_6 + 0x18),local_48);
              if (iVar1 == 0) {
                iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x108))
                                  (local_50,local_48,*(undefined8 *)(param_6 + 0x18),local_58);
                if (iVar1 == 0) {
                  iVar1 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))
                                    (local_58,*(undefined8 *)(param_6 + 0x10),0,local_58);
                  if (iVar1 == 0) {
                    iVar2 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(param_1,local_58);
                    if (iVar2 == 0) {
                      *param_5 = 1;
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  else {
LAB_0017b605:
    iVar1 = 7;
  }
  ltc_deinit_multi(local_60,local_58,local_50,local_48,0);
LAB_0017b629:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return iVar1;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}

