
Bignum rsa_privkey_op(Bignum input,RSAKey *key)

{
  long lVar1;
  int iVar2;
  Bignum_conflict q;
  Bignum_conflict q_00;
  Bignum_conflict b;
  Bignum_conflict p;
  Bignum_conflict pBVar3;
  Bignum_conflict bn;
  uint value;
  int iVar4;
  uint uVar5;
  uint uVar6;
  long in_FS_OFFSET;
  int local_1cc;
  SHA512_State ss;
  uchar seqbuf [4];
  uchar digest512 [64];
  
  lVar1 = *(long *)(in_FS_OFFSET + 0x28);
  local_1cc = 0;
  uVar6 = 0x40;
LAB_0015c734:
  do {
    bn = copybn((Bignum_conflict)key->modulus);
    iVar2 = bignum_bitcount(bn);
    iVar4 = iVar2 + -1;
    if (iVar2 != 0) {
      iVar2 = 0;
      uVar5 = 0;
      do {
        if (iVar2 < 1) {
          if (0x3f < uVar6) {
            seqbuf[0] = (uchar)((uint)local_1cc >> 0x18);
            seqbuf[1] = (uchar)((uint)local_1cc >> 0x10);
            seqbuf[2] = (uchar)((uint)local_1cc >> 8);
            seqbuf[3] = (uchar)local_1cc;
            SHA512_Init((SHA512_CTX *)&ss);
            SHA512_Bytes(&ss,"RSA deterministic blinding",0x1a);
            SHA512_Bytes(&ss,seqbuf,4);
            sha512_mpint(&ss,key->private_exponent);
            SHA512_Final(&ss,digest512);
            local_1cc = local_1cc + 1;
            SHA512_Init((SHA512_CTX *)&ss);
            SHA512_Bytes(&ss,digest512,0x40);
            sha512_mpint(&ss,input);
            SHA512_Final(&ss,digest512);
            uVar6 = 0;
          }
          uVar5 = (uint)digest512[(int)uVar6];
          uVar6 = uVar6 + 1;
          iVar2 = 8;
        }
        value = uVar5 & 1;
        uVar5 = (int)uVar5 >> 1;
        iVar2 = iVar2 + -1;
        bignum_set_bit(bn,iVar4,value);
        iVar4 = iVar4 + -1;
      } while (iVar4 != -1);
    }
    bn_restore_invariant(bn);
    iVar4 = bignum_cmp(bn,Zero);
    if (0 < iVar4) {
      iVar4 = bignum_cmp(bn,(Bignum_conflict)key->modulus);
      if (iVar4 < 0) {
        q = modinv(bn,(Bignum_conflict)key->modulus);
        if (q != (Bignum_conflict)0x0) {
          q_00 = (Bignum_conflict)crt_modpow(bn,key->exponent,key->modulus,key->p,key->q,key->iqmp);
          b = modmul((Bignum_conflict)input,q_00,(Bignum_conflict)key->modulus);
          p = (Bignum_conflict)
              crt_modpow(b,key->private_exponent,key->modulus,key->p,key->q,key->iqmp);
          pBVar3 = modmul(p,q,(Bignum_conflict)key->modulus);
          freebn(p);
          freebn(b);
          freebn(q);
          freebn(q_00);
          freebn(bn);
          if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {
            return pBVar3;
          }
                    /* WARNING: Subroutine does not return */
          __stack_chk_fail();
        }
        freebn(bn);
        goto LAB_0015c734;
      }
    }
    freebn(bn);
  } while( true );
}



undefined8 FUN_0015c4cb(undefined8 param_1,long param_2)

{
  int iVar1;
  long lVar2;
  undefined8 uVar3;
  undefined8 uVar4;
  undefined8 uVar5;
  undefined8 uVar6;
  undefined8 uVar7;
  uint uVar8;
  int iVar9;
  uint uVar10;
  uint uVar11;
  long in_FS_OFFSET;
  int local_1cc;
  undefined1 local_1a8 [284];
  undefined1 local_8c;
  undefined1 local_8b;
  undefined1 local_8a;
  undefined1 local_89;
  byte local_88 [72];
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  local_1cc = 0;
  uVar11 = 0x40;
LAB_0015c734:
  do {
    uVar7 = FUN_00149cfe(*(undefined8 *)(param_2 + 8));
    iVar1 = FUN_0014a306(uVar7);
    iVar9 = iVar1 + -1;
    if (iVar1 != 0) {
      iVar1 = 0;
      uVar10 = 0;
      do {
        if (iVar1 < 1) {
          if (0x3f < uVar11) {
            local_8c = (undefined1)((uint)local_1cc >> 0x18);
            local_8b = (undefined1)((uint)local_1cc >> 0x10);
            local_8a = (undefined1)((uint)local_1cc >> 8);
            local_89 = (undefined1)local_1cc;
            FUN_0015e266(local_1a8);
            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);
            FUN_0015e34e(local_1a8,&local_8c,4);
            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));
            FUN_0015f872(local_1a8,local_88);
            local_1cc = local_1cc + 1;
            FUN_0015e266(local_1a8);
            FUN_0015e34e(local_1a8,local_88,0x40);
            FUN_0015b484(local_1a8,param_1);
            FUN_0015f872(local_1a8,local_88);
            uVar11 = 0;
          }
          uVar10 = (uint)local_88[(int)uVar11];
          uVar11 = uVar11 + 1;
          iVar1 = 8;
        }
        uVar8 = uVar10 & 1;
        uVar10 = (int)uVar10 >> 1;
        iVar1 = iVar1 + -1;
        FUN_0014a41b(uVar7,iVar9,uVar8);
        iVar9 = iVar9 + -1;
      } while (iVar9 != -1);
    }
    FUN_00149cd4(uVar7);
    iVar1 = FUN_0014a527(uVar7,PTR_DAT_001ef2f0);
    if (0 < iVar1) {
      iVar1 = FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8));
      if (iVar1 < 0) {
        lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));
        if (lVar2 != 0) {
          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),
                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),
                               *(undefined8 *)(param_2 + 0x30));
          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));
          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),
                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),
                               *(undefined8 *)(param_2 + 0x30));
          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));
          FUN_00149d43(uVar5);
          FUN_00149d43(uVar4);
          FUN_00149d43(lVar2);
          FUN_00149d43(uVar3);
          FUN_00149d43(uVar7);
          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
            return uVar6;
          }
                    /* WARNING: Subroutine does not return */
          __stack_chk_fail();
        }
        FUN_00149d43(uVar7);
        goto LAB_0015c734;
      }
    }
    FUN_00149d43(uVar7);
  } while( true );
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x1a8
MOV qword ptr [RSP + 0x10],RDI
MOV R15,RSI
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x198],RAX
XOR EAX,EAX
MOV dword ptr [RSP + 0xc],0x0
MOV R14D,0x40
LEA RAX,[RSP + 0x30]
MOV qword ptr [RSP + 0x18],RAX
LEA RAX,[RSP + 0x150]
MOV qword ptr [RSP + 0x20],RAX
LEA RAX,[RSP + 0x14c]
MOV qword ptr [RSP + 0x28],RAX
JMP 0x0015c734
MOV ECX,dword ptr [RSP + 0xc]
MOV EAX,ECX
SAR EAX,0x18
MOV byte ptr [RSP + 0x14c],AL
MOV EAX,ECX
SAR EAX,0x10
MOV byte ptr [RSP + 0x14d],AL
MOV EAX,ECX
MOVZX ECX,CH
MOV byte ptr [RSP + 0x14e],CL
MOV EBP,EAX
MOV byte ptr [RSP + 0x14f],AL
MOV R14,qword ptr [RSP + 0x18]
MOV RDI,R14
CALL 0x0015e266
MOV EDX,0x1a
LEA RSI,[0x1c616e]
MOV RDI,R14
CALL 0x0015e34e
MOV EDX,0x4
MOV RSI,qword ptr [RSP + 0x28]
MOV RDI,R14
CALL 0x0015e34e
MOV RSI,qword ptr [R15 + 0x18]
MOV RDI,R14
CALL 0x0015b484
MOV R12,qword ptr [RSP + 0x20]
MOV RSI,R12
MOV RDI,R14
CALL 0x0015f872
ADD EBP,0x1
MOV dword ptr [RSP + 0xc],EBP
MOV RDI,R14
CALL 0x0015e266
MOV EDX,0x40
MOV RSI,R12
MOV RDI,R14
CALL 0x0015e34e
MOV RSI,qword ptr [RSP + 0x10]
MOV RDI,R14
CALL 0x0015b484
MOV RSI,R12
MOV RDI,R14
CALL 0x0015f872
MOV R14D,0x0
MOVSXD RAX,R14D
MOVZX EBP,byte ptr [RSP + RAX*0x1 + 0x150]
LEA R14D,[R14 + 0x1]
MOV R12D,0x8
MOV EDX,EBP
AND EDX,0x1
SAR EBP,0x1
SUB R12D,0x1
MOV ESI,EBX
MOV RDI,R13
CALL 0x0014a41b
SUB EBX,0x1
CMP EBX,-0x1
JZ 0x0015c62d
TEST R12D,R12D
JG 0x0015c600
CMP R14D,0x3f
JBE 0x0015c5eb
JMP 0x0015c52e
MOV RDI,R13
CALL 0x00149cd4
MOV RSI,qword ptr [0x001ef2f0]
MOV RDI,R13
CALL 0x0014a527
TEST EAX,EAX
JLE 0x0015c72c
MOV RSI,qword ptr [R15 + 0x8]
MOV RDI,R13
CALL 0x0014a527
TEST EAX,EAX
JNS 0x0015c72c
MOV RSI,qword ptr [R15 + 0x8]
MOV RDI,R13
CALL 0x0014b6e0
MOV RBX,RAX
TEST RAX,RAX
JZ 0x0015c763
MOV RCX,qword ptr [R15 + 0x20]
MOV RDX,qword ptr [R15 + 0x8]
MOV RSI,qword ptr [R15 + 0x10]
MOV R9,qword ptr [R15 + 0x30]
MOV R8,qword ptr [R15 + 0x28]
MOV RDI,R13
CALL 0x0015c368
MOV RBP,RAX
MOV RDX,qword ptr [R15 + 0x8]
MOV RSI,RAX
MOV RDI,qword ptr [RSP + 0x10]
CALL 0x00149d61
MOV R12,RAX
MOV RCX,qword ptr [R15 + 0x20]
MOV RDX,qword ptr [R15 + 0x8]
MOV RSI,qword ptr [R15 + 0x18]
MOV R9,qword ptr [R15 + 0x30]
MOV R8,qword ptr [R15 + 0x28]
MOV RDI,RAX
CALL 0x0015c368
MOV R14,RAX
MOV RDX,qword ptr [R15 + 0x8]
MOV RSI,RBX
MOV RDI,RAX
CALL 0x00149d61
MOV R15,RAX
MOV RDI,R14
CALL 0x00149d43
MOV RDI,R12
CALL 0x00149d43
MOV RDI,RBX
CALL 0x00149d43
MOV RDI,RBP
CALL 0x00149d43
MOV RDI,R13
CALL 0x00149d43
MOV RAX,R15
MOV RCX,qword ptr [RSP + 0x198]
XOR RCX,qword ptr FS:[0x28]
JNZ 0x0015c76d
ADD RSP,0x1a8
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RDI,R13
CALL 0x00149d43
MOV RDI,qword ptr [R15 + 0x8]
CALL 0x00149cfe
MOV R13,RAX
MOV RDI,RAX
CALL 0x0014a306
LEA EBX,[RAX + -0x1]
TEST EAX,EAX
JZ 0x0015c62d
MOV R12D,0x0
MOV EBP,0x0
JMP 0x0015c61d
MOV RDI,R13
CALL 0x00149d43
JMP 0x0015c734
CALL 0x00115250
(translation_unit "undefined8 FUN_0015c4cb(undefined8 param_1,long param_2)\n\n{\n  int iVar1;\n  long lVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  undefined8 uVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  long in_FS_OFFSET;\n  int local_1cc;\n  undefined1 local_1a8 [284];\n  undefined1 local_8c;\n  undefined1 local_8b;\n  undefined1 local_8a;\n  undefined1 local_89;\n  byte local_88 [72];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_1cc = 0;\n  uVar11 = 0x40;\nLAB_0015c734:\n  do {\n    uVar7 = FUN_00149cfe(*(undefined8 *)(param_2 + 8));\n    iVar1 = FUN_0014a306(uVar7);\n    iVar9 = iVar1 + -1;\n    if (iVar1 != 0) {\n      iVar1 = 0;\n      uVar10 = 0;\n      do {\n        if (iVar1 < 1) {\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }\n        uVar8 = uVar10 & 1;\n        uVar10 = (int)uVar10 >> 1;\n        iVar1 = iVar1 + -1;\n        FUN_0014a41b(uVar7,iVar9,uVar8);\n        iVar9 = iVar9 + -1;\n      } while (iVar9 != -1);\n    }\n    FUN_00149cd4(uVar7);\n    iVar1 = FUN_0014a527(uVar7,PTR_DAT_001ef2f0);\n    if (0 < iVar1) {\n      iVar1 = FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8));\n      if (iVar1 < 0) {\n        lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));\n        if (lVar2 != 0) {\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }\n        FUN_00149d43(uVar7);\n        goto LAB_0015c734;\n      }\n    }\n    FUN_00149d43(uVar7);\n  } while( true );\n}\n\n" (function_definition "undefined8 FUN_0015c4cb(undefined8 param_1,long param_2)\n\n{\n  int iVar1;\n  long lVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  undefined8 uVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  long in_FS_OFFSET;\n  int local_1cc;\n  undefined1 local_1a8 [284];\n  undefined1 local_8c;\n  undefined1 local_8b;\n  undefined1 local_8a;\n  undefined1 local_89;\n  byte local_88 [72];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_1cc = 0;\n  uVar11 = 0x40;\nLAB_0015c734:\n  do {\n    uVar7 = FUN_00149cfe(*(undefined8 *)(param_2 + 8));\n    iVar1 = FUN_0014a306(uVar7);\n    iVar9 = iVar1 + -1;\n    if (iVar1 != 0) {\n      iVar1 = 0;\n      uVar10 = 0;\n      do {\n        if (iVar1 < 1) {\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }\n        uVar8 = uVar10 & 1;\n        uVar10 = (int)uVar10 >> 1;\n        iVar1 = iVar1 + -1;\n        FUN_0014a41b(uVar7,iVar9,uVar8);\n        iVar9 = iVar9 + -1;\n      } while (iVar9 != -1);\n    }\n    FUN_00149cd4(uVar7);\n    iVar1 = FUN_0014a527(uVar7,PTR_DAT_001ef2f0);\n    if (0 < iVar1) {\n      iVar1 = FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8));\n      if (iVar1 < 0) {\n        lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));\n        if (lVar2 != 0) {\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }\n        FUN_00149d43(uVar7);\n        goto LAB_0015c734;\n      }\n    }\n    FUN_00149d43(uVar7);\n  } while( true );\n}" type_identifier (function_declarator "FUN_0015c4cb(undefined8 param_1,long param_2)" identifier (parameter_list "(undefined8 param_1,long param_2)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  int iVar1;\n  long lVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  undefined8 uVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  long in_FS_OFFSET;\n  int local_1cc;\n  undefined1 local_1a8 [284];\n  undefined1 local_8c;\n  undefined1 local_8b;\n  undefined1 local_8a;\n  undefined1 local_89;\n  byte local_88 [72];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_1cc = 0;\n  uVar11 = 0x40;\nLAB_0015c734:\n  do {\n    uVar7 = FUN_00149cfe(*(undefined8 *)(param_2 + 8));\n    iVar1 = FUN_0014a306(uVar7);\n    iVar9 = iVar1 + -1;\n    if (iVar1 != 0) {\n      iVar1 = 0;\n      uVar10 = 0;\n      do {\n        if (iVar1 < 1) {\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }\n        uVar8 = uVar10 & 1;\n        uVar10 = (int)uVar10 >> 1;\n        iVar1 = iVar1 + -1;\n        FUN_0014a41b(uVar7,iVar9,uVar8);\n        iVar9 = iVar9 + -1;\n      } while (iVar9 != -1);\n    }\n    FUN_00149cd4(uVar7);\n    iVar1 = FUN_0014a527(uVar7,PTR_DAT_001ef2f0);\n    if (0 < iVar1) {\n      iVar1 = FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8));\n      if (iVar1 < 0) {\n        lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));\n        if (lVar2 != 0) {\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }\n        FUN_00149d43(uVar7);\n        goto LAB_0015c734;\n      }\n    }\n    FUN_00149d43(uVar7);\n  } while( true );\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "int local_1cc;" primitive_type identifier ;) (declaration "undefined1 local_1a8 [284];" type_identifier (array_declarator "local_1a8 [284]" identifier [ number_literal ]) ;) (declaration "undefined1 local_8c;" type_identifier identifier ;) (declaration "undefined1 local_8b;" type_identifier identifier ;) (declaration "undefined1 local_8a;" type_identifier identifier ;) (declaration "undefined1 local_89;" type_identifier identifier ;) (declaration "byte local_88 [72];" type_identifier (array_declarator "local_88 [72]" identifier [ number_literal ]) ;) (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) ))))) ;) (expression_statement "local_1cc = 0;" (assignment_expression "local_1cc = 0" identifier = number_literal) ;) (expression_statement "uVar11 = 0x40;" (assignment_expression "uVar11 = 0x40" identifier = number_literal) ;) (labeled_statement "LAB_0015c734:\n  do {\n    uVar7 = FUN_00149cfe(*(undefined8 *)(param_2 + 8));\n    iVar1 = FUN_0014a306(uVar7);\n    iVar9 = iVar1 + -1;\n    if (iVar1 != 0) {\n      iVar1 = 0;\n      uVar10 = 0;\n      do {\n        if (iVar1 < 1) {\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }\n        uVar8 = uVar10 & 1;\n        uVar10 = (int)uVar10 >> 1;\n        iVar1 = iVar1 + -1;\n        FUN_0014a41b(uVar7,iVar9,uVar8);\n        iVar9 = iVar9 + -1;\n      } while (iVar9 != -1);\n    }\n    FUN_00149cd4(uVar7);\n    iVar1 = FUN_0014a527(uVar7,PTR_DAT_001ef2f0);\n    if (0 < iVar1) {\n      iVar1 = FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8));\n      if (iVar1 < 0) {\n        lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));\n        if (lVar2 != 0) {\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }\n        FUN_00149d43(uVar7);\n        goto LAB_0015c734;\n      }\n    }\n    FUN_00149d43(uVar7);\n  } while( true );" statement_identifier : (do_statement "do {\n    uVar7 = FUN_00149cfe(*(undefined8 *)(param_2 + 8));\n    iVar1 = FUN_0014a306(uVar7);\n    iVar9 = iVar1 + -1;\n    if (iVar1 != 0) {\n      iVar1 = 0;\n      uVar10 = 0;\n      do {\n        if (iVar1 < 1) {\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }\n        uVar8 = uVar10 & 1;\n        uVar10 = (int)uVar10 >> 1;\n        iVar1 = iVar1 + -1;\n        FUN_0014a41b(uVar7,iVar9,uVar8);\n        iVar9 = iVar9 + -1;\n      } while (iVar9 != -1);\n    }\n    FUN_00149cd4(uVar7);\n    iVar1 = FUN_0014a527(uVar7,PTR_DAT_001ef2f0);\n    if (0 < iVar1) {\n      iVar1 = FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8));\n      if (iVar1 < 0) {\n        lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));\n        if (lVar2 != 0) {\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }\n        FUN_00149d43(uVar7);\n        goto LAB_0015c734;\n      }\n    }\n    FUN_00149d43(uVar7);\n  } while( true );" do (compound_statement "{\n    uVar7 = FUN_00149cfe(*(undefined8 *)(param_2 + 8));\n    iVar1 = FUN_0014a306(uVar7);\n    iVar9 = iVar1 + -1;\n    if (iVar1 != 0) {\n      iVar1 = 0;\n      uVar10 = 0;\n      do {\n        if (iVar1 < 1) {\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }\n        uVar8 = uVar10 & 1;\n        uVar10 = (int)uVar10 >> 1;\n        iVar1 = iVar1 + -1;\n        FUN_0014a41b(uVar7,iVar9,uVar8);\n        iVar9 = iVar9 + -1;\n      } while (iVar9 != -1);\n    }\n    FUN_00149cd4(uVar7);\n    iVar1 = FUN_0014a527(uVar7,PTR_DAT_001ef2f0);\n    if (0 < iVar1) {\n      iVar1 = FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8));\n      if (iVar1 < 0) {\n        lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));\n        if (lVar2 != 0) {\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }\n        FUN_00149d43(uVar7);\n        goto LAB_0015c734;\n      }\n    }\n    FUN_00149d43(uVar7);\n  }" { (expression_statement "uVar7 = FUN_00149cfe(*(undefined8 *)(param_2 + 8));" (assignment_expression "uVar7 = FUN_00149cfe(*(undefined8 *)(param_2 + 8))" identifier = (call_expression "FUN_00149cfe(*(undefined8 *)(param_2 + 8))" identifier (argument_list "(*(undefined8 *)(param_2 + 8))" ( (pointer_expression "*(undefined8 *)(param_2 + 8)" * (cast_expression "(undefined8 *)(param_2 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "iVar1 = FUN_0014a306(uVar7);" (assignment_expression "iVar1 = FUN_0014a306(uVar7)" identifier = (call_expression "FUN_0014a306(uVar7)" identifier (argument_list "(uVar7)" ( identifier )))) ;) (expression_statement "iVar9 = iVar1 + -1;" (assignment_expression "iVar9 = iVar1 + -1" identifier = (binary_expression "iVar1 + -1" identifier + number_literal)) ;) (if_statement "if (iVar1 != 0) {\n      iVar1 = 0;\n      uVar10 = 0;\n      do {\n        if (iVar1 < 1) {\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }\n        uVar8 = uVar10 & 1;\n        uVar10 = (int)uVar10 >> 1;\n        iVar1 = iVar1 + -1;\n        FUN_0014a41b(uVar7,iVar9,uVar8);\n        iVar9 = iVar9 + -1;\n      } while (iVar9 != -1);\n    }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar1 = 0;\n      uVar10 = 0;\n      do {\n        if (iVar1 < 1) {\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }\n        uVar8 = uVar10 & 1;\n        uVar10 = (int)uVar10 >> 1;\n        iVar1 = iVar1 + -1;\n        FUN_0014a41b(uVar7,iVar9,uVar8);\n        iVar9 = iVar9 + -1;\n      } while (iVar9 != -1);\n    }" { (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n        if (iVar1 < 1) {\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }\n        uVar8 = uVar10 & 1;\n        uVar10 = (int)uVar10 >> 1;\n        iVar1 = iVar1 + -1;\n        FUN_0014a41b(uVar7,iVar9,uVar8);\n        iVar9 = iVar9 + -1;\n      } while (iVar9 != -1);" do (compound_statement "{\n        if (iVar1 < 1) {\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }\n        uVar8 = uVar10 & 1;\n        uVar10 = (int)uVar10 >> 1;\n        iVar1 = iVar1 + -1;\n        FUN_0014a41b(uVar7,iVar9,uVar8);\n        iVar9 = iVar9 + -1;\n      }" { (if_statement "if (iVar1 < 1) {\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }" if (parenthesized_expression "(iVar1 < 1)" ( (binary_expression "iVar1 < 1" identifier < number_literal) )) (compound_statement "{\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }" { (if_statement "if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }" if (parenthesized_expression "(0x3f < uVar11)" ( (binary_expression "0x3f < uVar11" number_literal < identifier) )) (compound_statement "{\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }" { (expression_statement "local_8c = (undefined1)((uint)local_1cc >> 0x18);" (assignment_expression "local_8c = (undefined1)((uint)local_1cc >> 0x18)" identifier = (call_expression "(undefined1)((uint)local_1cc >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)local_1cc >> 0x18)" ( (binary_expression "(uint)local_1cc >> 0x18" (cast_expression "(uint)local_1cc" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_8b = (undefined1)((uint)local_1cc >> 0x10);" (assignment_expression "local_8b = (undefined1)((uint)local_1cc >> 0x10)" identifier = (call_expression "(undefined1)((uint)local_1cc >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)local_1cc >> 0x10)" ( (binary_expression "(uint)local_1cc >> 0x10" (cast_expression "(uint)local_1cc" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_8a = (undefined1)((uint)local_1cc >> 8);" (assignment_expression "local_8a = (undefined1)((uint)local_1cc >> 8)" identifier = (call_expression "(undefined1)((uint)local_1cc >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)local_1cc >> 8)" ( (binary_expression "(uint)local_1cc >> 8" (cast_expression "(uint)local_1cc" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_89 = (undefined1)local_1cc;" (assignment_expression "local_89 = (undefined1)local_1cc" identifier = (cast_expression "(undefined1)local_1cc" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "FUN_0015e266(local_1a8);" (call_expression "FUN_0015e266(local_1a8)" identifier (argument_list "(local_1a8)" ( identifier ))) ;) (expression_statement "FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);" (call_expression "FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a)" identifier (argument_list "(local_1a8,"RSA deterministic blinding",0x1a)" ( identifier , (string_literal ""RSA deterministic blinding"" " string_content ") , number_literal ))) ;) (expression_statement "FUN_0015e34e(local_1a8,&local_8c,4);" (call_expression "FUN_0015e34e(local_1a8,&local_8c,4)" identifier (argument_list "(local_1a8,&local_8c,4)" ( identifier , (pointer_expression "&local_8c" & identifier) , number_literal ))) ;) (expression_statement "FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));" (call_expression "FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18))" identifier (argument_list "(local_1a8,*(undefined8 *)(param_2 + 0x18))" ( identifier , (pointer_expression "*(undefined8 *)(param_2 + 0x18)" * (cast_expression "(undefined8 *)(param_2 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_0015f872(local_1a8,local_88);" (call_expression "FUN_0015f872(local_1a8,local_88)" identifier (argument_list "(local_1a8,local_88)" ( identifier , identifier ))) ;) (expression_statement "local_1cc = local_1cc + 1;" (assignment_expression "local_1cc = local_1cc + 1" identifier = (binary_expression "local_1cc + 1" identifier + number_literal)) ;) (expression_statement "FUN_0015e266(local_1a8);" (call_expression "FUN_0015e266(local_1a8)" identifier (argument_list "(local_1a8)" ( identifier ))) ;) (expression_statement "FUN_0015e34e(local_1a8,local_88,0x40);" (call_expression "FUN_0015e34e(local_1a8,local_88,0x40)" identifier (argument_list "(local_1a8,local_88,0x40)" ( identifier , identifier , number_literal ))) ;) (expression_statement "FUN_0015b484(local_1a8,param_1);" (call_expression "FUN_0015b484(local_1a8,param_1)" identifier (argument_list "(local_1a8,param_1)" ( identifier , identifier ))) ;) (expression_statement "FUN_0015f872(local_1a8,local_88);" (call_expression "FUN_0015f872(local_1a8,local_88)" identifier (argument_list "(local_1a8,local_88)" ( identifier , identifier ))) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) })) (expression_statement "uVar10 = (uint)local_88[(int)uVar11];" (assignment_expression "uVar10 = (uint)local_88[(int)uVar11]" identifier = (cast_expression "(uint)local_88[(int)uVar11]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_88[(int)uVar11]" identifier [ (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "iVar1 = 8;" (assignment_expression "iVar1 = 8" identifier = number_literal) ;) })) (expression_statement "uVar8 = uVar10 & 1;" (assignment_expression "uVar8 = uVar10 & 1" identifier = (binary_expression "uVar10 & 1" identifier & number_literal)) ;) (expression_statement "uVar10 = (int)uVar10 >> 1;" (assignment_expression "uVar10 = (int)uVar10 >> 1" identifier = (binary_expression "(int)uVar10 >> 1" (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "iVar1 = iVar1 + -1;" (assignment_expression "iVar1 = iVar1 + -1" identifier = (binary_expression "iVar1 + -1" identifier + number_literal)) ;) (expression_statement "FUN_0014a41b(uVar7,iVar9,uVar8);" (call_expression "FUN_0014a41b(uVar7,iVar9,uVar8)" identifier (argument_list "(uVar7,iVar9,uVar8)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar9 != -1)" ( (binary_expression "iVar9 != -1" identifier != number_literal) )) ;) })) (expression_statement "FUN_00149cd4(uVar7);" (call_expression "FUN_00149cd4(uVar7)" identifier (argument_list "(uVar7)" ( identifier ))) ;) (expression_statement "iVar1 = FUN_0014a527(uVar7,PTR_DAT_001ef2f0);" (assignment_expression "iVar1 = FUN_0014a527(uVar7,PTR_DAT_001ef2f0)" identifier = (call_expression "FUN_0014a527(uVar7,PTR_DAT_001ef2f0)" identifier (argument_list "(uVar7,PTR_DAT_001ef2f0)" ( identifier , identifier )))) ;) (if_statement "if (0 < iVar1) {\n      iVar1 = FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8));\n      if (iVar1 < 0) {\n        lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));\n        if (lVar2 != 0) {\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }\n        FUN_00149d43(uVar7);\n        goto LAB_0015c734;\n      }\n    }" if (parenthesized_expression "(0 < iVar1)" ( (binary_expression "0 < iVar1" number_literal < identifier) )) (compound_statement "{\n      iVar1 = FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8));\n      if (iVar1 < 0) {\n        lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));\n        if (lVar2 != 0) {\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }\n        FUN_00149d43(uVar7);\n        goto LAB_0015c734;\n      }\n    }" { (expression_statement "iVar1 = FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8));" (assignment_expression "iVar1 = FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8))" identifier = (call_expression "FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8))" identifier (argument_list "(uVar7,*(undefined8 *)(param_2 + 8))" ( identifier , (pointer_expression "*(undefined8 *)(param_2 + 8)" * (cast_expression "(undefined8 *)(param_2 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar1 < 0) {\n        lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));\n        if (lVar2 != 0) {\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }\n        FUN_00149d43(uVar7);\n        goto LAB_0015c734;\n      }" if (parenthesized_expression "(iVar1 < 0)" ( (binary_expression "iVar1 < 0" identifier < number_literal) )) (compound_statement "{\n        lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));\n        if (lVar2 != 0) {\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }\n        FUN_00149d43(uVar7);\n        goto LAB_0015c734;\n      }" { (expression_statement "lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));" (assignment_expression "lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8))" identifier = (call_expression "FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8))" identifier (argument_list "(uVar7,*(undefined8 *)(param_2 + 8))" ( identifier , (pointer_expression "*(undefined8 *)(param_2 + 8)" * (cast_expression "(undefined8 *)(param_2 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) )))) ;) (if_statement "if (lVar2 != 0) {\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }" if (parenthesized_expression "(lVar2 != 0)" ( (binary_expression "lVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }" { (expression_statement "uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));" (assignment_expression "uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30))" identifier = (call_expression "FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30))" identifier (argument_list "(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30))" ( identifier , (pointer_expression "*(undefined8 *)(param_2 + 0x10)" * (cast_expression "(undefined8 *)(param_2 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(param_2 + 8)" * (cast_expression "(undefined8 *)(param_2 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(param_2 + 0x20)" * (cast_expression "(undefined8 *)(param_2 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(param_2 + 0x28)" * (cast_expression "(undefined8 *)(param_2 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x28)" ( (binary_expression "param_2 + 0x28" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(param_2 + 0x30)" * (cast_expression "(undefined8 *)(param_2 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) )))) )))) ;) (expression_statement "uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));" (assignment_expression "uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8))" identifier = (call_expression "FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8))" identifier (argument_list "(param_1,uVar3,*(undefined8 *)(param_2 + 8))" ( identifier , identifier , (pointer_expression "*(undefined8 *)(param_2 + 8)" * (cast_expression "(undefined8 *)(param_2 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));" (assignment_expression "uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30))" identifier = (call_expression "FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30))" identifier (argument_list "(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30))" ( identifier , (pointer_expression "*(undefined8 *)(param_2 + 0x18)" * (cast_expression "(undefined8 *)(param_2 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(param_2 + 8)" * (cast_expression "(undefined8 *)(param_2 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(param_2 + 0x20)" * (cast_expression "(undefined8 *)(param_2 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(param_2 + 0x28)" * (cast_expression "(undefined8 *)(param_2 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x28)" ( (binary_expression "param_2 + 0x28" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(param_2 + 0x30)" * (cast_expression "(undefined8 *)(param_2 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) )))) )))) ;) (expression_statement "uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));" (assignment_expression "uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8))" identifier = (call_expression "FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8))" identifier (argument_list "(uVar5,lVar2,*(undefined8 *)(param_2 + 8))" ( identifier , identifier , (pointer_expression "*(undefined8 *)(param_2 + 8)" * (cast_expression "(undefined8 *)(param_2 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "FUN_00149d43(uVar5);" (call_expression "FUN_00149d43(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "FUN_00149d43(uVar4);" (call_expression "FUN_00149d43(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "FUN_00149d43(lVar2);" (call_expression "FUN_00149d43(lVar2)" identifier (argument_list "(lVar2)" ( identifier ))) ;) (expression_statement "FUN_00149d43(uVar3);" (call_expression "FUN_00149d43(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))) ;) (expression_statement "FUN_00149d43(uVar7);" (call_expression "FUN_00149d43(uVar7)" identifier (argument_list "(uVar7)" ( identifier ))) ;) (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\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 uVar6;\n          }" { (return_statement "return uVar6;" return identifier ;) })) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_00149d43(uVar7);" (call_expression "FUN_00149d43(uVar7)" identifier (argument_list "(uVar7)" ( identifier ))) ;) (goto_statement "goto LAB_0015c734;" goto statement_identifier ;) })) })) (expression_statement "FUN_00149d43(uVar7);" (call_expression "FUN_00149d43(uVar7)" identifier (argument_list "(uVar7)" ( identifier ))) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit "Bignum rsa_privkey_op(Bignum input,RSAKey *key)\n\n{\n  long lVar1;\n  int iVar2;\n  Bignum_conflict q;\n  Bignum_conflict q_00;\n  Bignum_conflict b;\n  Bignum_conflict p;\n  Bignum_conflict pBVar3;\n  Bignum_conflict bn;\n  uint value;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  long in_FS_OFFSET;\n  int local_1cc;\n  SHA512_State ss;\n  uchar seqbuf [4];\n  uchar digest512 [64];\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  local_1cc = 0;\n  uVar6 = 0x40;\nLAB_0015c734:\n  do {\n    bn = copybn((Bignum_conflict)key->modulus);\n    iVar2 = bignum_bitcount(bn);\n    iVar4 = iVar2 + -1;\n    if (iVar2 != 0) {\n      iVar2 = 0;\n      uVar5 = 0;\n      do {\n        if (iVar2 < 1) {\n          if (0x3f < uVar6) {\n            seqbuf[0] = (uchar)((uint)local_1cc >> 0x18);\n            seqbuf[1] = (uchar)((uint)local_1cc >> 0x10);\n            seqbuf[2] = (uchar)((uint)local_1cc >> 8);\n            seqbuf[3] = (uchar)local_1cc;\n            SHA512_Init((SHA512_CTX *)&ss);\n            SHA512_Bytes(&ss,"RSA deterministic blinding",0x1a);\n            SHA512_Bytes(&ss,seqbuf,4);\n            sha512_mpint(&ss,key->private_exponent);\n            SHA512_Final(&ss,digest512);\n            local_1cc = local_1cc + 1;\n            SHA512_Init((SHA512_CTX *)&ss);\n            SHA512_Bytes(&ss,digest512,0x40);\n            sha512_mpint(&ss,input);\n            SHA512_Final(&ss,digest512);\n            uVar6 = 0;\n          }\n          uVar5 = (uint)digest512[(int)uVar6];\n          uVar6 = uVar6 + 1;\n          iVar2 = 8;\n        }\n        value = uVar5 & 1;\n        uVar5 = (int)uVar5 >> 1;\n        iVar2 = iVar2 + -1;\n        bignum_set_bit(bn,iVar4,value);\n        iVar4 = iVar4 + -1;\n      } while (iVar4 != -1);\n    }\n    bn_restore_invariant(bn);\n    iVar4 = bignum_cmp(bn,Zero);\n    if (0 < iVar4) {\n      iVar4 = bignum_cmp(bn,(Bignum_conflict)key->modulus);\n      if (iVar4 < 0) {\n        q = modinv(bn,(Bignum_conflict)key->modulus);\n        if (q != (Bignum_conflict)0x0) {\n          q_00 = (Bignum_conflict)crt_modpow(bn,key->exponent,key->modulus,key->p,key->q,key->iqmp);\n          b = modmul((Bignum_conflict)input,q_00,(Bignum_conflict)key->modulus);\n          p = (Bignum_conflict)\n              crt_modpow(b,key->private_exponent,key->modulus,key->p,key->q,key->iqmp);\n          pBVar3 = modmul(p,q,(Bignum_conflict)key->modulus);\n          freebn(p);\n          freebn(b);\n          freebn(q);\n          freebn(q_00);\n          freebn(bn);\n          if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return pBVar3;\n          }\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }\n        freebn(bn);\n        goto LAB_0015c734;\n      }\n    }\n    freebn(bn);\n  } while( true );\n}\n\n" (function_definition "Bignum rsa_privkey_op(Bignum input,RSAKey *key)\n\n{\n  long lVar1;\n  int iVar2;\n  Bignum_conflict q;\n  Bignum_conflict q_00;\n  Bignum_conflict b;\n  Bignum_conflict p;\n  Bignum_conflict pBVar3;\n  Bignum_conflict bn;\n  uint value;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  long in_FS_OFFSET;\n  int local_1cc;\n  SHA512_State ss;\n  uchar seqbuf [4];\n  uchar digest512 [64];\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  local_1cc = 0;\n  uVar6 = 0x40;\nLAB_0015c734:\n  do {\n    bn = copybn((Bignum_conflict)key->modulus);\n    iVar2 = bignum_bitcount(bn);\n    iVar4 = iVar2 + -1;\n    if (iVar2 != 0) {\n      iVar2 = 0;\n      uVar5 = 0;\n      do {\n        if (iVar2 < 1) {\n          if (0x3f < uVar6) {\n            seqbuf[0] = (uchar)((uint)local_1cc >> 0x18);\n            seqbuf[1] = (uchar)((uint)local_1cc >> 0x10);\n            seqbuf[2] = (uchar)((uint)local_1cc >> 8);\n            seqbuf[3] = (uchar)local_1cc;\n            SHA512_Init((SHA512_CTX *)&ss);\n            SHA512_Bytes(&ss,"RSA deterministic blinding",0x1a);\n            SHA512_Bytes(&ss,seqbuf,4);\n            sha512_mpint(&ss,key->private_exponent);\n            SHA512_Final(&ss,digest512);\n            local_1cc = local_1cc + 1;\n            SHA512_Init((SHA512_CTX *)&ss);\n            SHA512_Bytes(&ss,digest512,0x40);\n            sha512_mpint(&ss,input);\n            SHA512_Final(&ss,digest512);\n            uVar6 = 0;\n          }\n          uVar5 = (uint)digest512[(int)uVar6];\n          uVar6 = uVar6 + 1;\n          iVar2 = 8;\n        }\n        value = uVar5 & 1;\n        uVar5 = (int)uVar5 >> 1;\n        iVar2 = iVar2 + -1;\n        bignum_set_bit(bn,iVar4,value);\n        iVar4 = iVar4 + -1;\n      } while (iVar4 != -1);\n    }\n    bn_restore_invariant(bn);\n    iVar4 = bignum_cmp(bn,Zero);\n    if (0 < iVar4) {\n      iVar4 = bignum_cmp(bn,(Bignum_conflict)key->modulus);\n      if (iVar4 < 0) {\n        q = modinv(bn,(Bignum_conflict)key->modulus);\n        if (q != (Bignum_conflict)0x0) {\n          q_00 = (Bignum_conflict)crt_modpow(bn,key->exponent,key->modulus,key->p,key->q,key->iqmp);\n          b = modmul((Bignum_conflict)input,q_00,(Bignum_conflict)key->modulus);\n          p = (Bignum_conflict)\n              crt_modpow(b,key->private_exponent,key->modulus,key->p,key->q,key->iqmp);\n          pBVar3 = modmul(p,q,(Bignum_conflict)key->modulus);\n          freebn(p);\n          freebn(b);\n          freebn(q);\n          freebn(q_00);\n          freebn(bn);\n          if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return pBVar3;\n          }\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }\n        freebn(bn);\n        goto LAB_0015c734;\n      }\n    }\n    freebn(bn);\n  } while( true );\n}" type_identifier (function_declarator "rsa_privkey_op(Bignum input,RSAKey *key)" identifier (parameter_list "(Bignum input,RSAKey *key)" ( (parameter_declaration "Bignum input" type_identifier identifier) , (parameter_declaration "RSAKey *key" type_identifier (pointer_declarator "*key" * identifier)) ))) (compound_statement "{\n  long lVar1;\n  int iVar2;\n  Bignum_conflict q;\n  Bignum_conflict q_00;\n  Bignum_conflict b;\n  Bignum_conflict p;\n  Bignum_conflict pBVar3;\n  Bignum_conflict bn;\n  uint value;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  long in_FS_OFFSET;\n  int local_1cc;\n  SHA512_State ss;\n  uchar seqbuf [4];\n  uchar digest512 [64];\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  local_1cc = 0;\n  uVar6 = 0x40;\nLAB_0015c734:\n  do {\n    bn = copybn((Bignum_conflict)key->modulus);\n    iVar2 = bignum_bitcount(bn);\n    iVar4 = iVar2 + -1;\n    if (iVar2 != 0) {\n      iVar2 = 0;\n      uVar5 = 0;\n      do {\n        if (iVar2 < 1) {\n          if (0x3f < uVar6) {\n            seqbuf[0] = (uchar)((uint)local_1cc >> 0x18);\n            seqbuf[1] = (uchar)((uint)local_1cc >> 0x10);\n            seqbuf[2] = (uchar)((uint)local_1cc >> 8);\n            seqbuf[3] = (uchar)local_1cc;\n            SHA512_Init((SHA512_CTX *)&ss);\n            SHA512_Bytes(&ss,"RSA deterministic blinding",0x1a);\n            SHA512_Bytes(&ss,seqbuf,4);\n            sha512_mpint(&ss,key->private_exponent);\n            SHA512_Final(&ss,digest512);\n            local_1cc = local_1cc + 1;\n            SHA512_Init((SHA512_CTX *)&ss);\n            SHA512_Bytes(&ss,digest512,0x40);\n            sha512_mpint(&ss,input);\n            SHA512_Final(&ss,digest512);\n            uVar6 = 0;\n          }\n          uVar5 = (uint)digest512[(int)uVar6];\n          uVar6 = uVar6 + 1;\n          iVar2 = 8;\n        }\n        value = uVar5 & 1;\n        uVar5 = (int)uVar5 >> 1;\n        iVar2 = iVar2 + -1;\n        bignum_set_bit(bn,iVar4,value);\n        iVar4 = iVar4 + -1;\n      } while (iVar4 != -1);\n    }\n    bn_restore_invariant(bn);\n    iVar4 = bignum_cmp(bn,Zero);\n    if (0 < iVar4) {\n      iVar4 = bignum_cmp(bn,(Bignum_conflict)key->modulus);\n      if (iVar4 < 0) {\n        q = modinv(bn,(Bignum_conflict)key->modulus);\n        if (q != (Bignum_conflict)0x0) {\n          q_00 = (Bignum_conflict)crt_modpow(bn,key->exponent,key->modulus,key->p,key->q,key->iqmp);\n          b = modmul((Bignum_conflict)input,q_00,(Bignum_conflict)key->modulus);\n          p = (Bignum_conflict)\n              crt_modpow(b,key->private_exponent,key->modulus,key->p,key->q,key->iqmp);\n          pBVar3 = modmul(p,q,(Bignum_conflict)key->modulus);\n          freebn(p);\n          freebn(b);\n          freebn(q);\n          freebn(q_00);\n          freebn(bn);\n          if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return pBVar3;\n          }\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }\n        freebn(bn);\n        goto LAB_0015c734;\n      }\n    }\n    freebn(bn);\n  } while( true );\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "Bignum_conflict q;" type_identifier identifier ;) (declaration "Bignum_conflict q_00;" type_identifier identifier ;) (declaration "Bignum_conflict b;" type_identifier identifier ;) (declaration "Bignum_conflict p;" type_identifier identifier ;) (declaration "Bignum_conflict pBVar3;" type_identifier identifier ;) (declaration "Bignum_conflict bn;" type_identifier identifier ;) (declaration "uint value;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "int local_1cc;" primitive_type identifier ;) (declaration "SHA512_State ss;" type_identifier identifier ;) (declaration "uchar seqbuf [4];" type_identifier (array_declarator "seqbuf [4]" identifier [ number_literal ]) ;) (declaration "uchar digest512 [64];" type_identifier (array_declarator "digest512 [64]" identifier [ number_literal ]) ;) (expression_statement "lVar1 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lVar1 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "local_1cc = 0;" (assignment_expression "local_1cc = 0" identifier = number_literal) ;) (expression_statement "uVar6 = 0x40;" (assignment_expression "uVar6 = 0x40" identifier = number_literal) ;) (labeled_statement "LAB_0015c734:\n  do {\n    bn = copybn((Bignum_conflict)key->modulus);\n    iVar2 = bignum_bitcount(bn);\n    iVar4 = iVar2 + -1;\n    if (iVar2 != 0) {\n      iVar2 = 0;\n      uVar5 = 0;\n      do {\n        if (iVar2 < 1) {\n          if (0x3f < uVar6) {\n            seqbuf[0] = (uchar)((uint)local_1cc >> 0x18);\n            seqbuf[1] = (uchar)((uint)local_1cc >> 0x10);\n            seqbuf[2] = (uchar)((uint)local_1cc >> 8);\n            seqbuf[3] = (uchar)local_1cc;\n            SHA512_Init((SHA512_CTX *)&ss);\n            SHA512_Bytes(&ss,"RSA deterministic blinding",0x1a);\n            SHA512_Bytes(&ss,seqbuf,4);\n            sha512_mpint(&ss,key->private_exponent);\n            SHA512_Final(&ss,digest512);\n            local_1cc = local_1cc + 1;\n            SHA512_Init((SHA512_CTX *)&ss);\n            SHA512_Bytes(&ss,digest512,0x40);\n            sha512_mpint(&ss,input);\n            SHA512_Final(&ss,digest512);\n            uVar6 = 0;\n          }\n          uVar5 = (uint)digest512[(int)uVar6];\n          uVar6 = uVar6 + 1;\n          iVar2 = 8;\n        }\n        value = uVar5 & 1;\n        uVar5 = (int)uVar5 >> 1;\n        iVar2 = iVar2 + -1;\n        bignum_set_bit(bn,iVar4,value);\n        iVar4 = iVar4 + -1;\n      } while (iVar4 != -1);\n    }\n    bn_restore_invariant(bn);\n    iVar4 = bignum_cmp(bn,Zero);\n    if (0 < iVar4) {\n      iVar4 = bignum_cmp(bn,(Bignum_conflict)key->modulus);\n      if (iVar4 < 0) {\n        q = modinv(bn,(Bignum_conflict)key->modulus);\n        if (q != (Bignum_conflict)0x0) {\n          q_00 = (Bignum_conflict)crt_modpow(bn,key->exponent,key->modulus,key->p,key->q,key->iqmp);\n          b = modmul((Bignum_conflict)input,q_00,(Bignum_conflict)key->modulus);\n          p = (Bignum_conflict)\n              crt_modpow(b,key->private_exponent,key->modulus,key->p,key->q,key->iqmp);\n          pBVar3 = modmul(p,q,(Bignum_conflict)key->modulus);\n          freebn(p);\n          freebn(b);\n          freebn(q);\n          freebn(q_00);\n          freebn(bn);\n          if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return pBVar3;\n          }\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }\n        freebn(bn);\n        goto LAB_0015c734;\n      }\n    }\n    freebn(bn);\n  } while( true );" statement_identifier : (do_statement "do {\n    bn = copybn((Bignum_conflict)key->modulus);\n    iVar2 = bignum_bitcount(bn);\n    iVar4 = iVar2 + -1;\n    if (iVar2 != 0) {\n      iVar2 = 0;\n      uVar5 = 0;\n      do {\n        if (iVar2 < 1) {\n          if (0x3f < uVar6) {\n            seqbuf[0] = (uchar)((uint)local_1cc >> 0x18);\n            seqbuf[1] = (uchar)((uint)local_1cc >> 0x10);\n            seqbuf[2] = (uchar)((uint)local_1cc >> 8);\n            seqbuf[3] = (uchar)local_1cc;\n            SHA512_Init((SHA512_CTX *)&ss);\n            SHA512_Bytes(&ss,"RSA deterministic blinding",0x1a);\n            SHA512_Bytes(&ss,seqbuf,4);\n            sha512_mpint(&ss,key->private_exponent);\n            SHA512_Final(&ss,digest512);\n            local_1cc = local_1cc + 1;\n            SHA512_Init((SHA512_CTX *)&ss);\n            SHA512_Bytes(&ss,digest512,0x40);\n            sha512_mpint(&ss,input);\n            SHA512_Final(&ss,digest512);\n            uVar6 = 0;\n          }\n          uVar5 = (uint)digest512[(int)uVar6];\n          uVar6 = uVar6 + 1;\n          iVar2 = 8;\n        }\n        value = uVar5 & 1;\n        uVar5 = (int)uVar5 >> 1;\n        iVar2 = iVar2 + -1;\n        bignum_set_bit(bn,iVar4,value);\n        iVar4 = iVar4 + -1;\n      } while (iVar4 != -1);\n    }\n    bn_restore_invariant(bn);\n    iVar4 = bignum_cmp(bn,Zero);\n    if (0 < iVar4) {\n      iVar4 = bignum_cmp(bn,(Bignum_conflict)key->modulus);\n      if (iVar4 < 0) {\n        q = modinv(bn,(Bignum_conflict)key->modulus);\n        if (q != (Bignum_conflict)0x0) {\n          q_00 = (Bignum_conflict)crt_modpow(bn,key->exponent,key->modulus,key->p,key->q,key->iqmp);\n          b = modmul((Bignum_conflict)input,q_00,(Bignum_conflict)key->modulus);\n          p = (Bignum_conflict)\n              crt_modpow(b,key->private_exponent,key->modulus,key->p,key->q,key->iqmp);\n          pBVar3 = modmul(p,q,(Bignum_conflict)key->modulus);\n          freebn(p);\n          freebn(b);\n          freebn(q);\n          freebn(q_00);\n          freebn(bn);\n          if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return pBVar3;\n          }\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }\n        freebn(bn);\n        goto LAB_0015c734;\n      }\n    }\n    freebn(bn);\n  } while( true );" do (compound_statement "{\n    bn = copybn((Bignum_conflict)key->modulus);\n    iVar2 = bignum_bitcount(bn);\n    iVar4 = iVar2 + -1;\n    if (iVar2 != 0) {\n      iVar2 = 0;\n      uVar5 = 0;\n      do {\n        if (iVar2 < 1) {\n          if (0x3f < uVar6) {\n            seqbuf[0] = (uchar)((uint)local_1cc >> 0x18);\n            seqbuf[1] = (uchar)((uint)local_1cc >> 0x10);\n            seqbuf[2] = (uchar)((uint)local_1cc >> 8);\n            seqbuf[3] = (uchar)local_1cc;\n            SHA512_Init((SHA512_CTX *)&ss);\n            SHA512_Bytes(&ss,"RSA deterministic blinding",0x1a);\n            SHA512_Bytes(&ss,seqbuf,4);\n            sha512_mpint(&ss,key->private_exponent);\n            SHA512_Final(&ss,digest512);\n            local_1cc = local_1cc + 1;\n            SHA512_Init((SHA512_CTX *)&ss);\n            SHA512_Bytes(&ss,digest512,0x40);\n            sha512_mpint(&ss,input);\n            SHA512_Final(&ss,digest512);\n            uVar6 = 0;\n          }\n          uVar5 = (uint)digest512[(int)uVar6];\n          uVar6 = uVar6 + 1;\n          iVar2 = 8;\n        }\n        value = uVar5 & 1;\n        uVar5 = (int)uVar5 >> 1;\n        iVar2 = iVar2 + -1;\n        bignum_set_bit(bn,iVar4,value);\n        iVar4 = iVar4 + -1;\n      } while (iVar4 != -1);\n    }\n    bn_restore_invariant(bn);\n    iVar4 = bignum_cmp(bn,Zero);\n    if (0 < iVar4) {\n      iVar4 = bignum_cmp(bn,(Bignum_conflict)key->modulus);\n      if (iVar4 < 0) {\n        q = modinv(bn,(Bignum_conflict)key->modulus);\n        if (q != (Bignum_conflict)0x0) {\n          q_00 = (Bignum_conflict)crt_modpow(bn,key->exponent,key->modulus,key->p,key->q,key->iqmp);\n          b = modmul((Bignum_conflict)input,q_00,(Bignum_conflict)key->modulus);\n          p = (Bignum_conflict)\n              crt_modpow(b,key->private_exponent,key->modulus,key->p,key->q,key->iqmp);\n          pBVar3 = modmul(p,q,(Bignum_conflict)key->modulus);\n          freebn(p);\n          freebn(b);\n          freebn(q);\n          freebn(q_00);\n          freebn(bn);\n          if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return pBVar3;\n          }\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }\n        freebn(bn);\n        goto LAB_0015c734;\n      }\n    }\n    freebn(bn);\n  }" { (expression_statement "bn = copybn((Bignum_conflict)key->modulus);" (assignment_expression "bn = copybn((Bignum_conflict)key->modulus)" identifier = (call_expression "copybn((Bignum_conflict)key->modulus)" identifier (argument_list "((Bignum_conflict)key->modulus)" ( (cast_expression "(Bignum_conflict)key->modulus" ( (type_descriptor "Bignum_conflict" type_identifier) ) (field_expression "key->modulus" identifier -> field_identifier)) )))) ;) (expression_statement "iVar2 = bignum_bitcount(bn);" (assignment_expression "iVar2 = bignum_bitcount(bn)" identifier = (call_expression "bignum_bitcount(bn)" identifier (argument_list "(bn)" ( identifier )))) ;) (expression_statement "iVar4 = iVar2 + -1;" (assignment_expression "iVar4 = iVar2 + -1" identifier = (binary_expression "iVar2 + -1" identifier + number_literal)) ;) (if_statement "if (iVar2 != 0) {\n      iVar2 = 0;\n      uVar5 = 0;\n      do {\n        if (iVar2 < 1) {\n          if (0x3f < uVar6) {\n            seqbuf[0] = (uchar)((uint)local_1cc >> 0x18);\n            seqbuf[1] = (uchar)((uint)local_1cc >> 0x10);\n            seqbuf[2] = (uchar)((uint)local_1cc >> 8);\n            seqbuf[3] = (uchar)local_1cc;\n            SHA512_Init((SHA512_CTX *)&ss);\n            SHA512_Bytes(&ss,"RSA deterministic blinding",0x1a);\n            SHA512_Bytes(&ss,seqbuf,4);\n            sha512_mpint(&ss,key->private_exponent);\n            SHA512_Final(&ss,digest512);\n            local_1cc = local_1cc + 1;\n            SHA512_Init((SHA512_CTX *)&ss);\n            SHA512_Bytes(&ss,digest512,0x40);\n            sha512_mpint(&ss,input);\n            SHA512_Final(&ss,digest512);\n            uVar6 = 0;\n          }\n          uVar5 = (uint)digest512[(int)uVar6];\n          uVar6 = uVar6 + 1;\n          iVar2 = 8;\n        }\n        value = uVar5 & 1;\n        uVar5 = (int)uVar5 >> 1;\n        iVar2 = iVar2 + -1;\n        bignum_set_bit(bn,iVar4,value);\n        iVar4 = iVar4 + -1;\n      } while (iVar4 != -1);\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar2 = 0;\n      uVar5 = 0;\n      do {\n        if (iVar2 < 1) {\n          if (0x3f < uVar6) {\n            seqbuf[0] = (uchar)((uint)local_1cc >> 0x18);\n            seqbuf[1] = (uchar)((uint)local_1cc >> 0x10);\n            seqbuf[2] = (uchar)((uint)local_1cc >> 8);\n            seqbuf[3] = (uchar)local_1cc;\n            SHA512_Init((SHA512_CTX *)&ss);\n            SHA512_Bytes(&ss,"RSA deterministic blinding",0x1a);\n            SHA512_Bytes(&ss,seqbuf,4);\n            sha512_mpint(&ss,key->private_exponent);\n            SHA512_Final(&ss,digest512);\n            local_1cc = local_1cc + 1;\n            SHA512_Init((SHA512_CTX *)&ss);\n            SHA512_Bytes(&ss,digest512,0x40);\n            sha512_mpint(&ss,input);\n            SHA512_Final(&ss,digest512);\n            uVar6 = 0;\n          }\n          uVar5 = (uint)digest512[(int)uVar6];\n          uVar6 = uVar6 + 1;\n          iVar2 = 8;\n        }\n        value = uVar5 & 1;\n        uVar5 = (int)uVar5 >> 1;\n        iVar2 = iVar2 + -1;\n        bignum_set_bit(bn,iVar4,value);\n        iVar4 = iVar4 + -1;\n      } while (iVar4 != -1);\n    }" { (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n        if (iVar2 < 1) {\n          if (0x3f < uVar6) {\n            seqbuf[0] = (uchar)((uint)local_1cc >> 0x18);\n            seqbuf[1] = (uchar)((uint)local_1cc >> 0x10);\n            seqbuf[2] = (uchar)((uint)local_1cc >> 8);\n            seqbuf[3] = (uchar)local_1cc;\n            SHA512_Init((SHA512_CTX *)&ss);\n            SHA512_Bytes(&ss,"RSA deterministic blinding",0x1a);\n            SHA512_Bytes(&ss,seqbuf,4);\n            sha512_mpint(&ss,key->private_exponent);\n            SHA512_Final(&ss,digest512);\n            local_1cc = local_1cc + 1;\n            SHA512_Init((SHA512_CTX *)&ss);\n            SHA512_Bytes(&ss,digest512,0x40);\n            sha512_mpint(&ss,input);\n            SHA512_Final(&ss,digest512);\n            uVar6 = 0;\n          }\n          uVar5 = (uint)digest512[(int)uVar6];\n          uVar6 = uVar6 + 1;\n          iVar2 = 8;\n        }\n        value = uVar5 & 1;\n        uVar5 = (int)uVar5 >> 1;\n        iVar2 = iVar2 + -1;\n        bignum_set_bit(bn,iVar4,value);\n        iVar4 = iVar4 + -1;\n      } while (iVar4 != -1);" do (compound_statement "{\n        if (iVar2 < 1) {\n          if (0x3f < uVar6) {\n            seqbuf[0] = (uchar)((uint)local_1cc >> 0x18);\n            seqbuf[1] = (uchar)((uint)local_1cc >> 0x10);\n            seqbuf[2] = (uchar)((uint)local_1cc >> 8);\n            seqbuf[3] = (uchar)local_1cc;\n            SHA512_Init((SHA512_CTX *)&ss);\n            SHA512_Bytes(&ss,"RSA deterministic blinding",0x1a);\n            SHA512_Bytes(&ss,seqbuf,4);\n            sha512_mpint(&ss,key->private_exponent);\n            SHA512_Final(&ss,digest512);\n            local_1cc = local_1cc + 1;\n            SHA512_Init((SHA512_CTX *)&ss);\n            SHA512_Bytes(&ss,digest512,0x40);\n            sha512_mpint(&ss,input);\n            SHA512_Final(&ss,digest512);\n            uVar6 = 0;\n          }\n          uVar5 = (uint)digest512[(int)uVar6];\n          uVar6 = uVar6 + 1;\n          iVar2 = 8;\n        }\n        value = uVar5 & 1;\n        uVar5 = (int)uVar5 >> 1;\n        iVar2 = iVar2 + -1;\n        bignum_set_bit(bn,iVar4,value);\n        iVar4 = iVar4 + -1;\n      }" { (if_statement "if (iVar2 < 1) {\n          if (0x3f < uVar6) {\n            seqbuf[0] = (uchar)((uint)local_1cc >> 0x18);\n            seqbuf[1] = (uchar)((uint)local_1cc >> 0x10);\n            seqbuf[2] = (uchar)((uint)local_1cc >> 8);\n            seqbuf[3] = (uchar)local_1cc;\n            SHA512_Init((SHA512_CTX *)&ss);\n            SHA512_Bytes(&ss,"RSA deterministic blinding",0x1a);\n            SHA512_Bytes(&ss,seqbuf,4);\n            sha512_mpint(&ss,key->private_exponent);\n            SHA512_Final(&ss,digest512);\n            local_1cc = local_1cc + 1;\n            SHA512_Init((SHA512_CTX *)&ss);\n            SHA512_Bytes(&ss,digest512,0x40);\n            sha512_mpint(&ss,input);\n            SHA512_Final(&ss,digest512);\n            uVar6 = 0;\n          }\n          uVar5 = (uint)digest512[(int)uVar6];\n          uVar6 = uVar6 + 1;\n          iVar2 = 8;\n        }" if (parenthesized_expression "(iVar2 < 1)" ( (binary_expression "iVar2 < 1" identifier < number_literal) )) (compound_statement "{\n          if (0x3f < uVar6) {\n            seqbuf[0] = (uchar)((uint)local_1cc >> 0x18);\n            seqbuf[1] = (uchar)((uint)local_1cc >> 0x10);\n            seqbuf[2] = (uchar)((uint)local_1cc >> 8);\n            seqbuf[3] = (uchar)local_1cc;\n            SHA512_Init((SHA512_CTX *)&ss);\n            SHA512_Bytes(&ss,"RSA deterministic blinding",0x1a);\n            SHA512_Bytes(&ss,seqbuf,4);\n            sha512_mpint(&ss,key->private_exponent);\n            SHA512_Final(&ss,digest512);\n            local_1cc = local_1cc + 1;\n            SHA512_Init((SHA512_CTX *)&ss);\n            SHA512_Bytes(&ss,digest512,0x40);\n            sha512_mpint(&ss,input);\n            SHA512_Final(&ss,digest512);\n            uVar6 = 0;\n          }\n          uVar5 = (uint)digest512[(int)uVar6];\n          uVar6 = uVar6 + 1;\n          iVar2 = 8;\n        }" { (if_statement "if (0x3f < uVar6) {\n            seqbuf[0] = (uchar)((uint)local_1cc >> 0x18);\n            seqbuf[1] = (uchar)((uint)local_1cc >> 0x10);\n            seqbuf[2] = (uchar)((uint)local_1cc >> 8);\n            seqbuf[3] = (uchar)local_1cc;\n            SHA512_Init((SHA512_CTX *)&ss);\n            SHA512_Bytes(&ss,"RSA deterministic blinding",0x1a);\n            SHA512_Bytes(&ss,seqbuf,4);\n            sha512_mpint(&ss,key->private_exponent);\n            SHA512_Final(&ss,digest512);\n            local_1cc = local_1cc + 1;\n            SHA512_Init((SHA512_CTX *)&ss);\n            SHA512_Bytes(&ss,digest512,0x40);\n            sha512_mpint(&ss,input);\n            SHA512_Final(&ss,digest512);\n            uVar6 = 0;\n          }" if (parenthesized_expression "(0x3f < uVar6)" ( (binary_expression "0x3f < uVar6" number_literal < identifier) )) (compound_statement "{\n            seqbuf[0] = (uchar)((uint)local_1cc >> 0x18);\n            seqbuf[1] = (uchar)((uint)local_1cc >> 0x10);\n            seqbuf[2] = (uchar)((uint)local_1cc >> 8);\n            seqbuf[3] = (uchar)local_1cc;\n            SHA512_Init((SHA512_CTX *)&ss);\n            SHA512_Bytes(&ss,"RSA deterministic blinding",0x1a);\n            SHA512_Bytes(&ss,seqbuf,4);\n            sha512_mpint(&ss,key->private_exponent);\n            SHA512_Final(&ss,digest512);\n            local_1cc = local_1cc + 1;\n            SHA512_Init((SHA512_CTX *)&ss);\n            SHA512_Bytes(&ss,digest512,0x40);\n            sha512_mpint(&ss,input);\n            SHA512_Final(&ss,digest512);\n            uVar6 = 0;\n          }" { (expression_statement "seqbuf[0] = (uchar)((uint)local_1cc >> 0x18);" (assignment_expression "seqbuf[0] = (uchar)((uint)local_1cc >> 0x18)" (subscript_expression "seqbuf[0]" identifier [ number_literal ]) = (call_expression "(uchar)((uint)local_1cc >> 0x18)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((uint)local_1cc >> 0x18)" ( (binary_expression "(uint)local_1cc >> 0x18" (cast_expression "(uint)local_1cc" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "seqbuf[1] = (uchar)((uint)local_1cc >> 0x10);" (assignment_expression "seqbuf[1] = (uchar)((uint)local_1cc >> 0x10)" (subscript_expression "seqbuf[1]" identifier [ number_literal ]) = (call_expression "(uchar)((uint)local_1cc >> 0x10)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((uint)local_1cc >> 0x10)" ( (binary_expression "(uint)local_1cc >> 0x10" (cast_expression "(uint)local_1cc" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "seqbuf[2] = (uchar)((uint)local_1cc >> 8);" (assignment_expression "seqbuf[2] = (uchar)((uint)local_1cc >> 8)" (subscript_expression "seqbuf[2]" identifier [ number_literal ]) = (call_expression "(uchar)((uint)local_1cc >> 8)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((uint)local_1cc >> 8)" ( (binary_expression "(uint)local_1cc >> 8" (cast_expression "(uint)local_1cc" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "seqbuf[3] = (uchar)local_1cc;" (assignment_expression "seqbuf[3] = (uchar)local_1cc" (subscript_expression "seqbuf[3]" identifier [ number_literal ]) = (cast_expression "(uchar)local_1cc" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "SHA512_Init((SHA512_CTX *)&ss);" (call_expression "SHA512_Init((SHA512_CTX *)&ss)" identifier (argument_list "((SHA512_CTX *)&ss)" ( (cast_expression "(SHA512_CTX *)&ss" ( (type_descriptor "SHA512_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ss" & identifier)) ))) ;) (expression_statement "SHA512_Bytes(&ss,"RSA deterministic blinding",0x1a);" (call_expression "SHA512_Bytes(&ss,"RSA deterministic blinding",0x1a)" identifier (argument_list "(&ss,"RSA deterministic blinding",0x1a)" ( (pointer_expression "&ss" & identifier) , (string_literal ""RSA deterministic blinding"" " string_content ") , number_literal ))) ;) (expression_statement "SHA512_Bytes(&ss,seqbuf,4);" (call_expression "SHA512_Bytes(&ss,seqbuf,4)" identifier (argument_list "(&ss,seqbuf,4)" ( (pointer_expression "&ss" & identifier) , identifier , number_literal ))) ;) (expression_statement "sha512_mpint(&ss,key->private_exponent);" (call_expression "sha512_mpint(&ss,key->private_exponent)" identifier (argument_list "(&ss,key->private_exponent)" ( (pointer_expression "&ss" & identifier) , (field_expression "key->private_exponent" identifier -> field_identifier) ))) ;) (expression_statement "SHA512_Final(&ss,digest512);" (call_expression "SHA512_Final(&ss,digest512)" identifier (argument_list "(&ss,digest512)" ( (pointer_expression "&ss" & identifier) , identifier ))) ;) (expression_statement "local_1cc = local_1cc + 1;" (assignment_expression "local_1cc = local_1cc + 1" identifier = (binary_expression "local_1cc + 1" identifier + number_literal)) ;) (expression_statement "SHA512_Init((SHA512_CTX *)&ss);" (call_expression "SHA512_Init((SHA512_CTX *)&ss)" identifier (argument_list "((SHA512_CTX *)&ss)" ( (cast_expression "(SHA512_CTX *)&ss" ( (type_descriptor "SHA512_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ss" & identifier)) ))) ;) (expression_statement "SHA512_Bytes(&ss,digest512,0x40);" (call_expression "SHA512_Bytes(&ss,digest512,0x40)" identifier (argument_list "(&ss,digest512,0x40)" ( (pointer_expression "&ss" & identifier) , identifier , number_literal ))) ;) (expression_statement "sha512_mpint(&ss,input);" (call_expression "sha512_mpint(&ss,input)" identifier (argument_list "(&ss,input)" ( (pointer_expression "&ss" & identifier) , identifier ))) ;) (expression_statement "SHA512_Final(&ss,digest512);" (call_expression "SHA512_Final(&ss,digest512)" identifier (argument_list "(&ss,digest512)" ( (pointer_expression "&ss" & identifier) , identifier ))) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) })) (expression_statement "uVar5 = (uint)digest512[(int)uVar6];" (assignment_expression "uVar5 = (uint)digest512[(int)uVar6]" identifier = (cast_expression "(uint)digest512[(int)uVar6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "digest512[(int)uVar6]" identifier [ (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (expression_statement "iVar2 = 8;" (assignment_expression "iVar2 = 8" identifier = number_literal) ;) })) (expression_statement "value = uVar5 & 1;" (assignment_expression "value = uVar5 & 1" identifier = (binary_expression "uVar5 & 1" identifier & number_literal)) ;) (expression_statement "uVar5 = (int)uVar5 >> 1;" (assignment_expression "uVar5 = (int)uVar5 >> 1" identifier = (binary_expression "(int)uVar5 >> 1" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "iVar2 = iVar2 + -1;" (assignment_expression "iVar2 = iVar2 + -1" identifier = (binary_expression "iVar2 + -1" identifier + number_literal)) ;) (expression_statement "bignum_set_bit(bn,iVar4,value);" (call_expression "bignum_set_bit(bn,iVar4,value)" identifier (argument_list "(bn,iVar4,value)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar4 != -1)" ( (binary_expression "iVar4 != -1" identifier != number_literal) )) ;) })) (expression_statement "bn_restore_invariant(bn);" (call_expression "bn_restore_invariant(bn)" identifier (argument_list "(bn)" ( identifier ))) ;) (expression_statement "iVar4 = bignum_cmp(bn,Zero);" (assignment_expression "iVar4 = bignum_cmp(bn,Zero)" identifier = (call_expression "bignum_cmp(bn,Zero)" identifier (argument_list "(bn,Zero)" ( identifier , identifier )))) ;) (if_statement "if (0 < iVar4) {\n      iVar4 = bignum_cmp(bn,(Bignum_conflict)key->modulus);\n      if (iVar4 < 0) {\n        q = modinv(bn,(Bignum_conflict)key->modulus);\n        if (q != (Bignum_conflict)0x0) {\n          q_00 = (Bignum_conflict)crt_modpow(bn,key->exponent,key->modulus,key->p,key->q,key->iqmp);\n          b = modmul((Bignum_conflict)input,q_00,(Bignum_conflict)key->modulus);\n          p = (Bignum_conflict)\n              crt_modpow(b,key->private_exponent,key->modulus,key->p,key->q,key->iqmp);\n          pBVar3 = modmul(p,q,(Bignum_conflict)key->modulus);\n          freebn(p);\n          freebn(b);\n          freebn(q);\n          freebn(q_00);\n          freebn(bn);\n          if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return pBVar3;\n          }\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }\n        freebn(bn);\n        goto LAB_0015c734;\n      }\n    }" if (parenthesized_expression "(0 < iVar4)" ( (binary_expression "0 < iVar4" number_literal < identifier) )) (compound_statement "{\n      iVar4 = bignum_cmp(bn,(Bignum_conflict)key->modulus);\n      if (iVar4 < 0) {\n        q = modinv(bn,(Bignum_conflict)key->modulus);\n        if (q != (Bignum_conflict)0x0) {\n          q_00 = (Bignum_conflict)crt_modpow(bn,key->exponent,key->modulus,key->p,key->q,key->iqmp);\n          b = modmul((Bignum_conflict)input,q_00,(Bignum_conflict)key->modulus);\n          p = (Bignum_conflict)\n              crt_modpow(b,key->private_exponent,key->modulus,key->p,key->q,key->iqmp);\n          pBVar3 = modmul(p,q,(Bignum_conflict)key->modulus);\n          freebn(p);\n          freebn(b);\n          freebn(q);\n          freebn(q_00);\n          freebn(bn);\n          if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return pBVar3;\n          }\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }\n        freebn(bn);\n        goto LAB_0015c734;\n      }\n    }" { (expression_statement "iVar4 = bignum_cmp(bn,(Bignum_conflict)key->modulus);" (assignment_expression "iVar4 = bignum_cmp(bn,(Bignum_conflict)key->modulus)" identifier = (call_expression "bignum_cmp(bn,(Bignum_conflict)key->modulus)" identifier (argument_list "(bn,(Bignum_conflict)key->modulus)" ( identifier , (cast_expression "(Bignum_conflict)key->modulus" ( (type_descriptor "Bignum_conflict" type_identifier) ) (field_expression "key->modulus" identifier -> field_identifier)) )))) ;) (if_statement "if (iVar4 < 0) {\n        q = modinv(bn,(Bignum_conflict)key->modulus);\n        if (q != (Bignum_conflict)0x0) {\n          q_00 = (Bignum_conflict)crt_modpow(bn,key->exponent,key->modulus,key->p,key->q,key->iqmp);\n          b = modmul((Bignum_conflict)input,q_00,(Bignum_conflict)key->modulus);\n          p = (Bignum_conflict)\n              crt_modpow(b,key->private_exponent,key->modulus,key->p,key->q,key->iqmp);\n          pBVar3 = modmul(p,q,(Bignum_conflict)key->modulus);\n          freebn(p);\n          freebn(b);\n          freebn(q);\n          freebn(q_00);\n          freebn(bn);\n          if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return pBVar3;\n          }\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }\n        freebn(bn);\n        goto LAB_0015c734;\n      }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n        q = modinv(bn,(Bignum_conflict)key->modulus);\n        if (q != (Bignum_conflict)0x0) {\n          q_00 = (Bignum_conflict)crt_modpow(bn,key->exponent,key->modulus,key->p,key->q,key->iqmp);\n          b = modmul((Bignum_conflict)input,q_00,(Bignum_conflict)key->modulus);\n          p = (Bignum_conflict)\n              crt_modpow(b,key->private_exponent,key->modulus,key->p,key->q,key->iqmp);\n          pBVar3 = modmul(p,q,(Bignum_conflict)key->modulus);\n          freebn(p);\n          freebn(b);\n          freebn(q);\n          freebn(q_00);\n          freebn(bn);\n          if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return pBVar3;\n          }\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }\n        freebn(bn);\n        goto LAB_0015c734;\n      }" { (expression_statement "q = modinv(bn,(Bignum_conflict)key->modulus);" (assignment_expression "q = modinv(bn,(Bignum_conflict)key->modulus)" identifier = (call_expression "modinv(bn,(Bignum_conflict)key->modulus)" identifier (argument_list "(bn,(Bignum_conflict)key->modulus)" ( identifier , (cast_expression "(Bignum_conflict)key->modulus" ( (type_descriptor "Bignum_conflict" type_identifier) ) (field_expression "key->modulus" identifier -> field_identifier)) )))) ;) (if_statement "if (q != (Bignum_conflict)0x0) {\n          q_00 = (Bignum_conflict)crt_modpow(bn,key->exponent,key->modulus,key->p,key->q,key->iqmp);\n          b = modmul((Bignum_conflict)input,q_00,(Bignum_conflict)key->modulus);\n          p = (Bignum_conflict)\n              crt_modpow(b,key->private_exponent,key->modulus,key->p,key->q,key->iqmp);\n          pBVar3 = modmul(p,q,(Bignum_conflict)key->modulus);\n          freebn(p);\n          freebn(b);\n          freebn(q);\n          freebn(q_00);\n          freebn(bn);\n          if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return pBVar3;\n          }\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }" if (parenthesized_expression "(q != (Bignum_conflict)0x0)" ( (binary_expression "q != (Bignum_conflict)0x0" identifier != (cast_expression "(Bignum_conflict)0x0" ( (type_descriptor "Bignum_conflict" type_identifier) ) number_literal)) )) (compound_statement "{\n          q_00 = (Bignum_conflict)crt_modpow(bn,key->exponent,key->modulus,key->p,key->q,key->iqmp);\n          b = modmul((Bignum_conflict)input,q_00,(Bignum_conflict)key->modulus);\n          p = (Bignum_conflict)\n              crt_modpow(b,key->private_exponent,key->modulus,key->p,key->q,key->iqmp);\n          pBVar3 = modmul(p,q,(Bignum_conflict)key->modulus);\n          freebn(p);\n          freebn(b);\n          freebn(q);\n          freebn(q_00);\n          freebn(bn);\n          if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return pBVar3;\n          }\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail();\n        }" { (expression_statement "q_00 = (Bignum_conflict)crt_modpow(bn,key->exponent,key->modulus,key->p,key->q,key->iqmp);" (assignment_expression "q_00 = (Bignum_conflict)crt_modpow(bn,key->exponent,key->modulus,key->p,key->q,key->iqmp)" identifier = (cast_expression "(Bignum_conflict)crt_modpow(bn,key->exponent,key->modulus,key->p,key->q,key->iqmp)" ( (type_descriptor "Bignum_conflict" type_identifier) ) (call_expression "crt_modpow(bn,key->exponent,key->modulus,key->p,key->q,key->iqmp)" identifier (argument_list "(bn,key->exponent,key->modulus,key->p,key->q,key->iqmp)" ( identifier , (field_expression "key->exponent" identifier -> field_identifier) , (field_expression "key->modulus" identifier -> field_identifier) , (field_expression "key->p" identifier -> field_identifier) , (field_expression "key->q" identifier -> field_identifier) , (field_expression "key->iqmp" identifier -> field_identifier) ))))) ;) (expression_statement "b = modmul((Bignum_conflict)input,q_00,(Bignum_conflict)key->modulus);" (assignment_expression "b = modmul((Bignum_conflict)input,q_00,(Bignum_conflict)key->modulus)" identifier = (call_expression "modmul((Bignum_conflict)input,q_00,(Bignum_conflict)key->modulus)" identifier (argument_list "((Bignum_conflict)input,q_00,(Bignum_conflict)key->modulus)" ( (cast_expression "(Bignum_conflict)input" ( (type_descriptor "Bignum_conflict" type_identifier) ) identifier) , identifier , (cast_expression "(Bignum_conflict)key->modulus" ( (type_descriptor "Bignum_conflict" type_identifier) ) (field_expression "key->modulus" identifier -> field_identifier)) )))) ;) (expression_statement "p = (Bignum_conflict)\n              crt_modpow(b,key->private_exponent,key->modulus,key->p,key->q,key->iqmp);" (assignment_expression "p = (Bignum_conflict)\n              crt_modpow(b,key->private_exponent,key->modulus,key->p,key->q,key->iqmp)" identifier = (cast_expression "(Bignum_conflict)\n              crt_modpow(b,key->private_exponent,key->modulus,key->p,key->q,key->iqmp)" ( (type_descriptor "Bignum_conflict" type_identifier) ) (call_expression "crt_modpow(b,key->private_exponent,key->modulus,key->p,key->q,key->iqmp)" identifier (argument_list "(b,key->private_exponent,key->modulus,key->p,key->q,key->iqmp)" ( identifier , (field_expression "key->private_exponent" identifier -> field_identifier) , (field_expression "key->modulus" identifier -> field_identifier) , (field_expression "key->p" identifier -> field_identifier) , (field_expression "key->q" identifier -> field_identifier) , (field_expression "key->iqmp" identifier -> field_identifier) ))))) ;) (expression_statement "pBVar3 = modmul(p,q,(Bignum_conflict)key->modulus);" (assignment_expression "pBVar3 = modmul(p,q,(Bignum_conflict)key->modulus)" identifier = (call_expression "modmul(p,q,(Bignum_conflict)key->modulus)" identifier (argument_list "(p,q,(Bignum_conflict)key->modulus)" ( identifier , identifier , (cast_expression "(Bignum_conflict)key->modulus" ( (type_descriptor "Bignum_conflict" type_identifier) ) (field_expression "key->modulus" identifier -> field_identifier)) )))) ;) (expression_statement "freebn(p);" (call_expression "freebn(p)" identifier (argument_list "(p)" ( identifier ))) ;) (expression_statement "freebn(b);" (call_expression "freebn(b)" identifier (argument_list "(b)" ( identifier ))) ;) (expression_statement "freebn(q);" (call_expression "freebn(q)" identifier (argument_list "(q)" ( identifier ))) ;) (expression_statement "freebn(q_00);" (call_expression "freebn(q_00)" identifier (argument_list "(q_00)" ( identifier ))) ;) (expression_statement "freebn(bn);" (call_expression "freebn(bn)" identifier (argument_list "(bn)" ( identifier ))) ;) (if_statement "if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return pBVar3;\n          }" if (parenthesized_expression "(lVar1 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lVar1 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n            return pBVar3;\n          }" { (return_statement "return pBVar3;" return identifier ;) })) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "freebn(bn);" (call_expression "freebn(bn)" identifier (argument_list "(bn)" ( identifier ))) ;) (goto_statement "goto LAB_0015c734;" goto statement_identifier ;) })) })) (expression_statement "freebn(bn);" (call_expression "freebn(bn)" identifier (argument_list "(bn)" ( identifier ))) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit "undefined8 FUN_0015c4cb(undefined8 param_1,long param_2)\n\n{\n  int iVar1;\n  long lVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  undefined8 uVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  long in_FS_OFFSET;\n  int local_1cc;\n  undefined1 local_1a8 [284];\n  undefined1 local_8c;\n  undefined1 local_8b;\n  undefined1 local_8a;\n  undefined1 local_89;\n  byte local_88 [72];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_1cc = 0;\n  uVar11 = 0x40;\nLAB_0015c734:\n  do {\n    uVar7 = FUN_00149cfe(*(undefined8 *)(param_2 + 8));\n    iVar1 = FUN_0014a306(uVar7);\n    iVar9 = iVar1 + -1;\n    if (iVar1 != 0) {\n      iVar1 = 0;\n      uVar10 = 0;\n      do {\n        if (iVar1 < 1) {\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }\n        uVar8 = uVar10 & 1;\n        uVar10 = (int)uVar10 >> 1;\n        iVar1 = iVar1 + -1;\n        FUN_0014a41b(uVar7,iVar9,uVar8);\n        iVar9 = iVar9 + -1;\n      } while (iVar9 != -1);\n    }\n    FUN_00149cd4(uVar7);\n    iVar1 = FUN_0014a527(uVar7,PTR_DAT_001ef2f0);\n    if (0 < iVar1) {\n      iVar1 = FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8));\n      if (iVar1 < 0) {\n        lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));\n        if (lVar2 != 0) {\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    \n          __stack_chk_fail();\n        }\n        FUN_00149d43(uVar7);\n        goto LAB_0015c734;\n      }\n    }\n    FUN_00149d43(uVar7);\n  } while( true );\n}\n\n" (function_definition "undefined8 FUN_0015c4cb(undefined8 param_1,long param_2)\n\n{\n  int iVar1;\n  long lVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  undefined8 uVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  long in_FS_OFFSET;\n  int local_1cc;\n  undefined1 local_1a8 [284];\n  undefined1 local_8c;\n  undefined1 local_8b;\n  undefined1 local_8a;\n  undefined1 local_89;\n  byte local_88 [72];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_1cc = 0;\n  uVar11 = 0x40;\nLAB_0015c734:\n  do {\n    uVar7 = FUN_00149cfe(*(undefined8 *)(param_2 + 8));\n    iVar1 = FUN_0014a306(uVar7);\n    iVar9 = iVar1 + -1;\n    if (iVar1 != 0) {\n      iVar1 = 0;\n      uVar10 = 0;\n      do {\n        if (iVar1 < 1) {\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }\n        uVar8 = uVar10 & 1;\n        uVar10 = (int)uVar10 >> 1;\n        iVar1 = iVar1 + -1;\n        FUN_0014a41b(uVar7,iVar9,uVar8);\n        iVar9 = iVar9 + -1;\n      } while (iVar9 != -1);\n    }\n    FUN_00149cd4(uVar7);\n    iVar1 = FUN_0014a527(uVar7,PTR_DAT_001ef2f0);\n    if (0 < iVar1) {\n      iVar1 = FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8));\n      if (iVar1 < 0) {\n        lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));\n        if (lVar2 != 0) {\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    \n          __stack_chk_fail();\n        }\n        FUN_00149d43(uVar7);\n        goto LAB_0015c734;\n      }\n    }\n    FUN_00149d43(uVar7);\n  } while( true );\n}" type_identifier (function_declarator "FUN_0015c4cb(undefined8 param_1,long param_2)" identifier (parameter_list "(undefined8 param_1,long param_2)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  int iVar1;\n  long lVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  undefined8 uVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  long in_FS_OFFSET;\n  int local_1cc;\n  undefined1 local_1a8 [284];\n  undefined1 local_8c;\n  undefined1 local_8b;\n  undefined1 local_8a;\n  undefined1 local_89;\n  byte local_88 [72];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_1cc = 0;\n  uVar11 = 0x40;\nLAB_0015c734:\n  do {\n    uVar7 = FUN_00149cfe(*(undefined8 *)(param_2 + 8));\n    iVar1 = FUN_0014a306(uVar7);\n    iVar9 = iVar1 + -1;\n    if (iVar1 != 0) {\n      iVar1 = 0;\n      uVar10 = 0;\n      do {\n        if (iVar1 < 1) {\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }\n        uVar8 = uVar10 & 1;\n        uVar10 = (int)uVar10 >> 1;\n        iVar1 = iVar1 + -1;\n        FUN_0014a41b(uVar7,iVar9,uVar8);\n        iVar9 = iVar9 + -1;\n      } while (iVar9 != -1);\n    }\n    FUN_00149cd4(uVar7);\n    iVar1 = FUN_0014a527(uVar7,PTR_DAT_001ef2f0);\n    if (0 < iVar1) {\n      iVar1 = FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8));\n      if (iVar1 < 0) {\n        lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));\n        if (lVar2 != 0) {\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    \n          __stack_chk_fail();\n        }\n        FUN_00149d43(uVar7);\n        goto LAB_0015c734;\n      }\n    }\n    FUN_00149d43(uVar7);\n  } while( true );\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "int local_1cc;" primitive_type identifier ;) (declaration "undefined1 local_1a8 [284];" type_identifier (array_declarator "local_1a8 [284]" identifier [ number_literal ]) ;) (declaration "undefined1 local_8c;" type_identifier identifier ;) (declaration "undefined1 local_8b;" type_identifier identifier ;) (declaration "undefined1 local_8a;" type_identifier identifier ;) (declaration "undefined1 local_89;" type_identifier identifier ;) (declaration "byte local_88 [72];" type_identifier (array_declarator "local_88 [72]" identifier [ number_literal ]) ;) (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) ))))) ;) (expression_statement "local_1cc = 0;" (assignment_expression "local_1cc = 0" identifier = number_literal) ;) (expression_statement "uVar11 = 0x40;" (assignment_expression "uVar11 = 0x40" identifier = number_literal) ;) (labeled_statement "LAB_0015c734:\n  do {\n    uVar7 = FUN_00149cfe(*(undefined8 *)(param_2 + 8));\n    iVar1 = FUN_0014a306(uVar7);\n    iVar9 = iVar1 + -1;\n    if (iVar1 != 0) {\n      iVar1 = 0;\n      uVar10 = 0;\n      do {\n        if (iVar1 < 1) {\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }\n        uVar8 = uVar10 & 1;\n        uVar10 = (int)uVar10 >> 1;\n        iVar1 = iVar1 + -1;\n        FUN_0014a41b(uVar7,iVar9,uVar8);\n        iVar9 = iVar9 + -1;\n      } while (iVar9 != -1);\n    }\n    FUN_00149cd4(uVar7);\n    iVar1 = FUN_0014a527(uVar7,PTR_DAT_001ef2f0);\n    if (0 < iVar1) {\n      iVar1 = FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8));\n      if (iVar1 < 0) {\n        lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));\n        if (lVar2 != 0) {\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    \n          __stack_chk_fail();\n        }\n        FUN_00149d43(uVar7);\n        goto LAB_0015c734;\n      }\n    }\n    FUN_00149d43(uVar7);\n  } while( true );" statement_identifier : (do_statement "do {\n    uVar7 = FUN_00149cfe(*(undefined8 *)(param_2 + 8));\n    iVar1 = FUN_0014a306(uVar7);\n    iVar9 = iVar1 + -1;\n    if (iVar1 != 0) {\n      iVar1 = 0;\n      uVar10 = 0;\n      do {\n        if (iVar1 < 1) {\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }\n        uVar8 = uVar10 & 1;\n        uVar10 = (int)uVar10 >> 1;\n        iVar1 = iVar1 + -1;\n        FUN_0014a41b(uVar7,iVar9,uVar8);\n        iVar9 = iVar9 + -1;\n      } while (iVar9 != -1);\n    }\n    FUN_00149cd4(uVar7);\n    iVar1 = FUN_0014a527(uVar7,PTR_DAT_001ef2f0);\n    if (0 < iVar1) {\n      iVar1 = FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8));\n      if (iVar1 < 0) {\n        lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));\n        if (lVar2 != 0) {\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    \n          __stack_chk_fail();\n        }\n        FUN_00149d43(uVar7);\n        goto LAB_0015c734;\n      }\n    }\n    FUN_00149d43(uVar7);\n  } while( true );" do (compound_statement "{\n    uVar7 = FUN_00149cfe(*(undefined8 *)(param_2 + 8));\n    iVar1 = FUN_0014a306(uVar7);\n    iVar9 = iVar1 + -1;\n    if (iVar1 != 0) {\n      iVar1 = 0;\n      uVar10 = 0;\n      do {\n        if (iVar1 < 1) {\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }\n        uVar8 = uVar10 & 1;\n        uVar10 = (int)uVar10 >> 1;\n        iVar1 = iVar1 + -1;\n        FUN_0014a41b(uVar7,iVar9,uVar8);\n        iVar9 = iVar9 + -1;\n      } while (iVar9 != -1);\n    }\n    FUN_00149cd4(uVar7);\n    iVar1 = FUN_0014a527(uVar7,PTR_DAT_001ef2f0);\n    if (0 < iVar1) {\n      iVar1 = FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8));\n      if (iVar1 < 0) {\n        lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));\n        if (lVar2 != 0) {\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    \n          __stack_chk_fail();\n        }\n        FUN_00149d43(uVar7);\n        goto LAB_0015c734;\n      }\n    }\n    FUN_00149d43(uVar7);\n  }" { (expression_statement "uVar7 = FUN_00149cfe(*(undefined8 *)(param_2 + 8));" (assignment_expression "uVar7 = FUN_00149cfe(*(undefined8 *)(param_2 + 8))" identifier = (call_expression "FUN_00149cfe(*(undefined8 *)(param_2 + 8))" identifier (argument_list "(*(undefined8 *)(param_2 + 8))" ( (pointer_expression "*(undefined8 *)(param_2 + 8)" * (cast_expression "(undefined8 *)(param_2 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "iVar1 = FUN_0014a306(uVar7);" (assignment_expression "iVar1 = FUN_0014a306(uVar7)" identifier = (call_expression "FUN_0014a306(uVar7)" identifier (argument_list "(uVar7)" ( identifier )))) ;) (expression_statement "iVar9 = iVar1 + -1;" (assignment_expression "iVar9 = iVar1 + -1" identifier = (binary_expression "iVar1 + -1" identifier + number_literal)) ;) (if_statement "if (iVar1 != 0) {\n      iVar1 = 0;\n      uVar10 = 0;\n      do {\n        if (iVar1 < 1) {\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }\n        uVar8 = uVar10 & 1;\n        uVar10 = (int)uVar10 >> 1;\n        iVar1 = iVar1 + -1;\n        FUN_0014a41b(uVar7,iVar9,uVar8);\n        iVar9 = iVar9 + -1;\n      } while (iVar9 != -1);\n    }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar1 = 0;\n      uVar10 = 0;\n      do {\n        if (iVar1 < 1) {\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }\n        uVar8 = uVar10 & 1;\n        uVar10 = (int)uVar10 >> 1;\n        iVar1 = iVar1 + -1;\n        FUN_0014a41b(uVar7,iVar9,uVar8);\n        iVar9 = iVar9 + -1;\n      } while (iVar9 != -1);\n    }" { (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n        if (iVar1 < 1) {\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }\n        uVar8 = uVar10 & 1;\n        uVar10 = (int)uVar10 >> 1;\n        iVar1 = iVar1 + -1;\n        FUN_0014a41b(uVar7,iVar9,uVar8);\n        iVar9 = iVar9 + -1;\n      } while (iVar9 != -1);" do (compound_statement "{\n        if (iVar1 < 1) {\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }\n        uVar8 = uVar10 & 1;\n        uVar10 = (int)uVar10 >> 1;\n        iVar1 = iVar1 + -1;\n        FUN_0014a41b(uVar7,iVar9,uVar8);\n        iVar9 = iVar9 + -1;\n      }" { (if_statement "if (iVar1 < 1) {\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }" if (parenthesized_expression "(iVar1 < 1)" ( (binary_expression "iVar1 < 1" identifier < number_literal) )) (compound_statement "{\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }" { (if_statement "if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }" if (parenthesized_expression "(0x3f < uVar11)" ( (binary_expression "0x3f < uVar11" number_literal < identifier) )) (compound_statement "{\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }" { (expression_statement "local_8c = (undefined1)((uint)local_1cc >> 0x18);" (assignment_expression "local_8c = (undefined1)((uint)local_1cc >> 0x18)" identifier = (call_expression "(undefined1)((uint)local_1cc >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)local_1cc >> 0x18)" ( (binary_expression "(uint)local_1cc >> 0x18" (cast_expression "(uint)local_1cc" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_8b = (undefined1)((uint)local_1cc >> 0x10);" (assignment_expression "local_8b = (undefined1)((uint)local_1cc >> 0x10)" identifier = (call_expression "(undefined1)((uint)local_1cc >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)local_1cc >> 0x10)" ( (binary_expression "(uint)local_1cc >> 0x10" (cast_expression "(uint)local_1cc" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_8a = (undefined1)((uint)local_1cc >> 8);" (assignment_expression "local_8a = (undefined1)((uint)local_1cc >> 8)" identifier = (call_expression "(undefined1)((uint)local_1cc >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)local_1cc >> 8)" ( (binary_expression "(uint)local_1cc >> 8" (cast_expression "(uint)local_1cc" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_89 = (undefined1)local_1cc;" (assignment_expression "local_89 = (undefined1)local_1cc" identifier = (cast_expression "(undefined1)local_1cc" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "FUN_0015e266(local_1a8);" (call_expression "FUN_0015e266(local_1a8)" identifier (argument_list "(local_1a8)" ( identifier ))) ;) (expression_statement "FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);" (call_expression "FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a)" identifier (argument_list "(local_1a8,"RSA deterministic blinding",0x1a)" ( identifier , (string_literal ""RSA deterministic blinding"" " string_content ") , number_literal ))) ;) (expression_statement "FUN_0015e34e(local_1a8,&local_8c,4);" (call_expression "FUN_0015e34e(local_1a8,&local_8c,4)" identifier (argument_list "(local_1a8,&local_8c,4)" ( identifier , (pointer_expression "&local_8c" & identifier) , number_literal ))) ;) (expression_statement "FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));" (call_expression "FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18))" identifier (argument_list "(local_1a8,*(undefined8 *)(param_2 + 0x18))" ( identifier , (pointer_expression "*(undefined8 *)(param_2 + 0x18)" * (cast_expression "(undefined8 *)(param_2 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_0015f872(local_1a8,local_88);" (call_expression "FUN_0015f872(local_1a8,local_88)" identifier (argument_list "(local_1a8,local_88)" ( identifier , identifier ))) ;) (expression_statement "local_1cc = local_1cc + 1;" (assignment_expression "local_1cc = local_1cc + 1" identifier = (binary_expression "local_1cc + 1" identifier + number_literal)) ;) (expression_statement "FUN_0015e266(local_1a8);" (call_expression "FUN_0015e266(local_1a8)" identifier (argument_list "(local_1a8)" ( identifier ))) ;) (expression_statement "FUN_0015e34e(local_1a8,local_88,0x40);" (call_expression "FUN_0015e34e(local_1a8,local_88,0x40)" identifier (argument_list "(local_1a8,local_88,0x40)" ( identifier , identifier , number_literal ))) ;) (expression_statement "FUN_0015b484(local_1a8,param_1);" (call_expression "FUN_0015b484(local_1a8,param_1)" identifier (argument_list "(local_1a8,param_1)" ( identifier , identifier ))) ;) (expression_statement "FUN_0015f872(local_1a8,local_88);" (call_expression "FUN_0015f872(local_1a8,local_88)" identifier (argument_list "(local_1a8,local_88)" ( identifier , identifier ))) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) })) (expression_statement "uVar10 = (uint)local_88[(int)uVar11];" (assignment_expression "uVar10 = (uint)local_88[(int)uVar11]" identifier = (cast_expression "(uint)local_88[(int)uVar11]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_88[(int)uVar11]" identifier [ (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "iVar1 = 8;" (assignment_expression "iVar1 = 8" identifier = number_literal) ;) })) (expression_statement "uVar8 = uVar10 & 1;" (assignment_expression "uVar8 = uVar10 & 1" identifier = (binary_expression "uVar10 & 1" identifier & number_literal)) ;) (expression_statement "uVar10 = (int)uVar10 >> 1;" (assignment_expression "uVar10 = (int)uVar10 >> 1" identifier = (binary_expression "(int)uVar10 >> 1" (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "iVar1 = iVar1 + -1;" (assignment_expression "iVar1 = iVar1 + -1" identifier = (binary_expression "iVar1 + -1" identifier + number_literal)) ;) (expression_statement "FUN_0014a41b(uVar7,iVar9,uVar8);" (call_expression "FUN_0014a41b(uVar7,iVar9,uVar8)" identifier (argument_list "(uVar7,iVar9,uVar8)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar9 != -1)" ( (binary_expression "iVar9 != -1" identifier != number_literal) )) ;) })) (expression_statement "FUN_00149cd4(uVar7);" (call_expression "FUN_00149cd4(uVar7)" identifier (argument_list "(uVar7)" ( identifier ))) ;) (expression_statement "iVar1 = FUN_0014a527(uVar7,PTR_DAT_001ef2f0);" (assignment_expression "iVar1 = FUN_0014a527(uVar7,PTR_DAT_001ef2f0)" identifier = (call_expression "FUN_0014a527(uVar7,PTR_DAT_001ef2f0)" identifier (argument_list "(uVar7,PTR_DAT_001ef2f0)" ( identifier , identifier )))) ;) (if_statement "if (0 < iVar1) {\n      iVar1 = FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8));\n      if (iVar1 < 0) {\n        lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));\n        if (lVar2 != 0) {\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    \n          __stack_chk_fail();\n        }\n        FUN_00149d43(uVar7);\n        goto LAB_0015c734;\n      }\n    }" if (parenthesized_expression "(0 < iVar1)" ( (binary_expression "0 < iVar1" number_literal < identifier) )) (compound_statement "{\n      iVar1 = FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8));\n      if (iVar1 < 0) {\n        lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));\n        if (lVar2 != 0) {\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    \n          __stack_chk_fail();\n        }\n        FUN_00149d43(uVar7);\n        goto LAB_0015c734;\n      }\n    }" { (expression_statement "iVar1 = FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8));" (assignment_expression "iVar1 = FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8))" identifier = (call_expression "FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8))" identifier (argument_list "(uVar7,*(undefined8 *)(param_2 + 8))" ( identifier , (pointer_expression "*(undefined8 *)(param_2 + 8)" * (cast_expression "(undefined8 *)(param_2 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar1 < 0) {\n        lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));\n        if (lVar2 != 0) {\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    \n          __stack_chk_fail();\n        }\n        FUN_00149d43(uVar7);\n        goto LAB_0015c734;\n      }" if (parenthesized_expression "(iVar1 < 0)" ( (binary_expression "iVar1 < 0" identifier < number_literal) )) (compound_statement "{\n        lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));\n        if (lVar2 != 0) {\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    \n          __stack_chk_fail();\n        }\n        FUN_00149d43(uVar7);\n        goto LAB_0015c734;\n      }" { (expression_statement "lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));" (assignment_expression "lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8))" identifier = (call_expression "FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8))" identifier (argument_list "(uVar7,*(undefined8 *)(param_2 + 8))" ( identifier , (pointer_expression "*(undefined8 *)(param_2 + 8)" * (cast_expression "(undefined8 *)(param_2 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) )))) ;) (if_statement "if (lVar2 != 0) {\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    \n          __stack_chk_fail();\n        }" if (parenthesized_expression "(lVar2 != 0)" ( (binary_expression "lVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    \n          __stack_chk_fail();\n        }" { (expression_statement "uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));" (assignment_expression "uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30))" identifier = (call_expression "FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30))" identifier (argument_list "(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30))" ( identifier , (pointer_expression "*(undefined8 *)(param_2 + 0x10)" * (cast_expression "(undefined8 *)(param_2 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(param_2 + 8)" * (cast_expression "(undefined8 *)(param_2 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(param_2 + 0x20)" * (cast_expression "(undefined8 *)(param_2 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(param_2 + 0x28)" * (cast_expression "(undefined8 *)(param_2 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x28)" ( (binary_expression "param_2 + 0x28" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(param_2 + 0x30)" * (cast_expression "(undefined8 *)(param_2 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) )))) )))) ;) (expression_statement "uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));" (assignment_expression "uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8))" identifier = (call_expression "FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8))" identifier (argument_list "(param_1,uVar3,*(undefined8 *)(param_2 + 8))" ( identifier , identifier , (pointer_expression "*(undefined8 *)(param_2 + 8)" * (cast_expression "(undefined8 *)(param_2 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));" (assignment_expression "uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30))" identifier = (call_expression "FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30))" identifier (argument_list "(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30))" ( identifier , (pointer_expression "*(undefined8 *)(param_2 + 0x18)" * (cast_expression "(undefined8 *)(param_2 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(param_2 + 8)" * (cast_expression "(undefined8 *)(param_2 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(param_2 + 0x20)" * (cast_expression "(undefined8 *)(param_2 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(param_2 + 0x28)" * (cast_expression "(undefined8 *)(param_2 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x28)" ( (binary_expression "param_2 + 0x28" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(param_2 + 0x30)" * (cast_expression "(undefined8 *)(param_2 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) )))) )))) ;) (expression_statement "uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));" (assignment_expression "uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8))" identifier = (call_expression "FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8))" identifier (argument_list "(uVar5,lVar2,*(undefined8 *)(param_2 + 8))" ( identifier , identifier , (pointer_expression "*(undefined8 *)(param_2 + 8)" * (cast_expression "(undefined8 *)(param_2 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "FUN_00149d43(uVar5);" (call_expression "FUN_00149d43(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "FUN_00149d43(uVar4);" (call_expression "FUN_00149d43(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "FUN_00149d43(lVar2);" (call_expression "FUN_00149d43(lVar2)" identifier (argument_list "(lVar2)" ( identifier ))) ;) (expression_statement "FUN_00149d43(uVar3);" (call_expression "FUN_00149d43(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))) ;) (expression_statement "FUN_00149d43(uVar7);" (call_expression "FUN_00149d43(uVar7)" identifier (argument_list "(uVar7)" ( identifier ))) ;) (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\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 uVar6;\n          }" { (return_statement "return uVar6;" return identifier ;) })) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_00149d43(uVar7);" (call_expression "FUN_00149d43(uVar7)" identifier (argument_list "(uVar7)" ( identifier ))) ;) (goto_statement "goto LAB_0015c734;" goto statement_identifier ;) })) })) (expression_statement "FUN_00149d43(uVar7);" (call_expression "FUN_00149d43(uVar7)" identifier (argument_list "(uVar7)" ( identifier ))) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (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) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (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) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (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 ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) while (parenthesized_expression ( BOOL )) ;)) })))
(function_definition "undefined8 FUN_0015c4cb(undefined8 param_1,long param_2)\n\n{\n  int iVar1;\n  long lVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  undefined8 uVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  long in_FS_OFFSET;\n  int local_1cc;\n  undefined1 local_1a8 [284];\n  undefined1 local_8c;\n  undefined1 local_8b;\n  undefined1 local_8a;\n  undefined1 local_89;\n  byte local_88 [72];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_1cc = 0;\n  uVar11 = 0x40;\nLAB_0015c734:\n  do {\n    uVar7 = FUN_00149cfe(*(undefined8 *)(param_2 + 8));\n    iVar1 = FUN_0014a306(uVar7);\n    iVar9 = iVar1 + -1;\n    if (iVar1 != 0) {\n      iVar1 = 0;\n      uVar10 = 0;\n      do {\n        if (iVar1 < 1) {\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }\n        uVar8 = uVar10 & 1;\n        uVar10 = (int)uVar10 >> 1;\n        iVar1 = iVar1 + -1;\n        FUN_0014a41b(uVar7,iVar9,uVar8);\n        iVar9 = iVar9 + -1;\n      } while (iVar9 != -1);\n    }\n    FUN_00149cd4(uVar7);\n    iVar1 = FUN_0014a527(uVar7,PTR_DAT_001ef2f0);\n    if (0 < iVar1) {\n      iVar1 = FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8));\n      if (iVar1 < 0) {\n        lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));\n        if (lVar2 != 0) {\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    \n          __stack_chk_fail();\n        }\n        FUN_00149d43(uVar7);\n        goto LAB_0015c734;\n      }\n    }\n    FUN_00149d43(uVar7);\n  } while( true );\n}" (type_identifier "undefined8") (function_declarator "FUN_0015c4cb(undefined8 param_1,long param_2)" (identifier "FUN_0015c4cb") (parameter_list "(undefined8 param_1,long param_2)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) () ")"))) (compound_statement "{\n  int iVar1;\n  long lVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  undefined8 uVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  long in_FS_OFFSET;\n  int local_1cc;\n  undefined1 local_1a8 [284];\n  undefined1 local_8c;\n  undefined1 local_8b;\n  undefined1 local_8a;\n  undefined1 local_89;\n  byte local_88 [72];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_1cc = 0;\n  uVar11 = 0x40;\nLAB_0015c734:\n  do {\n    uVar7 = FUN_00149cfe(*(undefined8 *)(param_2 + 8));\n    iVar1 = FUN_0014a306(uVar7);\n    iVar9 = iVar1 + -1;\n    if (iVar1 != 0) {\n      iVar1 = 0;\n      uVar10 = 0;\n      do {\n        if (iVar1 < 1) {\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }\n        uVar8 = uVar10 & 1;\n        uVar10 = (int)uVar10 >> 1;\n        iVar1 = iVar1 + -1;\n        FUN_0014a41b(uVar7,iVar9,uVar8);\n        iVar9 = iVar9 + -1;\n      } while (iVar9 != -1);\n    }\n    FUN_00149cd4(uVar7);\n    iVar1 = FUN_0014a527(uVar7,PTR_DAT_001ef2f0);\n    if (0 < iVar1) {\n      iVar1 = FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8));\n      if (iVar1 < 0) {\n        lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));\n        if (lVar2 != 0) {\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    \n          __stack_chk_fail();\n        }\n        FUN_00149d43(uVar7);\n        goto LAB_0015c734;\n      }\n    }\n    FUN_00149d43(uVar7);\n  } while( true );\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (declaration "undefined8 uVar3;" (type_identifier "undefined8") (identifier "uVar3") (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (declaration "undefined8 uVar5;" (type_identifier "undefined8") (identifier "uVar5") (; ";")) (declaration "undefined8 uVar6;" (type_identifier "undefined8") (identifier "uVar6") (; ";")) (declaration "undefined8 uVar7;" (type_identifier "undefined8") (identifier "uVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "int local_1cc;" (primitive_type "int") (identifier "local_1cc") (; ";")) (declaration "undefined1 local_1a8 [284];" (type_identifier "undefined1") (array_declarator "local_1a8 [284]" (identifier "local_1a8") ([ "[") (number_literal "284") (] "]")) (; ";")) (declaration "undefined1 local_8c;" (type_identifier "undefined1") (identifier "local_8c") (; ";")) (declaration "undefined1 local_8b;" (type_identifier "undefined1") (identifier "local_8b") (; ";")) (declaration "undefined1 local_8a;" (type_identifier "undefined1") (identifier "local_8a") (; ";")) (declaration "undefined1 local_89;" (type_identifier "undefined1") (identifier "local_89") (; ";")) (declaration "byte local_88 [72];" (type_identifier "byte") (array_declarator "local_88 [72]" (identifier "local_88") ([ "[") (number_literal "72") (] "]")) (; ";")) (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")) () ")"))))) (; ";")) (expression_statement "local_1cc = 0;" (assignment_expression "local_1cc = 0" (identifier "local_1cc") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar11 = 0x40;" (assignment_expression "uVar11 = 0x40" (identifier "uVar11") (= "=") (number_literal "0x40")) (; ";")) (labeled_statement "LAB_0015c734:\n  do {\n    uVar7 = FUN_00149cfe(*(undefined8 *)(param_2 + 8));\n    iVar1 = FUN_0014a306(uVar7);\n    iVar9 = iVar1 + -1;\n    if (iVar1 != 0) {\n      iVar1 = 0;\n      uVar10 = 0;\n      do {\n        if (iVar1 < 1) {\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }\n        uVar8 = uVar10 & 1;\n        uVar10 = (int)uVar10 >> 1;\n        iVar1 = iVar1 + -1;\n        FUN_0014a41b(uVar7,iVar9,uVar8);\n        iVar9 = iVar9 + -1;\n      } while (iVar9 != -1);\n    }\n    FUN_00149cd4(uVar7);\n    iVar1 = FUN_0014a527(uVar7,PTR_DAT_001ef2f0);\n    if (0 < iVar1) {\n      iVar1 = FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8));\n      if (iVar1 < 0) {\n        lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));\n        if (lVar2 != 0) {\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    \n          __stack_chk_fail();\n        }\n        FUN_00149d43(uVar7);\n        goto LAB_0015c734;\n      }\n    }\n    FUN_00149d43(uVar7);\n  } while( true );" (statement_identifier "LAB_0015c734") (: ":") (do_statement "do {\n    uVar7 = FUN_00149cfe(*(undefined8 *)(param_2 + 8));\n    iVar1 = FUN_0014a306(uVar7);\n    iVar9 = iVar1 + -1;\n    if (iVar1 != 0) {\n      iVar1 = 0;\n      uVar10 = 0;\n      do {\n        if (iVar1 < 1) {\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }\n        uVar8 = uVar10 & 1;\n        uVar10 = (int)uVar10 >> 1;\n        iVar1 = iVar1 + -1;\n        FUN_0014a41b(uVar7,iVar9,uVar8);\n        iVar9 = iVar9 + -1;\n      } while (iVar9 != -1);\n    }\n    FUN_00149cd4(uVar7);\n    iVar1 = FUN_0014a527(uVar7,PTR_DAT_001ef2f0);\n    if (0 < iVar1) {\n      iVar1 = FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8));\n      if (iVar1 < 0) {\n        lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));\n        if (lVar2 != 0) {\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    \n          __stack_chk_fail();\n        }\n        FUN_00149d43(uVar7);\n        goto LAB_0015c734;\n      }\n    }\n    FUN_00149d43(uVar7);\n  } while( true );" (do "do") (compound_statement "{\n    uVar7 = FUN_00149cfe(*(undefined8 *)(param_2 + 8));\n    iVar1 = FUN_0014a306(uVar7);\n    iVar9 = iVar1 + -1;\n    if (iVar1 != 0) {\n      iVar1 = 0;\n      uVar10 = 0;\n      do {\n        if (iVar1 < 1) {\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }\n        uVar8 = uVar10 & 1;\n        uVar10 = (int)uVar10 >> 1;\n        iVar1 = iVar1 + -1;\n        FUN_0014a41b(uVar7,iVar9,uVar8);\n        iVar9 = iVar9 + -1;\n      } while (iVar9 != -1);\n    }\n    FUN_00149cd4(uVar7);\n    iVar1 = FUN_0014a527(uVar7,PTR_DAT_001ef2f0);\n    if (0 < iVar1) {\n      iVar1 = FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8));\n      if (iVar1 < 0) {\n        lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));\n        if (lVar2 != 0) {\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    \n          __stack_chk_fail();\n        }\n        FUN_00149d43(uVar7);\n        goto LAB_0015c734;\n      }\n    }\n    FUN_00149d43(uVar7);\n  }" ({ "{") (expression_statement "uVar7 = FUN_00149cfe(*(undefined8 *)(param_2 + 8));" (assignment_expression "uVar7 = FUN_00149cfe(*(undefined8 *)(param_2 + 8))" (identifier "uVar7") (= "=") (call_expression "FUN_00149cfe(*(undefined8 *)(param_2 + 8))" (identifier "FUN_00149cfe") (argument_list "(*(undefined8 *)(param_2 + 8))" (( "(") (pointer_expression "*(undefined8 *)(param_2 + 8)" (* "*") (cast_expression "(undefined8 *)(param_2 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (expression_statement "iVar1 = FUN_0014a306(uVar7);" (assignment_expression "iVar1 = FUN_0014a306(uVar7)" (identifier "iVar1") (= "=") (call_expression "FUN_0014a306(uVar7)" (identifier "FUN_0014a306") (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")")))) (; ";")) (expression_statement "iVar9 = iVar1 + -1;" (assignment_expression "iVar9 = iVar1 + -1" (identifier "iVar9") (= "=") (binary_expression "iVar1 + -1" (identifier "iVar1") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (iVar1 != 0) {\n      iVar1 = 0;\n      uVar10 = 0;\n      do {\n        if (iVar1 < 1) {\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }\n        uVar8 = uVar10 & 1;\n        uVar10 = (int)uVar10 >> 1;\n        iVar1 = iVar1 + -1;\n        FUN_0014a41b(uVar7,iVar9,uVar8);\n        iVar9 = iVar9 + -1;\n      } while (iVar9 != -1);\n    }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar1 = 0;\n      uVar10 = 0;\n      do {\n        if (iVar1 < 1) {\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }\n        uVar8 = uVar10 & 1;\n        uVar10 = (int)uVar10 >> 1;\n        iVar1 = iVar1 + -1;\n        FUN_0014a41b(uVar7,iVar9,uVar8);\n        iVar9 = iVar9 + -1;\n      } while (iVar9 != -1);\n    }" ({ "{") (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" (identifier "iVar1") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        if (iVar1 < 1) {\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }\n        uVar8 = uVar10 & 1;\n        uVar10 = (int)uVar10 >> 1;\n        iVar1 = iVar1 + -1;\n        FUN_0014a41b(uVar7,iVar9,uVar8);\n        iVar9 = iVar9 + -1;\n      } while (iVar9 != -1);" (do "do") (compound_statement "{\n        if (iVar1 < 1) {\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }\n        uVar8 = uVar10 & 1;\n        uVar10 = (int)uVar10 >> 1;\n        iVar1 = iVar1 + -1;\n        FUN_0014a41b(uVar7,iVar9,uVar8);\n        iVar9 = iVar9 + -1;\n      }" ({ "{") (if_statement "if (iVar1 < 1) {\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }" (if "if") (parenthesized_expression "(iVar1 < 1)" (( "(") (binary_expression "iVar1 < 1" (identifier "iVar1") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n          if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }\n          uVar10 = (uint)local_88[(int)uVar11];\n          uVar11 = uVar11 + 1;\n          iVar1 = 8;\n        }" ({ "{") (if_statement "if (0x3f < uVar11) {\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }" (if "if") (parenthesized_expression "(0x3f < uVar11)" (( "(") (binary_expression "0x3f < uVar11" (number_literal "0x3f") (< "<") (identifier "uVar11")) () ")")) (compound_statement "{\n            local_8c = (undefined1)((uint)local_1cc >> 0x18);\n            local_8b = (undefined1)((uint)local_1cc >> 0x10);\n            local_8a = (undefined1)((uint)local_1cc >> 8);\n            local_89 = (undefined1)local_1cc;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);\n            FUN_0015e34e(local_1a8,&local_8c,4);\n            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));\n            FUN_0015f872(local_1a8,local_88);\n            local_1cc = local_1cc + 1;\n            FUN_0015e266(local_1a8);\n            FUN_0015e34e(local_1a8,local_88,0x40);\n            FUN_0015b484(local_1a8,param_1);\n            FUN_0015f872(local_1a8,local_88);\n            uVar11 = 0;\n          }" ({ "{") (expression_statement "local_8c = (undefined1)((uint)local_1cc >> 0x18);" (assignment_expression "local_8c = (undefined1)((uint)local_1cc >> 0x18)" (identifier "local_8c") (= "=") (call_expression "(undefined1)((uint)local_1cc >> 0x18)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "((uint)local_1cc >> 0x18)" (( "(") (binary_expression "(uint)local_1cc >> 0x18" (cast_expression "(uint)local_1cc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_1cc")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "local_8b = (undefined1)((uint)local_1cc >> 0x10);" (assignment_expression "local_8b = (undefined1)((uint)local_1cc >> 0x10)" (identifier "local_8b") (= "=") (call_expression "(undefined1)((uint)local_1cc >> 0x10)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "((uint)local_1cc >> 0x10)" (( "(") (binary_expression "(uint)local_1cc >> 0x10" (cast_expression "(uint)local_1cc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_1cc")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "local_8a = (undefined1)((uint)local_1cc >> 8);" (assignment_expression "local_8a = (undefined1)((uint)local_1cc >> 8)" (identifier "local_8a") (= "=") (call_expression "(undefined1)((uint)local_1cc >> 8)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "((uint)local_1cc >> 8)" (( "(") (binary_expression "(uint)local_1cc >> 8" (cast_expression "(uint)local_1cc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_1cc")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "local_89 = (undefined1)local_1cc;" (assignment_expression "local_89 = (undefined1)local_1cc" (identifier "local_89") (= "=") (cast_expression "(undefined1)local_1cc" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "local_1cc"))) (; ";")) (expression_statement "FUN_0015e266(local_1a8);" (call_expression "FUN_0015e266(local_1a8)" (identifier "FUN_0015e266") (argument_list "(local_1a8)" (( "(") (identifier "local_1a8") () ")"))) (; ";")) (expression_statement "FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);" (call_expression "FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a)" (identifier "FUN_0015e34e") (argument_list "(local_1a8,"RSA deterministic blinding",0x1a)" (( "(") (identifier "local_1a8") (, ",") (string_literal ""RSA deterministic blinding"" (" """) (string_content "RSA deterministic blinding") (" """)) (, ",") (number_literal "0x1a") () ")"))) (; ";")) (expression_statement "FUN_0015e34e(local_1a8,&local_8c,4);" (call_expression "FUN_0015e34e(local_1a8,&local_8c,4)" (identifier "FUN_0015e34e") (argument_list "(local_1a8,&local_8c,4)" (( "(") (identifier "local_1a8") (, ",") (pointer_expression "&local_8c" (& "&") (identifier "local_8c")) (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));" (call_expression "FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18))" (identifier "FUN_0015b484") (argument_list "(local_1a8,*(undefined8 *)(param_2 + 0x18))" (( "(") (identifier "local_1a8") (, ",") (pointer_expression "*(undefined8 *)(param_2 + 0x18)" (* "*") (cast_expression "(undefined8 *)(param_2 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")")))) () ")"))) (; ";")) (expression_statement "FUN_0015f872(local_1a8,local_88);" (call_expression "FUN_0015f872(local_1a8,local_88)" (identifier "FUN_0015f872") (argument_list "(local_1a8,local_88)" (( "(") (identifier "local_1a8") (, ",") (identifier "local_88") () ")"))) (; ";")) (expression_statement "local_1cc = local_1cc + 1;" (assignment_expression "local_1cc = local_1cc + 1" (identifier "local_1cc") (= "=") (binary_expression "local_1cc + 1" (identifier "local_1cc") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_0015e266(local_1a8);" (call_expression "FUN_0015e266(local_1a8)" (identifier "FUN_0015e266") (argument_list "(local_1a8)" (( "(") (identifier "local_1a8") () ")"))) (; ";")) (expression_statement "FUN_0015e34e(local_1a8,local_88,0x40);" (call_expression "FUN_0015e34e(local_1a8,local_88,0x40)" (identifier "FUN_0015e34e") (argument_list "(local_1a8,local_88,0x40)" (( "(") (identifier "local_1a8") (, ",") (identifier "local_88") (, ",") (number_literal "0x40") () ")"))) (; ";")) (expression_statement "FUN_0015b484(local_1a8,param_1);" (call_expression "FUN_0015b484(local_1a8,param_1)" (identifier "FUN_0015b484") (argument_list "(local_1a8,param_1)" (( "(") (identifier "local_1a8") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "FUN_0015f872(local_1a8,local_88);" (call_expression "FUN_0015f872(local_1a8,local_88)" (identifier "FUN_0015f872") (argument_list "(local_1a8,local_88)" (( "(") (identifier "local_1a8") (, ",") (identifier "local_88") () ")"))) (; ";")) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar10 = (uint)local_88[(int)uVar11];" (assignment_expression "uVar10 = (uint)local_88[(int)uVar11]" (identifier "uVar10") (= "=") (cast_expression "(uint)local_88[(int)uVar11]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_88[(int)uVar11]" (identifier "local_88") ([ "[") (cast_expression "(int)uVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar11")) (] "]")))) (; ";")) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" (identifier "uVar11") (= "=") (binary_expression "uVar11 + 1" (identifier "uVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar1 = 8;" (assignment_expression "iVar1 = 8" (identifier "iVar1") (= "=") (number_literal "8")) (; ";")) (} "}"))) (expression_statement "uVar8 = uVar10 & 1;" (assignment_expression "uVar8 = uVar10 & 1" (identifier "uVar8") (= "=") (binary_expression "uVar10 & 1" (identifier "uVar10") (& "&") (number_literal "1"))) (; ";")) (expression_statement "uVar10 = (int)uVar10 >> 1;" (assignment_expression "uVar10 = (int)uVar10 >> 1" (identifier "uVar10") (= "=") (binary_expression "(int)uVar10 >> 1" (cast_expression "(int)uVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar10")) (>> ">>") (number_literal "1"))) (; ";")) (expression_statement "iVar1 = iVar1 + -1;" (assignment_expression "iVar1 = iVar1 + -1" (identifier "iVar1") (= "=") (binary_expression "iVar1 + -1" (identifier "iVar1") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "FUN_0014a41b(uVar7,iVar9,uVar8);" (call_expression "FUN_0014a41b(uVar7,iVar9,uVar8)" (identifier "FUN_0014a41b") (argument_list "(uVar7,iVar9,uVar8)" (( "(") (identifier "uVar7") (, ",") (identifier "iVar9") (, ",") (identifier "uVar8") () ")"))) (; ";")) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar9 != -1)" (( "(") (binary_expression "iVar9 != -1" (identifier "iVar9") (!= "!=") (number_literal "-1")) () ")")) (; ";")) (} "}"))) (expression_statement "FUN_00149cd4(uVar7);" (call_expression "FUN_00149cd4(uVar7)" (identifier "FUN_00149cd4") (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")"))) (; ";")) (expression_statement "iVar1 = FUN_0014a527(uVar7,PTR_DAT_001ef2f0);" (assignment_expression "iVar1 = FUN_0014a527(uVar7,PTR_DAT_001ef2f0)" (identifier "iVar1") (= "=") (call_expression "FUN_0014a527(uVar7,PTR_DAT_001ef2f0)" (identifier "FUN_0014a527") (argument_list "(uVar7,PTR_DAT_001ef2f0)" (( "(") (identifier "uVar7") (, ",") (identifier "PTR_DAT_001ef2f0") () ")")))) (; ";")) (if_statement "if (0 < iVar1) {\n      iVar1 = FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8));\n      if (iVar1 < 0) {\n        lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));\n        if (lVar2 != 0) {\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    \n          __stack_chk_fail();\n        }\n        FUN_00149d43(uVar7);\n        goto LAB_0015c734;\n      }\n    }" (if "if") (parenthesized_expression "(0 < iVar1)" (( "(") (binary_expression "0 < iVar1" (number_literal "0") (< "<") (identifier "iVar1")) () ")")) (compound_statement "{\n      iVar1 = FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8));\n      if (iVar1 < 0) {\n        lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));\n        if (lVar2 != 0) {\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    \n          __stack_chk_fail();\n        }\n        FUN_00149d43(uVar7);\n        goto LAB_0015c734;\n      }\n    }" ({ "{") (expression_statement "iVar1 = FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8));" (assignment_expression "iVar1 = FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8))" (identifier "iVar1") (= "=") (call_expression "FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8))" (identifier "FUN_0014a527") (argument_list "(uVar7,*(undefined8 *)(param_2 + 8))" (( "(") (identifier "uVar7") (, ",") (pointer_expression "*(undefined8 *)(param_2 + 8)" (* "*") (cast_expression "(undefined8 *)(param_2 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar1 < 0) {\n        lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));\n        if (lVar2 != 0) {\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    \n          __stack_chk_fail();\n        }\n        FUN_00149d43(uVar7);\n        goto LAB_0015c734;\n      }" (if "if") (parenthesized_expression "(iVar1 < 0)" (( "(") (binary_expression "iVar1 < 0" (identifier "iVar1") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));\n        if (lVar2 != 0) {\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    \n          __stack_chk_fail();\n        }\n        FUN_00149d43(uVar7);\n        goto LAB_0015c734;\n      }" ({ "{") (expression_statement "lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));" (assignment_expression "lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8))" (identifier "lVar2") (= "=") (call_expression "FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8))" (identifier "FUN_0014b6e0") (argument_list "(uVar7,*(undefined8 *)(param_2 + 8))" (( "(") (identifier "uVar7") (, ",") (pointer_expression "*(undefined8 *)(param_2 + 8)" (* "*") (cast_expression "(undefined8 *)(param_2 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (if_statement "if (lVar2 != 0) {\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    \n          __stack_chk_fail();\n        }" (if "if") (parenthesized_expression "(lVar2 != 0)" (( "(") (binary_expression "lVar2 != 0" (identifier "lVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));\n          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));\n          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));\n          FUN_00149d43(uVar5);\n          FUN_00149d43(uVar4);\n          FUN_00149d43(lVar2);\n          FUN_00149d43(uVar3);\n          FUN_00149d43(uVar7);\n          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\n          }\n                    \n          __stack_chk_fail();\n        }" ({ "{") (expression_statement "uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));" (assignment_expression "uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30))" (identifier "uVar3") (= "=") (call_expression "FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30))" (identifier "FUN_0015c368") (argument_list "(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30))" (( "(") (identifier "uVar7") (, ",") (pointer_expression "*(undefined8 *)(param_2 + 0x10)" (* "*") (cast_expression "(undefined8 *)(param_2 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (pointer_expression "*(undefined8 *)(param_2 + 8)" (* "*") (cast_expression "(undefined8 *)(param_2 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))) (, ",") (pointer_expression "*(undefined8 *)(param_2 + 0x20)" (* "*") (cast_expression "(undefined8 *)(param_2 + 0x20)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x20)" (( "(") (binary_expression "param_2 + 0x20" (identifier "param_2") (+ "+") (number_literal "0x20")) () ")")))) (, ",") (pointer_expression "*(undefined8 *)(param_2 + 0x28)" (* "*") (cast_expression "(undefined8 *)(param_2 + 0x28)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x28)" (( "(") (binary_expression "param_2 + 0x28" (identifier "param_2") (+ "+") (number_literal "0x28")) () ")")))) (, ",") (pointer_expression "*(undefined8 *)(param_2 + 0x30)" (* "*") (cast_expression "(undefined8 *)(param_2 + 0x30)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x30)" (( "(") (binary_expression "param_2 + 0x30" (identifier "param_2") (+ "+") (number_literal "0x30")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));" (assignment_expression "uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8))" (identifier "uVar4") (= "=") (call_expression "FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8))" (identifier "FUN_00149d61") (argument_list "(param_1,uVar3,*(undefined8 *)(param_2 + 8))" (( "(") (identifier "param_1") (, ",") (identifier "uVar3") (, ",") (pointer_expression "*(undefined8 *)(param_2 + 8)" (* "*") (cast_expression "(undefined8 *)(param_2 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30));" (assignment_expression "uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30))" (identifier "uVar5") (= "=") (call_expression "FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30))" (identifier "FUN_0015c368") (argument_list "(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),\n                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),\n                               *(undefined8 *)(param_2 + 0x30))" (( "(") (identifier "uVar4") (, ",") (pointer_expression "*(undefined8 *)(param_2 + 0x18)" (* "*") (cast_expression "(undefined8 *)(param_2 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (pointer_expression "*(undefined8 *)(param_2 + 8)" (* "*") (cast_expression "(undefined8 *)(param_2 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))) (, ",") (pointer_expression "*(undefined8 *)(param_2 + 0x20)" (* "*") (cast_expression "(undefined8 *)(param_2 + 0x20)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x20)" (( "(") (binary_expression "param_2 + 0x20" (identifier "param_2") (+ "+") (number_literal "0x20")) () ")")))) (, ",") (pointer_expression "*(undefined8 *)(param_2 + 0x28)" (* "*") (cast_expression "(undefined8 *)(param_2 + 0x28)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x28)" (( "(") (binary_expression "param_2 + 0x28" (identifier "param_2") (+ "+") (number_literal "0x28")) () ")")))) (, ",") (pointer_expression "*(undefined8 *)(param_2 + 0x30)" (* "*") (cast_expression "(undefined8 *)(param_2 + 0x30)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x30)" (( "(") (binary_expression "param_2 + 0x30" (identifier "param_2") (+ "+") (number_literal "0x30")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));" (assignment_expression "uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8))" (identifier "uVar6") (= "=") (call_expression "FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8))" (identifier "FUN_00149d61") (argument_list "(uVar5,lVar2,*(undefined8 *)(param_2 + 8))" (( "(") (identifier "uVar5") (, ",") (identifier "lVar2") (, ",") (pointer_expression "*(undefined8 *)(param_2 + 8)" (* "*") (cast_expression "(undefined8 *)(param_2 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (expression_statement "FUN_00149d43(uVar5);" (call_expression "FUN_00149d43(uVar5)" (identifier "FUN_00149d43") (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "FUN_00149d43(uVar4);" (call_expression "FUN_00149d43(uVar4)" (identifier "FUN_00149d43") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "FUN_00149d43(lVar2);" (call_expression "FUN_00149d43(lVar2)" (identifier "FUN_00149d43") (argument_list "(lVar2)" (( "(") (identifier "lVar2") () ")"))) (; ";")) (expression_statement "FUN_00149d43(uVar3);" (call_expression "FUN_00149d43(uVar3)" (identifier "FUN_00149d43") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")"))) (; ";")) (expression_statement "FUN_00149d43(uVar7);" (call_expression "FUN_00149d43(uVar7)" (identifier "FUN_00149d43") (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")"))) (; ";")) (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n            return uVar6;\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 uVar6;\n          }" ({ "{") (return_statement "return uVar6;" (return "return") (identifier "uVar6") (; ";")) (} "}"))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00149d43(uVar7);" (call_expression "FUN_00149d43(uVar7)" (identifier "FUN_00149d43") (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")"))) (; ";")) (goto_statement "goto LAB_0015c734;" (goto "goto") (statement_identifier "LAB_0015c734") (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_00149d43(uVar7);" (call_expression "FUN_00149d43(uVar7)" (identifier "FUN_00149d43") (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (} "}")))

type_1 function_1(type_1 input,type_2 *key)

{
  long var_21;
  int var_4;
  type_3 var_17;
  type_3 q_00;
  type_3 b;
  type_3 p;
  type_3 pBVar3;
  type_3 bn;
  type_4 value;
  int var_13;
  type_4 var_11;
  type_4 var_5;
  long var_1;
  int var_10;
  type_5 ss;
  type_6 seqbuf [4];
  type_6 digest512 [64];
  
  var_21 = *(long *)(var_1 + 0x28);
  var_10 = 0;
  var_5 = 0x40;
LAB_0015c734:
  do {
    bn = var_2((type_3)key->modulus);
    var_4 = var_3(bn);
    var_13 = var_4 + -1;
    if (var_4 != 0) {
      var_4 = 0;
      var_11 = 0;
      do {
        if (var_4 < 1) {
          if (0x3f < var_5) {
            seqbuf[0] = (type_6)((type_4)var_10 >> 0x18);
            seqbuf[1] = (type_6)((type_4)var_10 >> 0x10);
            seqbuf[2] = (type_6)((type_4)var_10 >> 8);
            seqbuf[3] = (type_6)var_10;
            var_6((type_7 *)&ss);
            var_7(&ss,"RSA deterministic blinding",0x1a);
            var_7(&ss,seqbuf,4);
            var_8(&ss,key->private_exponent);
            var_9(&ss,digest512);
            var_10 = var_10 + 1;
            var_6((type_7 *)&ss);
            var_7(&ss,digest512,0x40);
            var_8(&ss,input);
            var_9(&ss,digest512);
            var_5 = 0;
          }
          var_11 = (type_4)digest512[(int)var_5];
          var_5 = var_5 + 1;
          var_4 = 8;
        }
        value = var_11 & 1;
        var_11 = (int)var_11 >> 1;
        var_4 = var_4 + -1;
        var_12(bn,var_13,value);
        var_13 = var_13 + -1;
      } while (var_13 != -1);
    }
    var_14(bn);
    var_13 = var_15(bn,Zero);
    if (0 < var_13) {
      var_13 = var_15(bn,(type_3)key->modulus);
      if (var_13 < 0) {
        var_17 = var_16(bn,(type_3)key->modulus);
        if (var_17 != (type_3)0x0) {
          q_00 = (type_3)var_18(bn,key->exponent,key->modulus,key->p,key->var_17,key->iqmp);
          b = var_19((type_3)input,q_00,(type_3)key->modulus);
          p = (type_3)
              var_18(b,key->private_exponent,key->modulus,key->p,key->var_17,key->iqmp);
          pBVar3 = var_19(p,var_17,(type_3)key->modulus);
          var_20(p);
          var_20(b);
          var_20(var_17);
          var_20(q_00);
          var_20(bn);
          if (var_21 == *(long *)(var_1 + 0x28)) {
            return pBVar3;
          }
                    /* WARNING: Subroutine does not return */
          var_22();
        }
        var_20(bn);
        goto LAB_0015c734;
      }
    }
    var_20(bn);
  } while( true );
}


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

undefined8 MASKED(undefined8 param_1,long param_2)

{
  int iVar1;
  long lVar2;
  undefined8 uVar3;
  undefined8 uVar4;
  undefined8 uVar5;
  undefined8 uVar6;
  undefined8 uVar7;
  uint uVar8;
  int iVar9;
  uint uVar10;
  uint uVar11;
  long in_FS_OFFSET;
  int local_1cc;
  undefined1 local_1a8 [284];
  undefined1 local_8c;
  undefined1 local_8b;
  undefined1 local_8a;
  undefined1 local_89;
  byte local_88 [72];
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  local_1cc = 0;
  uVar11 = 0x40;
LAB_0015c734:
  do {
    uVar7 = FUN_00149cfe(*(undefined8 *)(param_2 + 8));
    iVar1 = FUN_0014a306(uVar7);
    iVar9 = iVar1 + -1;
    if (iVar1 != 0) {
      iVar1 = 0;
      uVar10 = 0;
      do {
        if (iVar1 < 1) {
          if (0x3f < uVar11) {
            local_8c = (undefined1)((uint)local_1cc >> 0x18);
            local_8b = (undefined1)((uint)local_1cc >> 0x10);
            local_8a = (undefined1)((uint)local_1cc >> 8);
            local_89 = (undefined1)local_1cc;
            FUN_0015e266(local_1a8);
            FUN_0015e34e(local_1a8,"RSA deterministic blinding",0x1a);
            FUN_0015e34e(local_1a8,&local_8c,4);
            FUN_0015b484(local_1a8,*(undefined8 *)(param_2 + 0x18));
            FUN_0015f872(local_1a8,local_88);
            local_1cc = local_1cc + 1;
            FUN_0015e266(local_1a8);
            FUN_0015e34e(local_1a8,local_88,0x40);
            FUN_0015b484(local_1a8,param_1);
            FUN_0015f872(local_1a8,local_88);
            uVar11 = 0;
          }
          uVar10 = (uint)local_88[(int)uVar11];
          uVar11 = uVar11 + 1;
          iVar1 = 8;
        }
        uVar8 = uVar10 & 1;
        uVar10 = (int)uVar10 >> 1;
        iVar1 = iVar1 + -1;
        FUN_0014a41b(uVar7,iVar9,uVar8);
        iVar9 = iVar9 + -1;
      } while (iVar9 != -1);
    }
    FUN_00149cd4(uVar7);
    iVar1 = FUN_0014a527(uVar7,PTR_DAT_001ef2f0);
    if (0 < iVar1) {
      iVar1 = FUN_0014a527(uVar7,*(undefined8 *)(param_2 + 8));
      if (iVar1 < 0) {
        lVar2 = FUN_0014b6e0(uVar7,*(undefined8 *)(param_2 + 8));
        if (lVar2 != 0) {
          uVar3 = FUN_0015c368(uVar7,*(undefined8 *)(param_2 + 0x10),*(undefined8 *)(param_2 + 8),
                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),
                               *(undefined8 *)(param_2 + 0x30));
          uVar4 = FUN_00149d61(param_1,uVar3,*(undefined8 *)(param_2 + 8));
          uVar5 = FUN_0015c368(uVar4,*(undefined8 *)(param_2 + 0x18),*(undefined8 *)(param_2 + 8),
                               *(undefined8 *)(param_2 + 0x20),*(undefined8 *)(param_2 + 0x28),
                               *(undefined8 *)(param_2 + 0x30));
          uVar6 = FUN_00149d61(uVar5,lVar2,*(undefined8 *)(param_2 + 8));
          FUN_00149d43(uVar5);
          FUN_00149d43(uVar4);
          FUN_00149d43(lVar2);
          FUN_00149d43(uVar3);
          FUN_00149d43(uVar7);
          if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
            return uVar6;
          }
                    /* WARNING: Subroutine does not return */
          __stack_chk_fail();
        }
        FUN_00149d43(uVar7);
        goto LAB_0015c734;
      }
    }
    FUN_00149d43(uVar7);
  } while( true );
}

