
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

int ecdsa_verifysig(void *key,char *sig,int siglen,char *data,int datalen)

{
  uint nbytes;
  long lVar1;
  long lVar2;
  ec_curve *curve;
  uint uVar3;
  int iVar4;
  int iVar5;
  ec_point *peVar6;
  Bignum_conflict pBVar7;
  Bignum_conflict pBVar8;
  ec_point *peVar9;
  ec_point *peVar10;
  ec_point *point;
  undefined8 uVar11;
  Bignum_conflict pBVar12;
  Bignum_conflict pBVar13;
  Bignum_conflict b_00;
  Bignum_conflict b_01;
  long in_FS_OFFSET;
  int local_1c4;
  char *local_1c0;
  uchar b;
  int slen;
  char *p;
  SHA512_State hs;
  uchar digest [64];
  
  lVar1 = *(long *)(in_FS_OFFSET + 0x28);
  local_1c4 = siglen;
  local_1c0 = sig;
  if (*(long *)((long)key + 0x10) == 0) {
    uVar3 = 0;
    goto LAB_0013cc52;
  }
  if (*(long *)((long)key + 0x18) == 0) {
    uVar3 = 0;
    goto LAB_0013cc52;
  }
  if (*(long *)((long)key + 8) == 0) {
    uVar3 = 0;
    goto LAB_0013cc52;
  }
                    /* WARNING: Load size is inaccurate */
  lVar2 = *(long *)(*key + 0x70);
  getstring(&local_1c0,&local_1c4,&p,&slen);
  if (p == (char *)0x0) {
    uVar3 = 0;
    goto LAB_0013cc52;
  }
                    /* WARNING: Load size is inaccurate */
  uVar3 = match_ssh_id(slen,p,*(char **)(*key + 0x60));
  if (uVar3 == 0) goto LAB_0013cc52;
  getstring(&local_1c0,&local_1c4,&p,&slen);
  if (p == (char *)0x0) {
    uVar3 = 0;
    goto LAB_0013cc52;
  }
  curve = *(ec_curve **)((long)key + 8);
  if (curve->type == ADDRTYPE_IPV6) {
    if (((curve->fieldBits >> 3) * 2 == slen) && (curve->fieldBits == 0x100)) {
      peVar6 = ec_point_new(curve,(Bignum)0x0,(Bignum)0x0,(Bignum)0x0,'\0');
      uVar3 = 0;
      if (peVar6 != (ec_point *)0x0) {
        iVar4 = decodepoint(p,*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3,peVar6);
        if (iVar4 == 0) {
          ec_point_free(peVar6);
          uVar3 = 0;
        }
        else {
          uVar3 = *(uint *)(*(long *)((long)key + 8) + 0x18) >> 3;
          pBVar7 = bignum_from_bytes_le((uchar *)(p + uVar3),uVar3);
          SHA512_Init((SHA512_CTX *)&hs);
          SHA512_Bytes(&hs,p,*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3);
          uVar3 = *(uint *)(*(long *)((long)key + 8) + 0x18) >> 3;
          if (uVar3 < 2) {
            iVar4 = 0;
          }
          else {
            iVar4 = 0;
            do {
              iVar5 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4);
              b = (uchar)iVar5;
              SHA512_Bytes(&hs,&b,1);
              iVar4 = iVar4 + 1;
            } while (uVar3 - 1 != iVar4);
          }
          iVar4 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4);
          b = (byte)iVar4 & 0x7f;
          iVar4 = bignum_bit(*(Bignum_conflict *)((long)key + 0x10),0);
          b = b | (byte)(iVar4 << 7);
          SHA512_Bytes(&hs,&b,1);
          SHA512_Bytes(&hs,data,datalen);
          SHA512_Final(&hs,digest);
          pBVar8 = bignum_from_bytes_le(digest,0x40);
          peVar9 = ecp_mul((ec_point *)(*(long *)((long)key + 8) + 0x38),pBVar7);
          freebn(pBVar7);
          if (peVar9 == (ec_point *)0x0) {
            ec_point_free(peVar6);
            freebn(pBVar8);
            uVar3 = 0;
          }
          else {
            peVar10 = ecp_mul((ec_point *)((long)key + 8),pBVar8);
            freebn(pBVar8);
            if (peVar10 == (ec_point *)0x0) {
              ec_point_free(peVar9);
              ec_point_free(peVar6);
              uVar3 = 0;
            }
            else {
              point = ecp_add(peVar6,peVar10,0);
              ec_point_free(peVar6);
              ec_point_free(peVar10);
              if (point == (ec_point *)0x0) {
                ec_point_free(peVar9);
                uVar3 = 0;
              }
              else {
                iVar4 = bignum_cmp((Bignum_conflict)peVar9->x,(Bignum_conflict)point->x);
                uVar3 = 0;
                if (iVar4 == 0) {
                  iVar4 = bignum_cmp((Bignum_conflict)peVar9->y,(Bignum_conflict)point->y);
                  uVar3 = (uint)(iVar4 == 0);
                }
                ec_point_free(peVar9);
                ec_point_free(point);
              }
            }
          }
        }
      }
    }
    else {
      uVar3 = 0;
    }
    goto LAB_0013cc52;
  }
  pBVar7 = (Bignum_conflict)getmp(&p,&slen);
  if (pBVar7 != (Bignum_conflict)0x0) {
    pBVar8 = (Bignum_conflict)getmp(&p,&slen);
    if (pBVar8 != (Bignum_conflict)0x0) {
      nbytes = *(uint *)(*(undefined8 **)(lVar2 + 8) + 5);
      if (0x40 < nbytes) {
                    /* WARNING: Subroutine does not return */
        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");
      }
      uVar11 = (*(code *)**(undefined8 **)(lVar2 + 8))();
      (**(code **)(*(long *)(lVar2 + 8) + 0x10))(uVar11,data,datalen);
      (**(code **)(*(long *)(lVar2 + 8) + 0x18))(uVar11,digest);
      uVar3 = 0;
      if (**(int **)((long)key + 8) == 0) {
        uVar3 = bignum_cmp(pBVar7,Zero);
        if (uVar3 != 0) {
          iVar4 = bignum_cmp(pBVar7,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));
          uVar3 = 0;
          if (iVar4 < 0) {
            uVar3 = bignum_cmp(pBVar8,Zero);
            if (uVar3 != 0) {
              iVar4 = bignum_cmp(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));
              uVar3 = 0;
              if (iVar4 < 0) {
                pBVar12 = bignum_from_bytes(digest,nbytes);
                iVar4 = bignum_bitcount(*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));
                iVar5 = bignum_bitcount(pBVar12);
                pBVar13 = pBVar12;
                if (iVar4 < iVar5) {
                  pBVar13 = bignum_rshift(pBVar12,iVar5 - iVar4);
                  freebn(pBVar12);
                }
                pBVar12 = bigmod(pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));
                freebn(pBVar13);
                pBVar13 = modinv(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));
                if (pBVar13 == (Bignum_conflict)0x0) {
                  freebn(pBVar12);
                  uVar3 = 0;
                }
                else {
                  b_00 = modmul(pBVar12,pBVar13,
                                *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));
                  b_01 = modmul(pBVar7,pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)
                               );
                  freebn(pBVar13);
                  if ((*(ec_curve **)((long)key + 8))->type == ADDRTYPE_UNSPEC) {
                    iVar4 = ec_aminus3(*(ec_curve **)((long)key + 8));
                    peVar6 = ecp_mul_((ec_point *)(*(long *)((long)key + 8) + 0x40),b_00,iVar4);
                    if (peVar6 == (ec_point *)0x0) goto LAB_0013cc19;
                    peVar9 = ecp_mul_((ec_point *)((long)key + 8),b_01,iVar4);
                    if (peVar9 == (ec_point *)0x0) {
                      ec_point_free(peVar6);
                      goto LAB_0013cc19;
                    }
                    peVar10 = ecp_add(peVar6,peVar9,iVar4);
                    ec_point_free(peVar6);
                    ec_point_free(peVar9);
                    iVar4 = ecp_normalise(peVar10);
                    if (iVar4 == 0) {
                      ec_point_free(peVar10);
                      goto LAB_0013cc19;
                    }
                    freebn(b_00);
                    freebn(b_01);
                    if (peVar10 != (ec_point *)0x0) {
                      pBVar13 = bigmod((Bignum_conflict)peVar10->x,
                                       *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));
                      ec_point_free(peVar10);
                      iVar4 = bignum_cmp(pBVar7,pBVar13);
                      uVar3 = (uint)(iVar4 == 0);
                      freebn(pBVar13);
                      freebn(pBVar12);
                      goto LAB_0013c99e;
                    }
                  }
                  else {
LAB_0013cc19:
                    freebn(b_00);
                    freebn(b_01);
                  }
                  freebn(pBVar12);
                  uVar3 = 0;
                }
              }
            }
          }
        }
      }
LAB_0013c99e:
      freebn(pBVar7);
      freebn(pBVar8);
      goto LAB_0013cc52;
    }
    freebn(pBVar7);
  }
  uVar3 = 0;
LAB_0013cc52:
  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {
    return uVar3;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}



uint FUN_0013c5c7(long *param_1,undefined8 param_2,undefined4 param_3,undefined8 param_4,
                 undefined4 param_5)

{
  uint uVar1;
  int *piVar2;
  uint uVar3;
  int iVar4;
  int iVar5;
  undefined4 uVar6;
  long lVar7;
  undefined8 uVar8;
  undefined8 uVar9;
  long lVar10;
  long lVar11;
  long lVar12;
  undefined8 uVar13;
  long lVar14;
  long in_FS_OFFSET;
  undefined4 local_1c4;
  undefined8 local_1c0;
  byte local_1b5;
  int local_1b4;
  long local_1b0;
  undefined1 local_1a8 [288];
  undefined1 local_88 [72];
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  local_1c4 = param_3;
  local_1c0 = param_2;
  if (param_1[2] == 0) {
    uVar3 = 0;
    goto LAB_0013cc52;
  }
  if (param_1[3] == 0) {
    uVar3 = 0;
    goto LAB_0013cc52;
  }
  if (param_1[1] == 0) {
    uVar3 = 0;
    goto LAB_0013cc52;
  }
  lVar7 = *(long *)(*param_1 + 0x70);
  FUN_0013ad00(&local_1c0,&local_1c4,&local_1b0,&local_1b4);
  if (local_1b0 == 0) {
    uVar3 = 0;
    goto LAB_0013cc52;
  }
  uVar3 = FUN_0010f984(local_1b4,local_1b0,*(undefined8 *)(*param_1 + 0x60));
  if (uVar3 == 0) goto LAB_0013cc52;
  FUN_0013ad00(&local_1c0,&local_1c4,&local_1b0,&local_1b4);
  if (local_1b0 == 0) {
    uVar3 = 0;
    goto LAB_0013cc52;
  }
  piVar2 = (int *)param_1[1];
  if (*piVar2 == 2) {
    if ((((uint)piVar2[6] >> 3) * 2 == local_1b4) && (piVar2[6] == 0x100)) {
      lVar7 = FUN_00139166(piVar2,0,0,0,0);
      uVar3 = 0;
      if (lVar7 != 0) {
        iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7);
        if (iVar4 == 0) {
          FUN_0013b9a8(lVar7);
          uVar3 = 0;
        }
        else {
          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);
          FUN_00145d73(local_1a8);
          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);
          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;
          if (uVar3 < 2) {
            iVar4 = 0;
          }
          else {
            iVar4 = 0;
            do {
              local_1b5 = FUN_00131ea6(param_1[3],iVar4);
              FUN_00145e5b(local_1a8,&local_1b5,1);
              iVar4 = iVar4 + 1;
            } while (uVar3 - 1 != iVar4);
          }
          local_1b5 = FUN_00131ea6(param_1[3],iVar4);
          local_1b5 = local_1b5 & 0x7f;
          iVar4 = FUN_00131eed(param_1[2],0);
          local_1b5 = local_1b5 | (byte)(iVar4 << 7);
          FUN_00145e5b(local_1a8,&local_1b5,1);
          FUN_00145e5b(local_1a8,param_4,param_5);
          FUN_0014737f(local_1a8,local_88);
          uVar9 = FUN_00131ce3(local_88,0x40);
          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);
          FUN_00131850(uVar8);
          if (lVar10 == 0) {
            FUN_0013b9a8(lVar7);
            FUN_00131850(uVar9);
            uVar3 = 0;
          }
          else {
            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);
            FUN_00131850(uVar9);
            if (lVar11 == 0) {
              FUN_0013b9a8(lVar10);
              FUN_0013b9a8(lVar7);
              uVar3 = 0;
            }
            else {
              lVar12 = FUN_00139c83(lVar7,lVar11,0);
              FUN_0013b9a8(lVar7);
              FUN_0013b9a8(lVar11);
              if (lVar12 == 0) {
                FUN_0013b9a8(lVar10);
                uVar3 = 0;
              }
              else {
                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));
                uVar3 = 0;
                if (iVar4 == 0) {
                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)
                                      );
                  uVar3 = (uint)(iVar4 == 0);
                }
                FUN_0013b9a8(lVar10);
                FUN_0013b9a8(lVar12);
              }
            }
          }
        }
      }
    }
    else {
      uVar3 = 0;
    }
    goto LAB_0013cc52;
  }
  lVar10 = FUN_0013ad88(&local_1b0,&local_1b4);
  if (lVar10 != 0) {
    lVar11 = FUN_0013ad88(&local_1b0,&local_1b4);
    if (lVar11 != 0) {
      uVar1 = *(uint *)(*(undefined8 **)(lVar7 + 8) + 5);
      if (0x40 < uVar1) {
                    /* WARNING: Subroutine does not return */
        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");
      }
      uVar8 = (*(code *)**(undefined8 **)(lVar7 + 8))();
      (**(code **)(*(long *)(lVar7 + 8) + 0x10))(uVar8,param_4,param_5);
      (**(code **)(*(long *)(lVar7 + 8) + 0x18))(uVar8,local_88);
      uVar3 = 0;
      if (*(int *)param_1[1] == 0) {
        uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0);
        if (uVar3 != 0) {
          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));
          uVar3 = 0;
          if (iVar4 < 0) {
            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);
            if (uVar3 != 0) {
              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));
              uVar3 = 0;
              if (iVar4 < 0) {
                uVar9 = FUN_00131c11(local_88,uVar1);
                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));
                iVar5 = FUN_00131e13(uVar9);
                uVar8 = uVar9;
                if (iVar4 < iVar5) {
                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);
                  FUN_00131850(uVar9);
                }
                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));
                FUN_00131850(uVar8);
                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));
                if (lVar7 == 0) {
                  FUN_00131850(uVar9);
                  uVar3 = 0;
                }
                else {
                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));
                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));
                  FUN_00131850(lVar7);
                  if (*(int *)param_1[1] == 0) {
                    uVar6 = FUN_0013911b();
                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);
                    if (lVar7 == 0) goto LAB_0013cc19;
                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);
                    if (lVar12 == 0) {
                      FUN_0013b9a8(lVar7);
                      goto LAB_0013cc19;
                    }
                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);
                    FUN_0013b9a8(lVar7);
                    FUN_0013b9a8(lVar12);
                    iVar4 = FUN_00139232(lVar14);
                    if (iVar4 == 0) {
                      FUN_0013b9a8(lVar14);
                      goto LAB_0013cc19;
                    }
                    FUN_00131850(uVar8);
                    FUN_00131850(uVar13);
                    if (lVar14 != 0) {
                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),
                                           *(undefined8 *)(param_1[1] + 0x38));
                      FUN_0013b9a8(lVar14);
                      iVar4 = FUN_00132034(lVar10,uVar8);
                      uVar3 = (uint)(iVar4 == 0);
                      FUN_00131850(uVar8);
                      FUN_00131850(uVar9);
                      goto LAB_0013c99e;
                    }
                  }
                  else {
LAB_0013cc19:
                    FUN_00131850(uVar8);
                    FUN_00131850(uVar13);
                  }
                  FUN_00131850(uVar9);
                  uVar3 = 0;
                }
              }
            }
          }
        }
      }
LAB_0013c99e:
      FUN_00131850(lVar10);
      FUN_00131850(lVar11);
      goto LAB_0013cc52;
    }
    FUN_00131850(lVar10);
  }
  uVar3 = 0;
LAB_0013cc52:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return uVar3;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x1b8
MOV qword ptr [RSP + 0x28],RSI
MOV dword ptr [RSP + 0x24],EDX
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x1a8],RAX
XOR EAX,EAX
CMP qword ptr [RDI + 0x10],0x0
JZ 0x0013cc3f
MOV RBX,RDI
MOV R12,RCX
MOV R13D,R8D
CMP qword ptr [RDI + 0x18],0x0
JZ 0x0013cc46
CMP qword ptr [RDI + 0x8],0x0
JZ 0x0013cc4d
MOV RAX,qword ptr [RDI]
MOV R14,qword ptr [RAX + 0x70]
LEA RCX,[RSP + 0x34]
LEA RDX,[RSP + 0x38]
LEA RSI,[RSP + 0x24]
LEA RDI,[RSP + 0x28]
CALL 0x0013ad00
MOV RSI,qword ptr [RSP + 0x38]
TEST RSI,RSI
JZ 0x0013cc79
MOV RAX,qword ptr [RBX]
MOV RDX,qword ptr [RAX + 0x60]
MOV EDI,dword ptr [RSP + 0x34]
CALL 0x0010f984
MOV EBP,EAX
TEST EAX,EAX
JZ 0x0013cc52
LEA RCX,[RSP + 0x34]
LEA RDX,[RSP + 0x38]
LEA RSI,[RSP + 0x24]
LEA RDI,[RSP + 0x28]
CALL 0x0013ad00
CMP qword ptr [RSP + 0x38],0x0
JZ 0x0013cc80
MOV RDI,qword ptr [RBX + 0x8]
CMP dword ptr [RDI],0x2
JNZ 0x0013c929
MOV EDX,dword ptr [RDI + 0x18]
MOV EAX,EDX
SHR EAX,0x3
ADD EAX,EAX
CMP EAX,dword ptr [RSP + 0x34]
JNZ 0x0013c6b0
CMP EDX,0x100
JZ 0x0013c6ba
MOV EBP,0x0
JMP 0x0013cc52
MOV R8D,0x0
MOV ECX,0x0
MOV EDX,0x0
MOV ESI,0x0
CALL 0x00139166
MOV RDX,RAX
MOV qword ptr [RSP + 0x10],RAX
MOV EBP,0x0
TEST RAX,RAX
JZ 0x0013cc52
MOV RAX,qword ptr [RBX + 0x8]
MOV ESI,dword ptr [RAX + 0x18]
SHR ESI,0x3
MOV RDI,qword ptr [RSP + 0x38]
CALL 0x0013b2ef
MOV EBP,EAX
TEST EAX,EAX
JZ 0x0013c8a9
MOV RAX,qword ptr [RBX + 0x8]
MOV ESI,dword ptr [RAX + 0x18]
SHR ESI,0x3
MOV EDI,ESI
ADD RDI,qword ptr [RSP + 0x38]
CALL 0x00131ce3
MOV qword ptr [RSP + 0x18],RAX
LEA RBP,[RSP + 0x40]
MOV RDI,RBP
CALL 0x00145d73
MOV RAX,qword ptr [RBX + 0x8]
MOV EDX,dword ptr [RAX + 0x18]
SHR EDX,0x3
MOV RSI,qword ptr [RSP + 0x38]
MOV RDI,RBP
CALL 0x00145e5b
MOV RAX,qword ptr [RBX + 0x8]
MOV EAX,dword ptr [RAX + 0x18]
SHR EAX,0x3
CMP EAX,0x1
JLE 0x0013c8b8
SUB EAX,0x1
MOV dword ptr [RSP + 0x8],EAX
MOV EBP,0x0
LEA R15,[RSP + 0x33]
LEA R14,[RSP + 0x40]
MOV RDI,qword ptr [RBX + 0x18]
MOV ESI,EBP
CALL 0x00131ea6
MOV byte ptr [RSP + 0x33],AL
MOV EDX,0x1
MOV RSI,R15
MOV RDI,R14
CALL 0x00145e5b
ADD EBP,0x1
CMP dword ptr [RSP + 0x8],EBP
JNZ 0x0013c770
MOV RDI,qword ptr [RBX + 0x18]
MOV ESI,EBP
CALL 0x00131ea6
AND EAX,0x7f
MOV byte ptr [RSP + 0x33],AL
MOV RDI,qword ptr [RBX + 0x10]
MOV ESI,0x0
CALL 0x00131eed
SHL EAX,0x7
OR byte ptr [RSP + 0x33],AL
LEA RSI,[RSP + 0x33]
LEA RBP,[RSP + 0x40]
MOV EDX,0x1
MOV RDI,RBP
CALL 0x00145e5b
MOV EDX,R13D
MOV RSI,R12
MOV RDI,RBP
CALL 0x00145e5b
LEA R12,[RSP + 0x160]
MOV RSI,R12
MOV RDI,RBP
CALL 0x0014737f
MOV ESI,0x40
MOV RDI,R12
CALL 0x00131ce3
MOV RBP,RAX
MOV RAX,qword ptr [RBX + 0x8]
LEA RDI,[RAX + 0x38]
MOV R15,qword ptr [RSP + 0x18]
MOV RSI,R15
CALL 0x0013bab7
MOV R12,RAX
MOV RDI,R15
CALL 0x00131850
TEST R12,R12
JZ 0x0013c8c2
LEA RDI,[RBX + 0x8]
MOV RSI,RBP
CALL 0x0013bab7
MOV RBX,RAX
MOV RDI,RBP
CALL 0x00131850
TEST RBX,RBX
JZ 0x0013c8de
MOV EDX,0x0
MOV RSI,RBX
MOV R15,qword ptr [RSP + 0x10]
MOV RDI,R15
CALL 0x00139c83
MOV R13,RAX
MOV RDI,R15
CALL 0x0013b9a8
MOV RDI,RBX
CALL 0x0013b9a8
TEST R13,R13
JZ 0x0013c8fa
MOV RSI,qword ptr [R13 + 0x8]
MOV RDI,qword ptr [R12 + 0x8]
CALL 0x00132034
MOV EBP,0x0
TEST EAX,EAX
JZ 0x0013c90c
MOV RDI,R12
CALL 0x0013b9a8
MOV RDI,R13
CALL 0x0013b9a8
JMP 0x0013cc52
MOV RDI,qword ptr [RSP + 0x10]
CALL 0x0013b9a8
JMP 0x0013cc52
MOV EBP,0x0
JMP 0x0013c798
MOV RDI,qword ptr [RSP + 0x10]
CALL 0x0013b9a8
MOV RDI,RBP
CALL 0x00131850
MOV EBP,0x0
JMP 0x0013cc52
MOV RDI,R12
CALL 0x0013b9a8
MOV RDI,qword ptr [RSP + 0x10]
CALL 0x0013b9a8
MOV EBP,0x0
JMP 0x0013cc52
MOV RDI,R12
CALL 0x0013b9a8
MOV EBP,0x0
JMP 0x0013cc52
MOV RSI,qword ptr [R13 + 0x10]
MOV RDI,qword ptr [R12 + 0x10]
CALL 0x00132034
TEST EAX,EAX
SETZ BPL
MOVZX EBP,BPL
JMP 0x0013c894
LEA RSI,[RSP + 0x34]
LEA RDI,[RSP + 0x38]
CALL 0x0013ad88
MOV R15,RAX
TEST RAX,RAX
JZ 0x0013c9bd
LEA RSI,[RSP + 0x34]
LEA RDI,[RSP + 0x38]
CALL 0x0013ad88
MOV qword ptr [RSP + 0x8],RAX
TEST RAX,RAX
JZ 0x0013c9b5
MOV RAX,qword ptr [R14 + 0x8]
MOV ECX,dword ptr [RAX + 0x28]
MOV dword ptr [RSP + 0x10],ECX
CMP ECX,0x40
JA 0x0013c9c7
CALL qword ptr [RAX]
MOV RBP,RAX
MOV RAX,qword ptr [R14 + 0x8]
MOV EDX,R13D
MOV RSI,R12
MOV RDI,RBP
CALL qword ptr [RAX + 0x10]
LEA RSI,[RSP + 0x160]
MOV RAX,qword ptr [R14 + 0x8]
MOV RDI,RBP
CALL qword ptr [RAX + 0x18]
MOV RAX,qword ptr [RBX + 0x8]
MOV EBP,0x0
CMP dword ptr [RAX],0x0
JZ 0x0013c9e6
MOV RDI,R15
CALL 0x00131850
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x00131850
JMP 0x0013cc52
MOV RDI,R15
CALL 0x00131850
MOV EBP,0x0
JMP 0x0013cc52
LEA RCX,[0x1698d0]
MOV EDX,0x950
LEA RSI,[0x1691c1]
LEA RDI,[0x1691fb]
CALL 0x00108340
MOV RSI,qword ptr [0x001822f0]
MOV RDI,R15
CALL 0x00132034
MOV EBP,EAX
TEST EAX,EAX
JZ 0x0013c99e
MOV RAX,qword ptr [RBX + 0x8]
MOV RSI,qword ptr [RAX + 0x38]
MOV RDI,R15
CALL 0x00132034
MOV EBP,0x0
TEST EAX,EAX
JNS 0x0013c99e
MOV RSI,qword ptr [0x001822f0]
MOV R14,qword ptr [RSP + 0x8]
MOV RDI,R14
CALL 0x00132034
MOV EBP,EAX
TEST EAX,EAX
JZ 0x0013c99e
MOV RAX,qword ptr [RBX + 0x8]
MOV RSI,qword ptr [RAX + 0x38]
MOV RDI,R14
CALL 0x00132034
MOV EBP,0x0
TEST EAX,EAX
JNS 0x0013c99e
LEA RDI,[RSP + 0x160]
MOV ESI,dword ptr [RSP + 0x10]
CALL 0x00131c11
MOV RBP,RAX
MOV RAX,qword ptr [RBX + 0x8]
MOV RDI,qword ptr [RAX + 0x38]
CALL 0x00131e13
MOV R12D,EAX
MOV RDI,RBP
CALL 0x00131e13
CMP R12D,EAX
JL 0x0013cbda
MOV RAX,qword ptr [RBX + 0x8]
MOV RSI,qword ptr [RAX + 0x38]
MOV RDI,RBP
CALL 0x00132ba8
MOV R12,RAX
MOV RDI,RBP
CALL 0x00131850
MOV RAX,qword ptr [RBX + 0x8]
MOV RSI,qword ptr [RAX + 0x38]
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x001331ed
MOV RBP,RAX
TEST RAX,RAX
JZ 0x0013cbfa
MOV RAX,qword ptr [RBX + 0x8]
MOV RDX,qword ptr [RAX + 0x38]
MOV RSI,RBP
MOV RDI,R12
CALL 0x0013186e
MOV R13,RAX
MOV qword ptr [RSP + 0x10],RAX
MOV RAX,qword ptr [RBX + 0x8]
MOV RDX,qword ptr [RAX + 0x38]
MOV RSI,RBP
MOV RDI,R15
CALL 0x0013186e
MOV R14,RAX
MOV qword ptr [RSP + 0x18],RAX
MOV RDI,RBP
CALL 0x00131850
MOV RDI,qword ptr [RBX + 0x8]
CMP dword ptr [RDI],0x0
JNZ 0x0013cc19
CALL 0x0013911b
MOV EBP,EAX
MOV RAX,qword ptr [RBX + 0x8]
LEA RDI,[RAX + 0x40]
MOV EDX,EBP
MOV RSI,R13
CALL 0x0013b9f1
MOV R13,RAX
TEST RAX,RAX
JZ 0x0013cc19
LEA RDI,[RBX + 0x8]
MOV EDX,EBP
MOV RSI,R14
CALL 0x0013b9f1
MOV R14,RAX
TEST RAX,RAX
JZ 0x0013cc07
MOV EDX,EBP
MOV RSI,RAX
MOV RDI,R13
CALL 0x00139c83
MOV RBP,RAX
MOV RDI,R13
CALL 0x0013b9a8
MOV RDI,R14
CALL 0x0013b9a8
MOV RDI,RBP
CALL 0x00139232
TEST EAX,EAX
JZ 0x0013cc11
MOV RDI,qword ptr [RSP + 0x10]
CALL 0x00131850
MOV RDI,qword ptr [RSP + 0x18]
CALL 0x00131850
TEST RBP,RBP
JZ 0x0013cc2d
MOV RAX,qword ptr [RBX + 0x8]
MOV RSI,qword ptr [RAX + 0x38]
MOV RDI,qword ptr [RBP + 0x8]
CALL 0x00132ba8
MOV RBX,RAX
MOV RDI,RBP
CALL 0x0013b9a8
MOV RSI,RBX
MOV RDI,R15
CALL 0x00132034
TEST EAX,EAX
SETZ BPL
MOVZX EBP,BPL
MOV RDI,RBX
CALL 0x00131850
MOV RDI,R12
CALL 0x00131850
JMP 0x0013c99e
SUB EAX,R12D
MOV ESI,EAX
MOV RDI,RBP
CALL 0x00132271
MOV R12,RAX
MOV RDI,RBP
CALL 0x00131850
MOV RBP,R12
JMP 0x0013ca84
MOV RDI,R12
CALL 0x00131850
JMP 0x0013c99e
MOV RDI,R13
CALL 0x0013b9a8
JMP 0x0013cc19
MOV RDI,RBP
CALL 0x0013b9a8
MOV RDI,qword ptr [RSP + 0x10]
CALL 0x00131850
MOV RDI,qword ptr [RSP + 0x18]
CALL 0x00131850
MOV RDI,R12
CALL 0x00131850
MOV EBP,0x0
JMP 0x0013c99e
MOV EBP,0x0
JMP 0x0013cc52
MOV EBP,0x0
JMP 0x0013cc52
MOV EBP,0x0
MOV EAX,EBP
MOV RCX,qword ptr [RSP + 0x1a8]
XOR RCX,qword ptr FS:[0x28]
JNZ 0x0013cc87
ADD RSP,0x1b8
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV EBP,0x0
JMP 0x0013cc52
MOV EBP,0x0
JMP 0x0013cc52
CALL 0x00108280
(translation_unit "uint FUN_0013c5c7(long *param_1,undefined8 param_2,undefined4 param_3,undefined8 param_4,\n                 undefined4 param_5)\n\n{\n  uint uVar1;\n  int *piVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  long lVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  undefined8 uVar13;\n  long lVar14;\n  long in_FS_OFFSET;\n  undefined4 local_1c4;\n  undefined8 local_1c0;\n  byte local_1b5;\n  int local_1b4;\n  long local_1b0;\n  undefined1 local_1a8 [288];\n  undefined1 local_88 [72];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_1c4 = param_3;\n  local_1c0 = param_2;\n  if (param_1[2] == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  if (param_1[3] == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  if (param_1[1] == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  lVar7 = *(long *)(*param_1 + 0x70);\n  FUN_0013ad00(&local_1c0,&local_1c4,&local_1b0,&local_1b4);\n  if (local_1b0 == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  uVar3 = FUN_0010f984(local_1b4,local_1b0,*(undefined8 *)(*param_1 + 0x60));\n  if (uVar3 == 0) goto LAB_0013cc52;\n  FUN_0013ad00(&local_1c0,&local_1c4,&local_1b0,&local_1b4);\n  if (local_1b0 == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  piVar2 = (int *)param_1[1];\n  if (*piVar2 == 2) {\n    if ((((uint)piVar2[6] >> 3) * 2 == local_1b4) && (piVar2[6] == 0x100)) {\n      lVar7 = FUN_00139166(piVar2,0,0,0,0);\n      uVar3 = 0;\n      if (lVar7 != 0) {\n        iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7);\n        if (iVar4 == 0) {\n          FUN_0013b9a8(lVar7);\n          uVar3 = 0;\n        }\n        else {\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }\n      }\n    }\n    else {\n      uVar3 = 0;\n    }\n    goto LAB_0013cc52;\n  }\n  lVar10 = FUN_0013ad88(&local_1b0,&local_1b4);\n  if (lVar10 != 0) {\n    lVar11 = FUN_0013ad88(&local_1b0,&local_1b4);\n    if (lVar11 != 0) {\n      uVar1 = *(uint *)(*(undefined8 **)(lVar7 + 8) + 5);\n      if (0x40 < uVar1) {\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }\n      uVar8 = (*(code *)**(undefined8 **)(lVar7 + 8))();\n      (**(code **)(*(long *)(lVar7 + 8) + 0x10))(uVar8,param_4,param_5);\n      (**(code **)(*(long *)(lVar7 + 8) + 0x18))(uVar8,local_88);\n      uVar3 = 0;\n      if (*(int *)param_1[1] == 0) {\n        uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0);\n        if (uVar3 != 0) {\n          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }\nLAB_0013c99e:\n      FUN_00131850(lVar10);\n      FUN_00131850(lVar11);\n      goto LAB_0013cc52;\n    }\n    FUN_00131850(lVar10);\n  }\n  uVar3 = 0;\nLAB_0013cc52:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" (function_definition "uint FUN_0013c5c7(long *param_1,undefined8 param_2,undefined4 param_3,undefined8 param_4,\n                 undefined4 param_5)\n\n{\n  uint uVar1;\n  int *piVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  long lVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  undefined8 uVar13;\n  long lVar14;\n  long in_FS_OFFSET;\n  undefined4 local_1c4;\n  undefined8 local_1c0;\n  byte local_1b5;\n  int local_1b4;\n  long local_1b0;\n  undefined1 local_1a8 [288];\n  undefined1 local_88 [72];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_1c4 = param_3;\n  local_1c0 = param_2;\n  if (param_1[2] == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  if (param_1[3] == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  if (param_1[1] == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  lVar7 = *(long *)(*param_1 + 0x70);\n  FUN_0013ad00(&local_1c0,&local_1c4,&local_1b0,&local_1b4);\n  if (local_1b0 == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  uVar3 = FUN_0010f984(local_1b4,local_1b0,*(undefined8 *)(*param_1 + 0x60));\n  if (uVar3 == 0) goto LAB_0013cc52;\n  FUN_0013ad00(&local_1c0,&local_1c4,&local_1b0,&local_1b4);\n  if (local_1b0 == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  piVar2 = (int *)param_1[1];\n  if (*piVar2 == 2) {\n    if ((((uint)piVar2[6] >> 3) * 2 == local_1b4) && (piVar2[6] == 0x100)) {\n      lVar7 = FUN_00139166(piVar2,0,0,0,0);\n      uVar3 = 0;\n      if (lVar7 != 0) {\n        iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7);\n        if (iVar4 == 0) {\n          FUN_0013b9a8(lVar7);\n          uVar3 = 0;\n        }\n        else {\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }\n      }\n    }\n    else {\n      uVar3 = 0;\n    }\n    goto LAB_0013cc52;\n  }\n  lVar10 = FUN_0013ad88(&local_1b0,&local_1b4);\n  if (lVar10 != 0) {\n    lVar11 = FUN_0013ad88(&local_1b0,&local_1b4);\n    if (lVar11 != 0) {\n      uVar1 = *(uint *)(*(undefined8 **)(lVar7 + 8) + 5);\n      if (0x40 < uVar1) {\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }\n      uVar8 = (*(code *)**(undefined8 **)(lVar7 + 8))();\n      (**(code **)(*(long *)(lVar7 + 8) + 0x10))(uVar8,param_4,param_5);\n      (**(code **)(*(long *)(lVar7 + 8) + 0x18))(uVar8,local_88);\n      uVar3 = 0;\n      if (*(int *)param_1[1] == 0) {\n        uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0);\n        if (uVar3 != 0) {\n          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }\nLAB_0013c99e:\n      FUN_00131850(lVar10);\n      FUN_00131850(lVar11);\n      goto LAB_0013cc52;\n    }\n    FUN_00131850(lVar10);\n  }\n  uVar3 = 0;\nLAB_0013cc52:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" type_identifier (function_declarator "FUN_0013c5c7(long *param_1,undefined8 param_2,undefined4 param_3,undefined8 param_4,\n                 undefined4 param_5)" identifier (parameter_list "(long *param_1,undefined8 param_2,undefined4 param_3,undefined8 param_4,\n                 undefined4 param_5)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  int *piVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  long lVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  undefined8 uVar13;\n  long lVar14;\n  long in_FS_OFFSET;\n  undefined4 local_1c4;\n  undefined8 local_1c0;\n  byte local_1b5;\n  int local_1b4;\n  long local_1b0;\n  undefined1 local_1a8 [288];\n  undefined1 local_88 [72];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_1c4 = param_3;\n  local_1c0 = param_2;\n  if (param_1[2] == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  if (param_1[3] == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  if (param_1[1] == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  lVar7 = *(long *)(*param_1 + 0x70);\n  FUN_0013ad00(&local_1c0,&local_1c4,&local_1b0,&local_1b4);\n  if (local_1b0 == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  uVar3 = FUN_0010f984(local_1b4,local_1b0,*(undefined8 *)(*param_1 + 0x60));\n  if (uVar3 == 0) goto LAB_0013cc52;\n  FUN_0013ad00(&local_1c0,&local_1c4,&local_1b0,&local_1b4);\n  if (local_1b0 == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  piVar2 = (int *)param_1[1];\n  if (*piVar2 == 2) {\n    if ((((uint)piVar2[6] >> 3) * 2 == local_1b4) && (piVar2[6] == 0x100)) {\n      lVar7 = FUN_00139166(piVar2,0,0,0,0);\n      uVar3 = 0;\n      if (lVar7 != 0) {\n        iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7);\n        if (iVar4 == 0) {\n          FUN_0013b9a8(lVar7);\n          uVar3 = 0;\n        }\n        else {\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }\n      }\n    }\n    else {\n      uVar3 = 0;\n    }\n    goto LAB_0013cc52;\n  }\n  lVar10 = FUN_0013ad88(&local_1b0,&local_1b4);\n  if (lVar10 != 0) {\n    lVar11 = FUN_0013ad88(&local_1b0,&local_1b4);\n    if (lVar11 != 0) {\n      uVar1 = *(uint *)(*(undefined8 **)(lVar7 + 8) + 5);\n      if (0x40 < uVar1) {\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }\n      uVar8 = (*(code *)**(undefined8 **)(lVar7 + 8))();\n      (**(code **)(*(long *)(lVar7 + 8) + 0x10))(uVar8,param_4,param_5);\n      (**(code **)(*(long *)(lVar7 + 8) + 0x18))(uVar8,local_88);\n      uVar3 = 0;\n      if (*(int *)param_1[1] == 0) {\n        uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0);\n        if (uVar3 != 0) {\n          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }\nLAB_0013c99e:\n      FUN_00131850(lVar10);\n      FUN_00131850(lVar11);\n      goto LAB_0013cc52;\n    }\n    FUN_00131850(lVar10);\n  }\n  uVar3 = 0;\nLAB_0013cc52:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar13;" type_identifier identifier ;) (declaration "long lVar14;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined4 local_1c4;" type_identifier identifier ;) (declaration "undefined8 local_1c0;" type_identifier identifier ;) (declaration "byte local_1b5;" type_identifier identifier ;) (declaration "int local_1b4;" primitive_type identifier ;) (declaration "long local_1b0;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 local_1a8 [288];" type_identifier (array_declarator "local_1a8 [288]" identifier [ number_literal ]) ;) (declaration "undefined1 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_1c4 = param_3;" (assignment_expression "local_1c4 = param_3" identifier = identifier) ;) (expression_statement "local_1c0 = param_2;" (assignment_expression "local_1c0 = param_2" identifier = identifier) ;) (if_statement "if (param_1[2] == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" if (parenthesized_expression "(param_1[2] == 0)" ( (binary_expression "param_1[2] == 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" { (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0013cc52;" goto statement_identifier ;) })) (if_statement "if (param_1[3] == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" if (parenthesized_expression "(param_1[3] == 0)" ( (binary_expression "param_1[3] == 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" { (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0013cc52;" goto statement_identifier ;) })) (if_statement "if (param_1[1] == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" if (parenthesized_expression "(param_1[1] == 0)" ( (binary_expression "param_1[1] == 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" { (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0013cc52;" goto statement_identifier ;) })) (expression_statement "lVar7 = *(long *)(*param_1 + 0x70);" (assignment_expression "lVar7 = *(long *)(*param_1 + 0x70)" identifier = (pointer_expression "*(long *)(*param_1 + 0x70)" * (cast_expression "(long *)(*param_1 + 0x70)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x70)" ( (binary_expression "*param_1 + 0x70" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (expression_statement "FUN_0013ad00(&local_1c0,&local_1c4,&local_1b0,&local_1b4);" (call_expression "FUN_0013ad00(&local_1c0,&local_1c4,&local_1b0,&local_1b4)" identifier (argument_list "(&local_1c0,&local_1c4,&local_1b0,&local_1b4)" ( (pointer_expression "&local_1c0" & identifier) , (pointer_expression "&local_1c4" & identifier) , (pointer_expression "&local_1b0" & identifier) , (pointer_expression "&local_1b4" & identifier) ))) ;) (if_statement "if (local_1b0 == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" if (parenthesized_expression "(local_1b0 == 0)" ( (binary_expression "local_1b0 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" { (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0013cc52;" goto statement_identifier ;) })) (expression_statement "uVar3 = FUN_0010f984(local_1b4,local_1b0,*(undefined8 *)(*param_1 + 0x60));" (assignment_expression "uVar3 = FUN_0010f984(local_1b4,local_1b0,*(undefined8 *)(*param_1 + 0x60))" identifier = (call_expression "FUN_0010f984(local_1b4,local_1b0,*(undefined8 *)(*param_1 + 0x60))" identifier (argument_list "(local_1b4,local_1b0,*(undefined8 *)(*param_1 + 0x60))" ( identifier , identifier , (pointer_expression "*(undefined8 *)(*param_1 + 0x60)" * (cast_expression "(undefined8 *)(*param_1 + 0x60)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x60)" ( (binary_expression "*param_1 + 0x60" (pointer_expression "*param_1" * identifier) + number_literal) )))) )))) ;) (if_statement "if (uVar3 == 0) goto LAB_0013cc52;" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013cc52;" goto statement_identifier ;)) (expression_statement "FUN_0013ad00(&local_1c0,&local_1c4,&local_1b0,&local_1b4);" (call_expression "FUN_0013ad00(&local_1c0,&local_1c4,&local_1b0,&local_1b4)" identifier (argument_list "(&local_1c0,&local_1c4,&local_1b0,&local_1b4)" ( (pointer_expression "&local_1c0" & identifier) , (pointer_expression "&local_1c4" & identifier) , (pointer_expression "&local_1b0" & identifier) , (pointer_expression "&local_1b4" & identifier) ))) ;) (if_statement "if (local_1b0 == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" if (parenthesized_expression "(local_1b0 == 0)" ( (binary_expression "local_1b0 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" { (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0013cc52;" goto statement_identifier ;) })) (expression_statement "piVar2 = (int *)param_1[1];" (assignment_expression "piVar2 = (int *)param_1[1]" identifier = (cast_expression "(int *)param_1[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (if_statement "if (*piVar2 == 2) {\n    if ((((uint)piVar2[6] >> 3) * 2 == local_1b4) && (piVar2[6] == 0x100)) {\n      lVar7 = FUN_00139166(piVar2,0,0,0,0);\n      uVar3 = 0;\n      if (lVar7 != 0) {\n        iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7);\n        if (iVar4 == 0) {\n          FUN_0013b9a8(lVar7);\n          uVar3 = 0;\n        }\n        else {\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }\n      }\n    }\n    else {\n      uVar3 = 0;\n    }\n    goto LAB_0013cc52;\n  }" if (parenthesized_expression "(*piVar2 == 2)" ( (binary_expression "*piVar2 == 2" (pointer_expression "*piVar2" * identifier) == number_literal) )) (compound_statement "{\n    if ((((uint)piVar2[6] >> 3) * 2 == local_1b4) && (piVar2[6] == 0x100)) {\n      lVar7 = FUN_00139166(piVar2,0,0,0,0);\n      uVar3 = 0;\n      if (lVar7 != 0) {\n        iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7);\n        if (iVar4 == 0) {\n          FUN_0013b9a8(lVar7);\n          uVar3 = 0;\n        }\n        else {\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }\n      }\n    }\n    else {\n      uVar3 = 0;\n    }\n    goto LAB_0013cc52;\n  }" { (if_statement "if ((((uint)piVar2[6] >> 3) * 2 == local_1b4) && (piVar2[6] == 0x100)) {\n      lVar7 = FUN_00139166(piVar2,0,0,0,0);\n      uVar3 = 0;\n      if (lVar7 != 0) {\n        iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7);\n        if (iVar4 == 0) {\n          FUN_0013b9a8(lVar7);\n          uVar3 = 0;\n        }\n        else {\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }\n      }\n    }\n    else {\n      uVar3 = 0;\n    }" if (parenthesized_expression "((((uint)piVar2[6] >> 3) * 2 == local_1b4) && (piVar2[6] == 0x100))" ( (binary_expression "(((uint)piVar2[6] >> 3) * 2 == local_1b4) && (piVar2[6] == 0x100)" (parenthesized_expression "(((uint)piVar2[6] >> 3) * 2 == local_1b4)" ( (binary_expression "((uint)piVar2[6] >> 3) * 2 == local_1b4" (binary_expression "((uint)piVar2[6] >> 3) * 2" (parenthesized_expression "((uint)piVar2[6] >> 3)" ( (binary_expression "(uint)piVar2[6] >> 3" (cast_expression "(uint)piVar2[6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar2[6]" identifier [ number_literal ])) >> number_literal) )) * number_literal) == identifier) )) && (parenthesized_expression "(piVar2[6] == 0x100)" ( (binary_expression "piVar2[6] == 0x100" (subscript_expression "piVar2[6]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n      lVar7 = FUN_00139166(piVar2,0,0,0,0);\n      uVar3 = 0;\n      if (lVar7 != 0) {\n        iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7);\n        if (iVar4 == 0) {\n          FUN_0013b9a8(lVar7);\n          uVar3 = 0;\n        }\n        else {\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }\n      }\n    }" { (expression_statement "lVar7 = FUN_00139166(piVar2,0,0,0,0);" (assignment_expression "lVar7 = FUN_00139166(piVar2,0,0,0,0)" identifier = (call_expression "FUN_00139166(piVar2,0,0,0,0)" identifier (argument_list "(piVar2,0,0,0,0)" ( identifier , number_literal , number_literal , number_literal , number_literal )))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (if_statement "if (lVar7 != 0) {\n        iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7);\n        if (iVar4 == 0) {\n          FUN_0013b9a8(lVar7);\n          uVar3 = 0;\n        }\n        else {\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "(lVar7 != 0)" ( (binary_expression "lVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7);\n        if (iVar4 == 0) {\n          FUN_0013b9a8(lVar7);\n          uVar3 = 0;\n        }\n        else {\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }\n      }" { (expression_statement "iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7);" (assignment_expression "iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7)" identifier = (call_expression "FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7)" identifier (argument_list "(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7)" ( identifier , (binary_expression "*(uint *)(param_1[1] + 0x18) >> 3" (pointer_expression "*(uint *)(param_1[1] + 0x18)" * (cast_expression "(uint *)(param_1[1] + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + 0x18)" ( (binary_expression "param_1[1] + 0x18" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) )))) >> number_literal) , identifier )))) ;) (if_statement "if (iVar4 == 0) {\n          FUN_0013b9a8(lVar7);\n          uVar3 = 0;\n        }\n        else {\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n          FUN_0013b9a8(lVar7);\n          uVar3 = 0;\n        }" { (expression_statement "FUN_0013b9a8(lVar7);" (call_expression "FUN_0013b9a8(lVar7)" identifier (argument_list "(lVar7)" ( identifier ))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }" else (compound_statement "{\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }" { (expression_statement "uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);" (assignment_expression "uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0)" identifier = (call_expression "FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0)" identifier (argument_list "((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0)" ( (binary_expression "(ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0" (call_expression "(ulong)(*(uint *)(param_1[1] + 0x18) >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(*(uint *)(param_1[1] + 0x18) >> 3)" ( (binary_expression "*(uint *)(param_1[1] + 0x18) >> 3" (pointer_expression "*(uint *)(param_1[1] + 0x18)" * (cast_expression "(uint *)(param_1[1] + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + 0x18)" ( (binary_expression "param_1[1] + 0x18" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) )))) >> number_literal) ))) + identifier) )))) ;) (expression_statement "FUN_00145d73(local_1a8);" (call_expression "FUN_00145d73(local_1a8)" identifier (argument_list "(local_1a8)" ( identifier ))) ;) (expression_statement "FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);" (call_expression "FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3)" identifier (argument_list "(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3)" ( identifier , identifier , (binary_expression "*(uint *)(param_1[1] + 0x18) >> 3" (pointer_expression "*(uint *)(param_1[1] + 0x18)" * (cast_expression "(uint *)(param_1[1] + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + 0x18)" ( (binary_expression "param_1[1] + 0x18" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) )))) >> number_literal) ))) ;) (expression_statement "uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;" (assignment_expression "uVar3 = *(uint *)(param_1[1] + 0x18) >> 3" identifier = (binary_expression "*(uint *)(param_1[1] + 0x18) >> 3" (pointer_expression "*(uint *)(param_1[1] + 0x18)" * (cast_expression "(uint *)(param_1[1] + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + 0x18)" ( (binary_expression "param_1[1] + 0x18" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) )))) >> number_literal)) ;) (if_statement "if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }" if (parenthesized_expression "(uVar3 < 2)" ( (binary_expression "uVar3 < 2" identifier < number_literal) )) (compound_statement "{\n            iVar4 = 0;\n          }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }" else (compound_statement "{\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (do_statement "do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);" do (compound_statement "{\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            }" { (expression_statement "local_1b5 = FUN_00131ea6(param_1[3],iVar4);" (assignment_expression "local_1b5 = FUN_00131ea6(param_1[3],iVar4)" identifier = (call_expression "FUN_00131ea6(param_1[3],iVar4)" identifier (argument_list "(param_1[3],iVar4)" ( (subscript_expression "param_1[3]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "FUN_00145e5b(local_1a8,&local_1b5,1);" (call_expression "FUN_00145e5b(local_1a8,&local_1b5,1)" identifier (argument_list "(local_1a8,&local_1b5,1)" ( identifier , (pointer_expression "&local_1b5" & identifier) , number_literal ))) ;) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar3 - 1 != iVar4)" ( (binary_expression "uVar3 - 1 != iVar4" (binary_expression "uVar3 - 1" identifier - number_literal) != identifier) )) ;) }))) (expression_statement "local_1b5 = FUN_00131ea6(param_1[3],iVar4);" (assignment_expression "local_1b5 = FUN_00131ea6(param_1[3],iVar4)" identifier = (call_expression "FUN_00131ea6(param_1[3],iVar4)" identifier (argument_list "(param_1[3],iVar4)" ( (subscript_expression "param_1[3]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "local_1b5 = local_1b5 & 0x7f;" (assignment_expression "local_1b5 = local_1b5 & 0x7f" identifier = (binary_expression "local_1b5 & 0x7f" identifier & number_literal)) ;) (expression_statement "iVar4 = FUN_00131eed(param_1[2],0);" (assignment_expression "iVar4 = FUN_00131eed(param_1[2],0)" identifier = (call_expression "FUN_00131eed(param_1[2],0)" identifier (argument_list "(param_1[2],0)" ( (subscript_expression "param_1[2]" identifier [ number_literal ]) , number_literal )))) ;) (expression_statement "local_1b5 = local_1b5 | (byte)(iVar4 << 7);" (assignment_expression "local_1b5 = local_1b5 | (byte)(iVar4 << 7)" identifier = (binary_expression "local_1b5 | (byte)(iVar4 << 7)" identifier | (call_expression "(byte)(iVar4 << 7)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(iVar4 << 7)" ( (binary_expression "iVar4 << 7" identifier << number_literal) ))))) ;) (expression_statement "FUN_00145e5b(local_1a8,&local_1b5,1);" (call_expression "FUN_00145e5b(local_1a8,&local_1b5,1)" identifier (argument_list "(local_1a8,&local_1b5,1)" ( identifier , (pointer_expression "&local_1b5" & identifier) , number_literal ))) ;) (expression_statement "FUN_00145e5b(local_1a8,param_4,param_5);" (call_expression "FUN_00145e5b(local_1a8,param_4,param_5)" identifier (argument_list "(local_1a8,param_4,param_5)" ( identifier , identifier , identifier ))) ;) (expression_statement "FUN_0014737f(local_1a8,local_88);" (call_expression "FUN_0014737f(local_1a8,local_88)" identifier (argument_list "(local_1a8,local_88)" ( identifier , identifier ))) ;) (expression_statement "uVar9 = FUN_00131ce3(local_88,0x40);" (assignment_expression "uVar9 = FUN_00131ce3(local_88,0x40)" identifier = (call_expression "FUN_00131ce3(local_88,0x40)" identifier (argument_list "(local_88,0x40)" ( identifier , number_literal )))) ;) (expression_statement "lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);" (assignment_expression "lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8)" identifier = (call_expression "FUN_0013bab7(param_1[1] + 0x38,uVar8)" identifier (argument_list "(param_1[1] + 0x38,uVar8)" ( (binary_expression "param_1[1] + 0x38" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) , identifier )))) ;) (expression_statement "FUN_00131850(uVar8);" (call_expression "FUN_00131850(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))) ;) (if_statement "if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (compound_statement "{\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }" { (expression_statement "FUN_0013b9a8(lVar7);" (call_expression "FUN_0013b9a8(lVar7)" identifier (argument_list "(lVar7)" ( identifier ))) ;) (expression_statement "FUN_00131850(uVar9);" (call_expression "FUN_00131850(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }" else (compound_statement "{\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }" { (expression_statement "lVar11 = FUN_0013bab7(param_1 + 1,uVar9);" (assignment_expression "lVar11 = FUN_0013bab7(param_1 + 1,uVar9)" identifier = (call_expression "FUN_0013bab7(param_1 + 1,uVar9)" identifier (argument_list "(param_1 + 1,uVar9)" ( (binary_expression "param_1 + 1" identifier + number_literal) , identifier )))) ;) (expression_statement "FUN_00131850(uVar9);" (call_expression "FUN_00131850(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) (if_statement "if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (compound_statement "{\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }" { (expression_statement "FUN_0013b9a8(lVar10);" (call_expression "FUN_0013b9a8(lVar10)" identifier (argument_list "(lVar10)" ( identifier ))) ;) (expression_statement "FUN_0013b9a8(lVar7);" (call_expression "FUN_0013b9a8(lVar7)" identifier (argument_list "(lVar7)" ( identifier ))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }" else (compound_statement "{\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }" { (expression_statement "lVar12 = FUN_00139c83(lVar7,lVar11,0);" (assignment_expression "lVar12 = FUN_00139c83(lVar7,lVar11,0)" identifier = (call_expression "FUN_00139c83(lVar7,lVar11,0)" identifier (argument_list "(lVar7,lVar11,0)" ( identifier , identifier , number_literal )))) ;) (expression_statement "FUN_0013b9a8(lVar7);" (call_expression "FUN_0013b9a8(lVar7)" identifier (argument_list "(lVar7)" ( identifier ))) ;) (expression_statement "FUN_0013b9a8(lVar11);" (call_expression "FUN_0013b9a8(lVar11)" identifier (argument_list "(lVar11)" ( identifier ))) ;) (if_statement "if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (compound_statement "{\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }" { (expression_statement "FUN_0013b9a8(lVar10);" (call_expression "FUN_0013b9a8(lVar10)" identifier (argument_list "(lVar10)" ( identifier ))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }" else (compound_statement "{\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }" { (expression_statement "iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));" (assignment_expression "iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8))" identifier = (call_expression "FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8))" identifier (argument_list "(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8))" ( (pointer_expression "*(undefined8 *)(lVar10 + 8)" * (cast_expression "(undefined8 *)(lVar10 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 8)" ( (binary_expression "lVar10 + 8" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(lVar12 + 8)" * (cast_expression "(undefined8 *)(lVar12 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 8)" ( (binary_expression "lVar12 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (if_statement "if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }" { (expression_statement "iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );" (assignment_expression "iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      )" identifier = (call_expression "FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      )" identifier (argument_list "(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      )" ( (pointer_expression "*(undefined8 *)(lVar10 + 0x10)" * (cast_expression "(undefined8 *)(lVar10 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x10)" ( (binary_expression "lVar10 + 0x10" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(lVar12 + 0x10)" * (cast_expression "(undefined8 *)(lVar12 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x10)" ( (binary_expression "lVar12 + 0x10" identifier + number_literal) )))) )))) ;) (expression_statement "uVar3 = (uint)(iVar4 == 0);" (assignment_expression "uVar3 = (uint)(iVar4 == 0)" identifier = (call_expression "(uint)(iVar4 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )))) ;) })) (expression_statement "FUN_0013b9a8(lVar10);" (call_expression "FUN_0013b9a8(lVar10)" identifier (argument_list "(lVar10)" ( identifier ))) ;) (expression_statement "FUN_0013b9a8(lVar12);" (call_expression "FUN_0013b9a8(lVar12)" identifier (argument_list "(lVar12)" ( identifier ))) ;) }))) }))) }))) }))) })) }) (else_clause "else {\n      uVar3 = 0;\n    }" else (compound_statement "{\n      uVar3 = 0;\n    }" { (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) }))) (goto_statement "goto LAB_0013cc52;" goto statement_identifier ;) })) (expression_statement "lVar10 = FUN_0013ad88(&local_1b0,&local_1b4);" (assignment_expression "lVar10 = FUN_0013ad88(&local_1b0,&local_1b4)" identifier = (call_expression "FUN_0013ad88(&local_1b0,&local_1b4)" identifier (argument_list "(&local_1b0,&local_1b4)" ( (pointer_expression "&local_1b0" & identifier) , (pointer_expression "&local_1b4" & identifier) )))) ;) (if_statement "if (lVar10 != 0) {\n    lVar11 = FUN_0013ad88(&local_1b0,&local_1b4);\n    if (lVar11 != 0) {\n      uVar1 = *(uint *)(*(undefined8 **)(lVar7 + 8) + 5);\n      if (0x40 < uVar1) {\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }\n      uVar8 = (*(code *)**(undefined8 **)(lVar7 + 8))();\n      (**(code **)(*(long *)(lVar7 + 8) + 0x10))(uVar8,param_4,param_5);\n      (**(code **)(*(long *)(lVar7 + 8) + 0x18))(uVar8,local_88);\n      uVar3 = 0;\n      if (*(int *)param_1[1] == 0) {\n        uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0);\n        if (uVar3 != 0) {\n          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }\nLAB_0013c99e:\n      FUN_00131850(lVar10);\n      FUN_00131850(lVar11);\n      goto LAB_0013cc52;\n    }\n    FUN_00131850(lVar10);\n  }" if (parenthesized_expression "(lVar10 != 0)" ( (binary_expression "lVar10 != 0" identifier != number_literal) )) (compound_statement "{\n    lVar11 = FUN_0013ad88(&local_1b0,&local_1b4);\n    if (lVar11 != 0) {\n      uVar1 = *(uint *)(*(undefined8 **)(lVar7 + 8) + 5);\n      if (0x40 < uVar1) {\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }\n      uVar8 = (*(code *)**(undefined8 **)(lVar7 + 8))();\n      (**(code **)(*(long *)(lVar7 + 8) + 0x10))(uVar8,param_4,param_5);\n      (**(code **)(*(long *)(lVar7 + 8) + 0x18))(uVar8,local_88);\n      uVar3 = 0;\n      if (*(int *)param_1[1] == 0) {\n        uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0);\n        if (uVar3 != 0) {\n          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }\nLAB_0013c99e:\n      FUN_00131850(lVar10);\n      FUN_00131850(lVar11);\n      goto LAB_0013cc52;\n    }\n    FUN_00131850(lVar10);\n  }" { (expression_statement "lVar11 = FUN_0013ad88(&local_1b0,&local_1b4);" (assignment_expression "lVar11 = FUN_0013ad88(&local_1b0,&local_1b4)" identifier = (call_expression "FUN_0013ad88(&local_1b0,&local_1b4)" identifier (argument_list "(&local_1b0,&local_1b4)" ( (pointer_expression "&local_1b0" & identifier) , (pointer_expression "&local_1b4" & identifier) )))) ;) (if_statement "if (lVar11 != 0) {\n      uVar1 = *(uint *)(*(undefined8 **)(lVar7 + 8) + 5);\n      if (0x40 < uVar1) {\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }\n      uVar8 = (*(code *)**(undefined8 **)(lVar7 + 8))();\n      (**(code **)(*(long *)(lVar7 + 8) + 0x10))(uVar8,param_4,param_5);\n      (**(code **)(*(long *)(lVar7 + 8) + 0x18))(uVar8,local_88);\n      uVar3 = 0;\n      if (*(int *)param_1[1] == 0) {\n        uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0);\n        if (uVar3 != 0) {\n          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }\nLAB_0013c99e:\n      FUN_00131850(lVar10);\n      FUN_00131850(lVar11);\n      goto LAB_0013cc52;\n    }" if (parenthesized_expression "(lVar11 != 0)" ( (binary_expression "lVar11 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar1 = *(uint *)(*(undefined8 **)(lVar7 + 8) + 5);\n      if (0x40 < uVar1) {\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }\n      uVar8 = (*(code *)**(undefined8 **)(lVar7 + 8))();\n      (**(code **)(*(long *)(lVar7 + 8) + 0x10))(uVar8,param_4,param_5);\n      (**(code **)(*(long *)(lVar7 + 8) + 0x18))(uVar8,local_88);\n      uVar3 = 0;\n      if (*(int *)param_1[1] == 0) {\n        uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0);\n        if (uVar3 != 0) {\n          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }\nLAB_0013c99e:\n      FUN_00131850(lVar10);\n      FUN_00131850(lVar11);\n      goto LAB_0013cc52;\n    }" { (expression_statement "uVar1 = *(uint *)(*(undefined8 **)(lVar7 + 8) + 5);" (assignment_expression "uVar1 = *(uint *)(*(undefined8 **)(lVar7 + 8) + 5)" identifier = (pointer_expression "*(uint *)(*(undefined8 **)(lVar7 + 8) + 5)" * (cast_expression "(uint *)(*(undefined8 **)(lVar7 + 8) + 5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(undefined8 **)(lVar7 + 8) + 5)" ( (binary_expression "*(undefined8 **)(lVar7 + 8) + 5" (pointer_expression "*(undefined8 **)(lVar7 + 8)" * (cast_expression "(undefined8 **)(lVar7 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar7 + 8)" ( (binary_expression "lVar7 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (0x40 < uVar1) {\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }" if (parenthesized_expression "(0x40 < uVar1)" ( (binary_expression "0x40 < uVar1" number_literal < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }" { comment (expression_statement "__assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");" (call_expression "__assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig")" identifier (argument_list "("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig")" ( (string_literal ""digestLen <= sizeof(digest)"" " string_content ") , (string_literal ""sshecc.c"" " string_content ") , number_literal , (string_literal ""ecdsa_verifysig"" " string_content ") ))) ;) })) (expression_statement "uVar8 = (*(code *)**(undefined8 **)(lVar7 + 8))();" (assignment_expression "uVar8 = (*(code *)**(undefined8 **)(lVar7 + 8))()" identifier = (call_expression "(*(code *)**(undefined8 **)(lVar7 + 8))()" (parenthesized_expression "(*(code *)**(undefined8 **)(lVar7 + 8))" ( (pointer_expression "*(code *)**(undefined8 **)(lVar7 + 8)" * (cast_expression "(code *)**(undefined8 **)(lVar7 + 8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined8 **)(lVar7 + 8)" * (pointer_expression "*(undefined8 **)(lVar7 + 8)" * (cast_expression "(undefined8 **)(lVar7 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar7 + 8)" ( (binary_expression "lVar7 + 8" identifier + number_literal) ))))))) )) (argument_list "()" ( )))) ;) (expression_statement "(**(code **)(*(long *)(lVar7 + 8) + 0x10))(uVar8,param_4,param_5);" (call_expression "(**(code **)(*(long *)(lVar7 + 8) + 0x10))(uVar8,param_4,param_5)" (parenthesized_expression "(**(code **)(*(long *)(lVar7 + 8) + 0x10))" ( (pointer_expression "**(code **)(*(long *)(lVar7 + 8) + 0x10)" * (pointer_expression "*(code **)(*(long *)(lVar7 + 8) + 0x10)" * (cast_expression "(code **)(*(long *)(lVar7 + 8) + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(lVar7 + 8) + 0x10)" ( (binary_expression "*(long *)(lVar7 + 8) + 0x10" (pointer_expression "*(long *)(lVar7 + 8)" * (cast_expression "(long *)(lVar7 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 8)" ( (binary_expression "lVar7 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar8,param_4,param_5)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(*(long *)(lVar7 + 8) + 0x18))(uVar8,local_88);" (call_expression "(**(code **)(*(long *)(lVar7 + 8) + 0x18))(uVar8,local_88)" (parenthesized_expression "(**(code **)(*(long *)(lVar7 + 8) + 0x18))" ( (pointer_expression "**(code **)(*(long *)(lVar7 + 8) + 0x18)" * (pointer_expression "*(code **)(*(long *)(lVar7 + 8) + 0x18)" * (cast_expression "(code **)(*(long *)(lVar7 + 8) + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(lVar7 + 8) + 0x18)" ( (binary_expression "*(long *)(lVar7 + 8) + 0x18" (pointer_expression "*(long *)(lVar7 + 8)" * (cast_expression "(long *)(lVar7 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 8)" ( (binary_expression "lVar7 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar8,local_88)" ( identifier , identifier ))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (if_statement "if (*(int *)param_1[1] == 0) {\n        uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0);\n        if (uVar3 != 0) {\n          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "(*(int *)param_1[1] == 0)" ( (binary_expression "*(int *)param_1[1] == 0" (pointer_expression "*(int *)param_1[1]" * (cast_expression "(int *)param_1[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) == number_literal) )) (compound_statement "{\n        uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0);\n        if (uVar3 != 0) {\n          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }" { (expression_statement "uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0);" (assignment_expression "uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0)" identifier = (call_expression "FUN_00132034(lVar10,PTR_DAT_001822f0)" identifier (argument_list "(lVar10,PTR_DAT_001822f0)" ( identifier , identifier )))) ;) (if_statement "if (uVar3 != 0) {\n          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }" { (expression_statement "iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));" (assignment_expression "iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38))" identifier = (call_expression "FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38))" identifier (argument_list "(lVar10,*(undefined8 *)(param_1[1] + 0x38))" ( identifier , (pointer_expression "*(undefined8 *)(param_1[1] + 0x38)" * (cast_expression "(undefined8 *)(param_1[1] + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + 0x38)" ( (binary_expression "param_1[1] + 0x38" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) )))) )))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (if_statement "if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }" { (expression_statement "uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);" (assignment_expression "uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0)" identifier = (call_expression "FUN_00132034(lVar11,PTR_DAT_001822f0)" identifier (argument_list "(lVar11,PTR_DAT_001822f0)" ( identifier , identifier )))) ;) (if_statement "if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }" { (expression_statement "iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));" (assignment_expression "iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38))" identifier = (call_expression "FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38))" identifier (argument_list "(lVar11,*(undefined8 *)(param_1[1] + 0x38))" ( identifier , (pointer_expression "*(undefined8 *)(param_1[1] + 0x38)" * (cast_expression "(undefined8 *)(param_1[1] + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + 0x38)" ( (binary_expression "param_1[1] + 0x38" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) )))) )))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (if_statement "if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }" { (expression_statement "uVar9 = FUN_00131c11(local_88,uVar1);" (assignment_expression "uVar9 = FUN_00131c11(local_88,uVar1)" identifier = (call_expression "FUN_00131c11(local_88,uVar1)" identifier (argument_list "(local_88,uVar1)" ( identifier , identifier )))) ;) (expression_statement "iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));" (assignment_expression "iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38))" identifier = (call_expression "FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38))" identifier (argument_list "(*(undefined8 *)(param_1[1] + 0x38))" ( (pointer_expression "*(undefined8 *)(param_1[1] + 0x38)" * (cast_expression "(undefined8 *)(param_1[1] + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + 0x38)" ( (binary_expression "param_1[1] + 0x38" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) )))) )))) ;) (expression_statement "iVar5 = FUN_00131e13(uVar9);" (assignment_expression "iVar5 = FUN_00131e13(uVar9)" identifier = (call_expression "FUN_00131e13(uVar9)" identifier (argument_list "(uVar9)" ( identifier )))) ;) (expression_statement "uVar8 = uVar9;" (assignment_expression "uVar8 = uVar9" identifier = identifier) ;) (if_statement "if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }" if (parenthesized_expression "(iVar4 < iVar5)" ( (binary_expression "iVar4 < iVar5" identifier < identifier) )) (compound_statement "{\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }" { (expression_statement "uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);" (assignment_expression "uVar8 = FUN_00132271(uVar9,iVar5 - iVar4)" identifier = (call_expression "FUN_00132271(uVar9,iVar5 - iVar4)" identifier (argument_list "(uVar9,iVar5 - iVar4)" ( identifier , (binary_expression "iVar5 - iVar4" identifier - identifier) )))) ;) (expression_statement "FUN_00131850(uVar9);" (call_expression "FUN_00131850(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) })) (expression_statement "uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));" (assignment_expression "uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38))" identifier = (call_expression "FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38))" identifier (argument_list "(uVar8,*(undefined8 *)(param_1[1] + 0x38))" ( identifier , (pointer_expression "*(undefined8 *)(param_1[1] + 0x38)" * (cast_expression "(undefined8 *)(param_1[1] + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + 0x38)" ( (binary_expression "param_1[1] + 0x38" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) )))) )))) ;) (expression_statement "FUN_00131850(uVar8);" (call_expression "FUN_00131850(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))) ;) (expression_statement "lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));" (assignment_expression "lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38))" identifier = (call_expression "FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38))" identifier (argument_list "(lVar11,*(undefined8 *)(param_1[1] + 0x38))" ( identifier , (pointer_expression "*(undefined8 *)(param_1[1] + 0x38)" * (cast_expression "(undefined8 *)(param_1[1] + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + 0x38)" ( (binary_expression "param_1[1] + 0x38" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) )))) )))) ;) (if_statement "if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }" { (expression_statement "FUN_00131850(uVar9);" (call_expression "FUN_00131850(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }" else (compound_statement "{\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }" { (expression_statement "uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));" (assignment_expression "uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38))" identifier = (call_expression "FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38))" identifier (argument_list "(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38))" ( identifier , identifier , (pointer_expression "*(undefined8 *)(param_1[1] + 0x38)" * (cast_expression "(undefined8 *)(param_1[1] + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + 0x38)" ( (binary_expression "param_1[1] + 0x38" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) )))) )))) ;) (expression_statement "uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));" (assignment_expression "uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38))" identifier = (call_expression "FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38))" identifier (argument_list "(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38))" ( identifier , identifier , (pointer_expression "*(undefined8 *)(param_1[1] + 0x38)" * (cast_expression "(undefined8 *)(param_1[1] + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + 0x38)" ( (binary_expression "param_1[1] + 0x38" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) )))) )))) ;) (expression_statement "FUN_00131850(lVar7);" (call_expression "FUN_00131850(lVar7)" identifier (argument_list "(lVar7)" ( identifier ))) ;) (if_statement "if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }" if (parenthesized_expression "(*(int *)param_1[1] == 0)" ( (binary_expression "*(int *)param_1[1] == 0" (pointer_expression "*(int *)param_1[1]" * (cast_expression "(int *)param_1[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) == number_literal) )) (compound_statement "{\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }" { (expression_statement "uVar6 = FUN_0013911b();" (assignment_expression "uVar6 = FUN_0013911b()" identifier = (call_expression "FUN_0013911b()" identifier (argument_list "()" ( )))) ;) (expression_statement "lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);" (assignment_expression "lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6)" identifier = (call_expression "FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6)" identifier (argument_list "(param_1[1] + 0x40,uVar8,uVar6)" ( (binary_expression "param_1[1] + 0x40" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) , identifier , identifier )))) ;) (if_statement "if (lVar7 == 0) goto LAB_0013cc19;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013cc19;" goto statement_identifier ;)) (expression_statement "lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);" (assignment_expression "lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6)" identifier = (call_expression "FUN_0013b9f1(param_1 + 1,uVar13,uVar6)" identifier (argument_list "(param_1 + 1,uVar13,uVar6)" ( (binary_expression "param_1 + 1" identifier + number_literal) , identifier , identifier )))) ;) (if_statement "if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (compound_statement "{\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }" { (expression_statement "FUN_0013b9a8(lVar7);" (call_expression "FUN_0013b9a8(lVar7)" identifier (argument_list "(lVar7)" ( identifier ))) ;) (goto_statement "goto LAB_0013cc19;" goto statement_identifier ;) })) (expression_statement "lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);" (assignment_expression "lVar14 = FUN_00139c83(lVar7,lVar12,uVar6)" identifier = (call_expression "FUN_00139c83(lVar7,lVar12,uVar6)" identifier (argument_list "(lVar7,lVar12,uVar6)" ( identifier , identifier , identifier )))) ;) (expression_statement "FUN_0013b9a8(lVar7);" (call_expression "FUN_0013b9a8(lVar7)" identifier (argument_list "(lVar7)" ( identifier ))) ;) (expression_statement "FUN_0013b9a8(lVar12);" (call_expression "FUN_0013b9a8(lVar12)" identifier (argument_list "(lVar12)" ( identifier ))) ;) (expression_statement "iVar4 = FUN_00139232(lVar14);" (assignment_expression "iVar4 = FUN_00139232(lVar14)" identifier = (call_expression "FUN_00139232(lVar14)" identifier (argument_list "(lVar14)" ( identifier )))) ;) (if_statement "if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }" { (expression_statement "FUN_0013b9a8(lVar14);" (call_expression "FUN_0013b9a8(lVar14)" identifier (argument_list "(lVar14)" ( identifier ))) ;) (goto_statement "goto LAB_0013cc19;" goto statement_identifier ;) })) (expression_statement "FUN_00131850(uVar8);" (call_expression "FUN_00131850(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))) ;) (expression_statement "FUN_00131850(uVar13);" (call_expression "FUN_00131850(uVar13)" identifier (argument_list "(uVar13)" ( identifier ))) ;) (if_statement "if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }" if (parenthesized_expression "(lVar14 != 0)" ( (binary_expression "lVar14 != 0" identifier != number_literal) )) (compound_statement "{\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }" { (expression_statement "uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));" (assignment_expression "uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38))" identifier = (call_expression "FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38))" identifier (argument_list "(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38))" ( (pointer_expression "*(undefined8 *)(lVar14 + 8)" * (cast_expression "(undefined8 *)(lVar14 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 8)" ( (binary_expression "lVar14 + 8" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(param_1[1] + 0x38)" * (cast_expression "(undefined8 *)(param_1[1] + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + 0x38)" ( (binary_expression "param_1[1] + 0x38" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) )))) )))) ;) (expression_statement "FUN_0013b9a8(lVar14);" (call_expression "FUN_0013b9a8(lVar14)" identifier (argument_list "(lVar14)" ( identifier ))) ;) (expression_statement "iVar4 = FUN_00132034(lVar10,uVar8);" (assignment_expression "iVar4 = FUN_00132034(lVar10,uVar8)" identifier = (call_expression "FUN_00132034(lVar10,uVar8)" identifier (argument_list "(lVar10,uVar8)" ( identifier , identifier )))) ;) (expression_statement "uVar3 = (uint)(iVar4 == 0);" (assignment_expression "uVar3 = (uint)(iVar4 == 0)" identifier = (call_expression "(uint)(iVar4 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )))) ;) (expression_statement "FUN_00131850(uVar8);" (call_expression "FUN_00131850(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))) ;) (expression_statement "FUN_00131850(uVar9);" (call_expression "FUN_00131850(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) (goto_statement "goto LAB_0013c99e;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }" else (compound_statement "{\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }" { (labeled_statement "LAB_0013cc19:\n                    FUN_00131850(uVar8);" statement_identifier : (expression_statement "FUN_00131850(uVar8);" (call_expression "FUN_00131850(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))) ;)) (expression_statement "FUN_00131850(uVar13);" (call_expression "FUN_00131850(uVar13)" identifier (argument_list "(uVar13)" ( identifier ))) ;) }))) (expression_statement "FUN_00131850(uVar9);" (call_expression "FUN_00131850(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) }))) })) })) })) })) })) (labeled_statement "LAB_0013c99e:\n      FUN_00131850(lVar10);" statement_identifier : (expression_statement "FUN_00131850(lVar10);" (call_expression "FUN_00131850(lVar10)" identifier (argument_list "(lVar10)" ( identifier ))) ;)) (expression_statement "FUN_00131850(lVar11);" (call_expression "FUN_00131850(lVar11)" identifier (argument_list "(lVar11)" ( identifier ))) ;) (goto_statement "goto LAB_0013cc52;" goto statement_identifier ;) })) (expression_statement "FUN_00131850(lVar10);" (call_expression "FUN_00131850(lVar10)" identifier (argument_list "(lVar10)" ( identifier ))) ;) })) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0013cc52:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar3;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar3;\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 uVar3;\n  }" { (return_statement "return uVar3;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nint ecdsa_verifysig(void *key,char *sig,int siglen,char *data,int datalen)\n\n{\n  uint nbytes;\n  long lVar1;\n  long lVar2;\n  ec_curve *curve;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  ec_point *peVar6;\n  Bignum_conflict pBVar7;\n  Bignum_conflict pBVar8;\n  ec_point *peVar9;\n  ec_point *peVar10;\n  ec_point *point;\n  undefined8 uVar11;\n  Bignum_conflict pBVar12;\n  Bignum_conflict pBVar13;\n  Bignum_conflict b_00;\n  Bignum_conflict b_01;\n  long in_FS_OFFSET;\n  int local_1c4;\n  char *local_1c0;\n  uchar b;\n  int slen;\n  char *p;\n  SHA512_State hs;\n  uchar digest [64];\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  local_1c4 = siglen;\n  local_1c0 = sig;\n  if (*(long *)((long)key + 0x10) == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  if (*(long *)((long)key + 0x18) == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  if (*(long *)((long)key + 8) == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n                    /* WARNING: Load size is inaccurate */\n  lVar2 = *(long *)(*key + 0x70);\n  getstring(&local_1c0,&local_1c4,&p,&slen);\n  if (p == (char *)0x0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n                    /* WARNING: Load size is inaccurate */\n  uVar3 = match_ssh_id(slen,p,*(char **)(*key + 0x60));\n  if (uVar3 == 0) goto LAB_0013cc52;\n  getstring(&local_1c0,&local_1c4,&p,&slen);\n  if (p == (char *)0x0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  curve = *(ec_curve **)((long)key + 8);\n  if (curve->type == ADDRTYPE_IPV6) {\n    if (((curve->fieldBits >> 3) * 2 == slen) && (curve->fieldBits == 0x100)) {\n      peVar6 = ec_point_new(curve,(Bignum)0x0,(Bignum)0x0,(Bignum)0x0,'\0');\n      uVar3 = 0;\n      if (peVar6 != (ec_point *)0x0) {\n        iVar4 = decodepoint(p,*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3,peVar6);\n        if (iVar4 == 0) {\n          ec_point_free(peVar6);\n          uVar3 = 0;\n        }\n        else {\n          uVar3 = *(uint *)(*(long *)((long)key + 8) + 0x18) >> 3;\n          pBVar7 = bignum_from_bytes_le((uchar *)(p + uVar3),uVar3);\n          SHA512_Init((SHA512_CTX *)&hs);\n          SHA512_Bytes(&hs,p,*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3);\n          uVar3 = *(uint *)(*(long *)((long)key + 8) + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              iVar5 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4);\n              b = (uchar)iVar5;\n              SHA512_Bytes(&hs,&b,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          iVar4 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4);\n          b = (byte)iVar4 & 0x7f;\n          iVar4 = bignum_bit(*(Bignum_conflict *)((long)key + 0x10),0);\n          b = b | (byte)(iVar4 << 7);\n          SHA512_Bytes(&hs,&b,1);\n          SHA512_Bytes(&hs,data,datalen);\n          SHA512_Final(&hs,digest);\n          pBVar8 = bignum_from_bytes_le(digest,0x40);\n          peVar9 = ecp_mul((ec_point *)(*(long *)((long)key + 8) + 0x38),pBVar7);\n          freebn(pBVar7);\n          if (peVar9 == (ec_point *)0x0) {\n            ec_point_free(peVar6);\n            freebn(pBVar8);\n            uVar3 = 0;\n          }\n          else {\n            peVar10 = ecp_mul((ec_point *)((long)key + 8),pBVar8);\n            freebn(pBVar8);\n            if (peVar10 == (ec_point *)0x0) {\n              ec_point_free(peVar9);\n              ec_point_free(peVar6);\n              uVar3 = 0;\n            }\n            else {\n              point = ecp_add(peVar6,peVar10,0);\n              ec_point_free(peVar6);\n              ec_point_free(peVar10);\n              if (point == (ec_point *)0x0) {\n                ec_point_free(peVar9);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = bignum_cmp((Bignum_conflict)peVar9->x,(Bignum_conflict)point->x);\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = bignum_cmp((Bignum_conflict)peVar9->y,(Bignum_conflict)point->y);\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                ec_point_free(peVar9);\n                ec_point_free(point);\n              }\n            }\n          }\n        }\n      }\n    }\n    else {\n      uVar3 = 0;\n    }\n    goto LAB_0013cc52;\n  }\n  pBVar7 = (Bignum_conflict)getmp(&p,&slen);\n  if (pBVar7 != (Bignum_conflict)0x0) {\n    pBVar8 = (Bignum_conflict)getmp(&p,&slen);\n    if (pBVar8 != (Bignum_conflict)0x0) {\n      nbytes = *(uint *)(*(undefined8 **)(lVar2 + 8) + 5);\n      if (0x40 < nbytes) {\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }\n      uVar11 = (*(code *)**(undefined8 **)(lVar2 + 8))();\n      (**(code **)(*(long *)(lVar2 + 8) + 0x10))(uVar11,data,datalen);\n      (**(code **)(*(long *)(lVar2 + 8) + 0x18))(uVar11,digest);\n      uVar3 = 0;\n      if (**(int **)((long)key + 8) == 0) {\n        uVar3 = bignum_cmp(pBVar7,Zero);\n        if (uVar3 != 0) {\n          iVar4 = bignum_cmp(pBVar7,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = bignum_cmp(pBVar8,Zero);\n            if (uVar3 != 0) {\n              iVar4 = bignum_cmp(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                pBVar12 = bignum_from_bytes(digest,nbytes);\n                iVar4 = bignum_bitcount(*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                iVar5 = bignum_bitcount(pBVar12);\n                pBVar13 = pBVar12;\n                if (iVar4 < iVar5) {\n                  pBVar13 = bignum_rshift(pBVar12,iVar5 - iVar4);\n                  freebn(pBVar12);\n                }\n                pBVar12 = bigmod(pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                freebn(pBVar13);\n                pBVar13 = modinv(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                if (pBVar13 == (Bignum_conflict)0x0) {\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n                else {\n                  b_00 = modmul(pBVar12,pBVar13,\n                                *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                  b_01 = modmul(pBVar7,pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)\n                               );\n                  freebn(pBVar13);\n                  if ((*(ec_curve **)((long)key + 8))->type == ADDRTYPE_UNSPEC) {\n                    iVar4 = ec_aminus3(*(ec_curve **)((long)key + 8));\n                    peVar6 = ecp_mul_((ec_point *)(*(long *)((long)key + 8) + 0x40),b_00,iVar4);\n                    if (peVar6 == (ec_point *)0x0) goto LAB_0013cc19;\n                    peVar9 = ecp_mul_((ec_point *)((long)key + 8),b_01,iVar4);\n                    if (peVar9 == (ec_point *)0x0) {\n                      ec_point_free(peVar6);\n                      goto LAB_0013cc19;\n                    }\n                    peVar10 = ecp_add(peVar6,peVar9,iVar4);\n                    ec_point_free(peVar6);\n                    ec_point_free(peVar9);\n                    iVar4 = ecp_normalise(peVar10);\n                    if (iVar4 == 0) {\n                      ec_point_free(peVar10);\n                      goto LAB_0013cc19;\n                    }\n                    freebn(b_00);\n                    freebn(b_01);\n                    if (peVar10 != (ec_point *)0x0) {\n                      pBVar13 = bigmod((Bignum_conflict)peVar10->x,\n                                       *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                      ec_point_free(peVar10);\n                      iVar4 = bignum_cmp(pBVar7,pBVar13);\n                      uVar3 = (uint)(iVar4 == 0);\n                      freebn(pBVar13);\n                      freebn(pBVar12);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    freebn(b_00);\n                    freebn(b_01);\n                  }\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }\nLAB_0013c99e:\n      freebn(pBVar7);\n      freebn(pBVar8);\n      goto LAB_0013cc52;\n    }\n    freebn(pBVar7);\n  }\n  uVar3 = 0;\nLAB_0013cc52:\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" comment (function_definition "int ecdsa_verifysig(void *key,char *sig,int siglen,char *data,int datalen)\n\n{\n  uint nbytes;\n  long lVar1;\n  long lVar2;\n  ec_curve *curve;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  ec_point *peVar6;\n  Bignum_conflict pBVar7;\n  Bignum_conflict pBVar8;\n  ec_point *peVar9;\n  ec_point *peVar10;\n  ec_point *point;\n  undefined8 uVar11;\n  Bignum_conflict pBVar12;\n  Bignum_conflict pBVar13;\n  Bignum_conflict b_00;\n  Bignum_conflict b_01;\n  long in_FS_OFFSET;\n  int local_1c4;\n  char *local_1c0;\n  uchar b;\n  int slen;\n  char *p;\n  SHA512_State hs;\n  uchar digest [64];\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  local_1c4 = siglen;\n  local_1c0 = sig;\n  if (*(long *)((long)key + 0x10) == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  if (*(long *)((long)key + 0x18) == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  if (*(long *)((long)key + 8) == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n                    /* WARNING: Load size is inaccurate */\n  lVar2 = *(long *)(*key + 0x70);\n  getstring(&local_1c0,&local_1c4,&p,&slen);\n  if (p == (char *)0x0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n                    /* WARNING: Load size is inaccurate */\n  uVar3 = match_ssh_id(slen,p,*(char **)(*key + 0x60));\n  if (uVar3 == 0) goto LAB_0013cc52;\n  getstring(&local_1c0,&local_1c4,&p,&slen);\n  if (p == (char *)0x0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  curve = *(ec_curve **)((long)key + 8);\n  if (curve->type == ADDRTYPE_IPV6) {\n    if (((curve->fieldBits >> 3) * 2 == slen) && (curve->fieldBits == 0x100)) {\n      peVar6 = ec_point_new(curve,(Bignum)0x0,(Bignum)0x0,(Bignum)0x0,'\0');\n      uVar3 = 0;\n      if (peVar6 != (ec_point *)0x0) {\n        iVar4 = decodepoint(p,*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3,peVar6);\n        if (iVar4 == 0) {\n          ec_point_free(peVar6);\n          uVar3 = 0;\n        }\n        else {\n          uVar3 = *(uint *)(*(long *)((long)key + 8) + 0x18) >> 3;\n          pBVar7 = bignum_from_bytes_le((uchar *)(p + uVar3),uVar3);\n          SHA512_Init((SHA512_CTX *)&hs);\n          SHA512_Bytes(&hs,p,*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3);\n          uVar3 = *(uint *)(*(long *)((long)key + 8) + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              iVar5 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4);\n              b = (uchar)iVar5;\n              SHA512_Bytes(&hs,&b,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          iVar4 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4);\n          b = (byte)iVar4 & 0x7f;\n          iVar4 = bignum_bit(*(Bignum_conflict *)((long)key + 0x10),0);\n          b = b | (byte)(iVar4 << 7);\n          SHA512_Bytes(&hs,&b,1);\n          SHA512_Bytes(&hs,data,datalen);\n          SHA512_Final(&hs,digest);\n          pBVar8 = bignum_from_bytes_le(digest,0x40);\n          peVar9 = ecp_mul((ec_point *)(*(long *)((long)key + 8) + 0x38),pBVar7);\n          freebn(pBVar7);\n          if (peVar9 == (ec_point *)0x0) {\n            ec_point_free(peVar6);\n            freebn(pBVar8);\n            uVar3 = 0;\n          }\n          else {\n            peVar10 = ecp_mul((ec_point *)((long)key + 8),pBVar8);\n            freebn(pBVar8);\n            if (peVar10 == (ec_point *)0x0) {\n              ec_point_free(peVar9);\n              ec_point_free(peVar6);\n              uVar3 = 0;\n            }\n            else {\n              point = ecp_add(peVar6,peVar10,0);\n              ec_point_free(peVar6);\n              ec_point_free(peVar10);\n              if (point == (ec_point *)0x0) {\n                ec_point_free(peVar9);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = bignum_cmp((Bignum_conflict)peVar9->x,(Bignum_conflict)point->x);\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = bignum_cmp((Bignum_conflict)peVar9->y,(Bignum_conflict)point->y);\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                ec_point_free(peVar9);\n                ec_point_free(point);\n              }\n            }\n          }\n        }\n      }\n    }\n    else {\n      uVar3 = 0;\n    }\n    goto LAB_0013cc52;\n  }\n  pBVar7 = (Bignum_conflict)getmp(&p,&slen);\n  if (pBVar7 != (Bignum_conflict)0x0) {\n    pBVar8 = (Bignum_conflict)getmp(&p,&slen);\n    if (pBVar8 != (Bignum_conflict)0x0) {\n      nbytes = *(uint *)(*(undefined8 **)(lVar2 + 8) + 5);\n      if (0x40 < nbytes) {\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }\n      uVar11 = (*(code *)**(undefined8 **)(lVar2 + 8))();\n      (**(code **)(*(long *)(lVar2 + 8) + 0x10))(uVar11,data,datalen);\n      (**(code **)(*(long *)(lVar2 + 8) + 0x18))(uVar11,digest);\n      uVar3 = 0;\n      if (**(int **)((long)key + 8) == 0) {\n        uVar3 = bignum_cmp(pBVar7,Zero);\n        if (uVar3 != 0) {\n          iVar4 = bignum_cmp(pBVar7,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = bignum_cmp(pBVar8,Zero);\n            if (uVar3 != 0) {\n              iVar4 = bignum_cmp(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                pBVar12 = bignum_from_bytes(digest,nbytes);\n                iVar4 = bignum_bitcount(*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                iVar5 = bignum_bitcount(pBVar12);\n                pBVar13 = pBVar12;\n                if (iVar4 < iVar5) {\n                  pBVar13 = bignum_rshift(pBVar12,iVar5 - iVar4);\n                  freebn(pBVar12);\n                }\n                pBVar12 = bigmod(pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                freebn(pBVar13);\n                pBVar13 = modinv(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                if (pBVar13 == (Bignum_conflict)0x0) {\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n                else {\n                  b_00 = modmul(pBVar12,pBVar13,\n                                *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                  b_01 = modmul(pBVar7,pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)\n                               );\n                  freebn(pBVar13);\n                  if ((*(ec_curve **)((long)key + 8))->type == ADDRTYPE_UNSPEC) {\n                    iVar4 = ec_aminus3(*(ec_curve **)((long)key + 8));\n                    peVar6 = ecp_mul_((ec_point *)(*(long *)((long)key + 8) + 0x40),b_00,iVar4);\n                    if (peVar6 == (ec_point *)0x0) goto LAB_0013cc19;\n                    peVar9 = ecp_mul_((ec_point *)((long)key + 8),b_01,iVar4);\n                    if (peVar9 == (ec_point *)0x0) {\n                      ec_point_free(peVar6);\n                      goto LAB_0013cc19;\n                    }\n                    peVar10 = ecp_add(peVar6,peVar9,iVar4);\n                    ec_point_free(peVar6);\n                    ec_point_free(peVar9);\n                    iVar4 = ecp_normalise(peVar10);\n                    if (iVar4 == 0) {\n                      ec_point_free(peVar10);\n                      goto LAB_0013cc19;\n                    }\n                    freebn(b_00);\n                    freebn(b_01);\n                    if (peVar10 != (ec_point *)0x0) {\n                      pBVar13 = bigmod((Bignum_conflict)peVar10->x,\n                                       *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                      ec_point_free(peVar10);\n                      iVar4 = bignum_cmp(pBVar7,pBVar13);\n                      uVar3 = (uint)(iVar4 == 0);\n                      freebn(pBVar13);\n                      freebn(pBVar12);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    freebn(b_00);\n                    freebn(b_01);\n                  }\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }\nLAB_0013c99e:\n      freebn(pBVar7);\n      freebn(pBVar8);\n      goto LAB_0013cc52;\n    }\n    freebn(pBVar7);\n  }\n  uVar3 = 0;\nLAB_0013cc52:\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (function_declarator "ecdsa_verifysig(void *key,char *sig,int siglen,char *data,int datalen)" identifier (parameter_list "(void *key,char *sig,int siglen,char *data,int datalen)" ( (parameter_declaration "void *key" primitive_type (pointer_declarator "*key" * identifier)) , (parameter_declaration "char *sig" primitive_type (pointer_declarator "*sig" * identifier)) , (parameter_declaration "int siglen" primitive_type identifier) , (parameter_declaration "char *data" primitive_type (pointer_declarator "*data" * identifier)) , (parameter_declaration "int datalen" primitive_type identifier) ))) (compound_statement "{\n  uint nbytes;\n  long lVar1;\n  long lVar2;\n  ec_curve *curve;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  ec_point *peVar6;\n  Bignum_conflict pBVar7;\n  Bignum_conflict pBVar8;\n  ec_point *peVar9;\n  ec_point *peVar10;\n  ec_point *point;\n  undefined8 uVar11;\n  Bignum_conflict pBVar12;\n  Bignum_conflict pBVar13;\n  Bignum_conflict b_00;\n  Bignum_conflict b_01;\n  long in_FS_OFFSET;\n  int local_1c4;\n  char *local_1c0;\n  uchar b;\n  int slen;\n  char *p;\n  SHA512_State hs;\n  uchar digest [64];\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  local_1c4 = siglen;\n  local_1c0 = sig;\n  if (*(long *)((long)key + 0x10) == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  if (*(long *)((long)key + 0x18) == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  if (*(long *)((long)key + 8) == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n                    /* WARNING: Load size is inaccurate */\n  lVar2 = *(long *)(*key + 0x70);\n  getstring(&local_1c0,&local_1c4,&p,&slen);\n  if (p == (char *)0x0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n                    /* WARNING: Load size is inaccurate */\n  uVar3 = match_ssh_id(slen,p,*(char **)(*key + 0x60));\n  if (uVar3 == 0) goto LAB_0013cc52;\n  getstring(&local_1c0,&local_1c4,&p,&slen);\n  if (p == (char *)0x0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  curve = *(ec_curve **)((long)key + 8);\n  if (curve->type == ADDRTYPE_IPV6) {\n    if (((curve->fieldBits >> 3) * 2 == slen) && (curve->fieldBits == 0x100)) {\n      peVar6 = ec_point_new(curve,(Bignum)0x0,(Bignum)0x0,(Bignum)0x0,'\0');\n      uVar3 = 0;\n      if (peVar6 != (ec_point *)0x0) {\n        iVar4 = decodepoint(p,*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3,peVar6);\n        if (iVar4 == 0) {\n          ec_point_free(peVar6);\n          uVar3 = 0;\n        }\n        else {\n          uVar3 = *(uint *)(*(long *)((long)key + 8) + 0x18) >> 3;\n          pBVar7 = bignum_from_bytes_le((uchar *)(p + uVar3),uVar3);\n          SHA512_Init((SHA512_CTX *)&hs);\n          SHA512_Bytes(&hs,p,*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3);\n          uVar3 = *(uint *)(*(long *)((long)key + 8) + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              iVar5 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4);\n              b = (uchar)iVar5;\n              SHA512_Bytes(&hs,&b,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          iVar4 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4);\n          b = (byte)iVar4 & 0x7f;\n          iVar4 = bignum_bit(*(Bignum_conflict *)((long)key + 0x10),0);\n          b = b | (byte)(iVar4 << 7);\n          SHA512_Bytes(&hs,&b,1);\n          SHA512_Bytes(&hs,data,datalen);\n          SHA512_Final(&hs,digest);\n          pBVar8 = bignum_from_bytes_le(digest,0x40);\n          peVar9 = ecp_mul((ec_point *)(*(long *)((long)key + 8) + 0x38),pBVar7);\n          freebn(pBVar7);\n          if (peVar9 == (ec_point *)0x0) {\n            ec_point_free(peVar6);\n            freebn(pBVar8);\n            uVar3 = 0;\n          }\n          else {\n            peVar10 = ecp_mul((ec_point *)((long)key + 8),pBVar8);\n            freebn(pBVar8);\n            if (peVar10 == (ec_point *)0x0) {\n              ec_point_free(peVar9);\n              ec_point_free(peVar6);\n              uVar3 = 0;\n            }\n            else {\n              point = ecp_add(peVar6,peVar10,0);\n              ec_point_free(peVar6);\n              ec_point_free(peVar10);\n              if (point == (ec_point *)0x0) {\n                ec_point_free(peVar9);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = bignum_cmp((Bignum_conflict)peVar9->x,(Bignum_conflict)point->x);\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = bignum_cmp((Bignum_conflict)peVar9->y,(Bignum_conflict)point->y);\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                ec_point_free(peVar9);\n                ec_point_free(point);\n              }\n            }\n          }\n        }\n      }\n    }\n    else {\n      uVar3 = 0;\n    }\n    goto LAB_0013cc52;\n  }\n  pBVar7 = (Bignum_conflict)getmp(&p,&slen);\n  if (pBVar7 != (Bignum_conflict)0x0) {\n    pBVar8 = (Bignum_conflict)getmp(&p,&slen);\n    if (pBVar8 != (Bignum_conflict)0x0) {\n      nbytes = *(uint *)(*(undefined8 **)(lVar2 + 8) + 5);\n      if (0x40 < nbytes) {\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }\n      uVar11 = (*(code *)**(undefined8 **)(lVar2 + 8))();\n      (**(code **)(*(long *)(lVar2 + 8) + 0x10))(uVar11,data,datalen);\n      (**(code **)(*(long *)(lVar2 + 8) + 0x18))(uVar11,digest);\n      uVar3 = 0;\n      if (**(int **)((long)key + 8) == 0) {\n        uVar3 = bignum_cmp(pBVar7,Zero);\n        if (uVar3 != 0) {\n          iVar4 = bignum_cmp(pBVar7,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = bignum_cmp(pBVar8,Zero);\n            if (uVar3 != 0) {\n              iVar4 = bignum_cmp(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                pBVar12 = bignum_from_bytes(digest,nbytes);\n                iVar4 = bignum_bitcount(*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                iVar5 = bignum_bitcount(pBVar12);\n                pBVar13 = pBVar12;\n                if (iVar4 < iVar5) {\n                  pBVar13 = bignum_rshift(pBVar12,iVar5 - iVar4);\n                  freebn(pBVar12);\n                }\n                pBVar12 = bigmod(pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                freebn(pBVar13);\n                pBVar13 = modinv(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                if (pBVar13 == (Bignum_conflict)0x0) {\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n                else {\n                  b_00 = modmul(pBVar12,pBVar13,\n                                *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                  b_01 = modmul(pBVar7,pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)\n                               );\n                  freebn(pBVar13);\n                  if ((*(ec_curve **)((long)key + 8))->type == ADDRTYPE_UNSPEC) {\n                    iVar4 = ec_aminus3(*(ec_curve **)((long)key + 8));\n                    peVar6 = ecp_mul_((ec_point *)(*(long *)((long)key + 8) + 0x40),b_00,iVar4);\n                    if (peVar6 == (ec_point *)0x0) goto LAB_0013cc19;\n                    peVar9 = ecp_mul_((ec_point *)((long)key + 8),b_01,iVar4);\n                    if (peVar9 == (ec_point *)0x0) {\n                      ec_point_free(peVar6);\n                      goto LAB_0013cc19;\n                    }\n                    peVar10 = ecp_add(peVar6,peVar9,iVar4);\n                    ec_point_free(peVar6);\n                    ec_point_free(peVar9);\n                    iVar4 = ecp_normalise(peVar10);\n                    if (iVar4 == 0) {\n                      ec_point_free(peVar10);\n                      goto LAB_0013cc19;\n                    }\n                    freebn(b_00);\n                    freebn(b_01);\n                    if (peVar10 != (ec_point *)0x0) {\n                      pBVar13 = bigmod((Bignum_conflict)peVar10->x,\n                                       *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                      ec_point_free(peVar10);\n                      iVar4 = bignum_cmp(pBVar7,pBVar13);\n                      uVar3 = (uint)(iVar4 == 0);\n                      freebn(pBVar13);\n                      freebn(pBVar12);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    freebn(b_00);\n                    freebn(b_01);\n                  }\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }\nLAB_0013c99e:\n      freebn(pBVar7);\n      freebn(pBVar8);\n      goto LAB_0013cc52;\n    }\n    freebn(pBVar7);\n  }\n  uVar3 = 0;\nLAB_0013cc52:\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "uint nbytes;" type_identifier identifier ;) (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "ec_curve *curve;" type_identifier (pointer_declarator "*curve" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "ec_point *peVar6;" type_identifier (pointer_declarator "*peVar6" * identifier) ;) (declaration "Bignum_conflict pBVar7;" type_identifier identifier ;) (declaration "Bignum_conflict pBVar8;" type_identifier identifier ;) (declaration "ec_point *peVar9;" type_identifier (pointer_declarator "*peVar9" * identifier) ;) (declaration "ec_point *peVar10;" type_identifier (pointer_declarator "*peVar10" * identifier) ;) (declaration "ec_point *point;" type_identifier (pointer_declarator "*point" * identifier) ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "Bignum_conflict pBVar12;" type_identifier identifier ;) (declaration "Bignum_conflict pBVar13;" type_identifier identifier ;) (declaration "Bignum_conflict b_00;" type_identifier identifier ;) (declaration "Bignum_conflict b_01;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "int local_1c4;" primitive_type identifier ;) (declaration "char *local_1c0;" primitive_type (pointer_declarator "*local_1c0" * identifier) ;) (declaration "uchar b;" type_identifier identifier ;) (declaration "int slen;" primitive_type identifier ;) (declaration "char *p;" primitive_type (pointer_declarator "*p" * identifier) ;) (declaration "SHA512_State hs;" type_identifier identifier ;) (declaration "uchar digest [64];" type_identifier (array_declarator "digest [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_1c4 = siglen;" (assignment_expression "local_1c4 = siglen" identifier = identifier) ;) (expression_statement "local_1c0 = sig;" (assignment_expression "local_1c0 = sig" identifier = identifier) ;) (if_statement "if (*(long *)((long)key + 0x10) == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" if (parenthesized_expression "(*(long *)((long)key + 0x10) == 0)" ( (binary_expression "*(long *)((long)key + 0x10) == 0" (pointer_expression "*(long *)((long)key + 0x10)" * (cast_expression "(long *)((long)key + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)key + 0x10)" ( (binary_expression "(long)key + 0x10" (cast_expression "(long)key" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" { (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0013cc52;" goto statement_identifier ;) })) (if_statement "if (*(long *)((long)key + 0x18) == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" if (parenthesized_expression "(*(long *)((long)key + 0x18) == 0)" ( (binary_expression "*(long *)((long)key + 0x18) == 0" (pointer_expression "*(long *)((long)key + 0x18)" * (cast_expression "(long *)((long)key + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)key + 0x18)" ( (binary_expression "(long)key + 0x18" (cast_expression "(long)key" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" { (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0013cc52;" goto statement_identifier ;) })) (if_statement "if (*(long *)((long)key + 8) == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" if (parenthesized_expression "(*(long *)((long)key + 8) == 0)" ( (binary_expression "*(long *)((long)key + 8) == 0" (pointer_expression "*(long *)((long)key + 8)" * (cast_expression "(long *)((long)key + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)key + 8)" ( (binary_expression "(long)key + 8" (cast_expression "(long)key" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" { (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0013cc52;" goto statement_identifier ;) })) comment (expression_statement "lVar2 = *(long *)(*key + 0x70);" (assignment_expression "lVar2 = *(long *)(*key + 0x70)" identifier = (pointer_expression "*(long *)(*key + 0x70)" * (cast_expression "(long *)(*key + 0x70)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*key + 0x70)" ( (binary_expression "*key + 0x70" (pointer_expression "*key" * identifier) + number_literal) ))))) ;) (expression_statement "getstring(&local_1c0,&local_1c4,&p,&slen);" (call_expression "getstring(&local_1c0,&local_1c4,&p,&slen)" identifier (argument_list "(&local_1c0,&local_1c4,&p,&slen)" ( (pointer_expression "&local_1c0" & identifier) , (pointer_expression "&local_1c4" & identifier) , (pointer_expression "&p" & identifier) , (pointer_expression "&slen" & identifier) ))) ;) (if_statement "if (p == (char *)0x0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" if (parenthesized_expression "(p == (char *)0x0)" ( (binary_expression "p == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" { (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0013cc52;" goto statement_identifier ;) })) comment (expression_statement "uVar3 = match_ssh_id(slen,p,*(char **)(*key + 0x60));" (assignment_expression "uVar3 = match_ssh_id(slen,p,*(char **)(*key + 0x60))" identifier = (call_expression "match_ssh_id(slen,p,*(char **)(*key + 0x60))" identifier (argument_list "(slen,p,*(char **)(*key + 0x60))" ( identifier , identifier , (pointer_expression "*(char **)(*key + 0x60)" * (cast_expression "(char **)(*key + 0x60)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*key + 0x60)" ( (binary_expression "*key + 0x60" (pointer_expression "*key" * identifier) + number_literal) )))) )))) ;) (if_statement "if (uVar3 == 0) goto LAB_0013cc52;" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013cc52;" goto statement_identifier ;)) (expression_statement "getstring(&local_1c0,&local_1c4,&p,&slen);" (call_expression "getstring(&local_1c0,&local_1c4,&p,&slen)" identifier (argument_list "(&local_1c0,&local_1c4,&p,&slen)" ( (pointer_expression "&local_1c0" & identifier) , (pointer_expression "&local_1c4" & identifier) , (pointer_expression "&p" & identifier) , (pointer_expression "&slen" & identifier) ))) ;) (if_statement "if (p == (char *)0x0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" if (parenthesized_expression "(p == (char *)0x0)" ( (binary_expression "p == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" { (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0013cc52;" goto statement_identifier ;) })) (expression_statement "curve = *(ec_curve **)((long)key + 8);" (assignment_expression "curve = *(ec_curve **)((long)key + 8)" identifier = (pointer_expression "*(ec_curve **)((long)key + 8)" * (cast_expression "(ec_curve **)((long)key + 8)" ( (type_descriptor "ec_curve **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)key + 8)" ( (binary_expression "(long)key + 8" (cast_expression "(long)key" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (if_statement "if (curve->type == ADDRTYPE_IPV6) {\n    if (((curve->fieldBits >> 3) * 2 == slen) && (curve->fieldBits == 0x100)) {\n      peVar6 = ec_point_new(curve,(Bignum)0x0,(Bignum)0x0,(Bignum)0x0,'\0');\n      uVar3 = 0;\n      if (peVar6 != (ec_point *)0x0) {\n        iVar4 = decodepoint(p,*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3,peVar6);\n        if (iVar4 == 0) {\n          ec_point_free(peVar6);\n          uVar3 = 0;\n        }\n        else {\n          uVar3 = *(uint *)(*(long *)((long)key + 8) + 0x18) >> 3;\n          pBVar7 = bignum_from_bytes_le((uchar *)(p + uVar3),uVar3);\n          SHA512_Init((SHA512_CTX *)&hs);\n          SHA512_Bytes(&hs,p,*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3);\n          uVar3 = *(uint *)(*(long *)((long)key + 8) + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              iVar5 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4);\n              b = (uchar)iVar5;\n              SHA512_Bytes(&hs,&b,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          iVar4 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4);\n          b = (byte)iVar4 & 0x7f;\n          iVar4 = bignum_bit(*(Bignum_conflict *)((long)key + 0x10),0);\n          b = b | (byte)(iVar4 << 7);\n          SHA512_Bytes(&hs,&b,1);\n          SHA512_Bytes(&hs,data,datalen);\n          SHA512_Final(&hs,digest);\n          pBVar8 = bignum_from_bytes_le(digest,0x40);\n          peVar9 = ecp_mul((ec_point *)(*(long *)((long)key + 8) + 0x38),pBVar7);\n          freebn(pBVar7);\n          if (peVar9 == (ec_point *)0x0) {\n            ec_point_free(peVar6);\n            freebn(pBVar8);\n            uVar3 = 0;\n          }\n          else {\n            peVar10 = ecp_mul((ec_point *)((long)key + 8),pBVar8);\n            freebn(pBVar8);\n            if (peVar10 == (ec_point *)0x0) {\n              ec_point_free(peVar9);\n              ec_point_free(peVar6);\n              uVar3 = 0;\n            }\n            else {\n              point = ecp_add(peVar6,peVar10,0);\n              ec_point_free(peVar6);\n              ec_point_free(peVar10);\n              if (point == (ec_point *)0x0) {\n                ec_point_free(peVar9);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = bignum_cmp((Bignum_conflict)peVar9->x,(Bignum_conflict)point->x);\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = bignum_cmp((Bignum_conflict)peVar9->y,(Bignum_conflict)point->y);\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                ec_point_free(peVar9);\n                ec_point_free(point);\n              }\n            }\n          }\n        }\n      }\n    }\n    else {\n      uVar3 = 0;\n    }\n    goto LAB_0013cc52;\n  }" if (parenthesized_expression "(curve->type == ADDRTYPE_IPV6)" ( (binary_expression "curve->type == ADDRTYPE_IPV6" (field_expression "curve->type" identifier -> field_identifier) == identifier) )) (compound_statement "{\n    if (((curve->fieldBits >> 3) * 2 == slen) && (curve->fieldBits == 0x100)) {\n      peVar6 = ec_point_new(curve,(Bignum)0x0,(Bignum)0x0,(Bignum)0x0,'\0');\n      uVar3 = 0;\n      if (peVar6 != (ec_point *)0x0) {\n        iVar4 = decodepoint(p,*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3,peVar6);\n        if (iVar4 == 0) {\n          ec_point_free(peVar6);\n          uVar3 = 0;\n        }\n        else {\n          uVar3 = *(uint *)(*(long *)((long)key + 8) + 0x18) >> 3;\n          pBVar7 = bignum_from_bytes_le((uchar *)(p + uVar3),uVar3);\n          SHA512_Init((SHA512_CTX *)&hs);\n          SHA512_Bytes(&hs,p,*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3);\n          uVar3 = *(uint *)(*(long *)((long)key + 8) + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              iVar5 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4);\n              b = (uchar)iVar5;\n              SHA512_Bytes(&hs,&b,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          iVar4 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4);\n          b = (byte)iVar4 & 0x7f;\n          iVar4 = bignum_bit(*(Bignum_conflict *)((long)key + 0x10),0);\n          b = b | (byte)(iVar4 << 7);\n          SHA512_Bytes(&hs,&b,1);\n          SHA512_Bytes(&hs,data,datalen);\n          SHA512_Final(&hs,digest);\n          pBVar8 = bignum_from_bytes_le(digest,0x40);\n          peVar9 = ecp_mul((ec_point *)(*(long *)((long)key + 8) + 0x38),pBVar7);\n          freebn(pBVar7);\n          if (peVar9 == (ec_point *)0x0) {\n            ec_point_free(peVar6);\n            freebn(pBVar8);\n            uVar3 = 0;\n          }\n          else {\n            peVar10 = ecp_mul((ec_point *)((long)key + 8),pBVar8);\n            freebn(pBVar8);\n            if (peVar10 == (ec_point *)0x0) {\n              ec_point_free(peVar9);\n              ec_point_free(peVar6);\n              uVar3 = 0;\n            }\n            else {\n              point = ecp_add(peVar6,peVar10,0);\n              ec_point_free(peVar6);\n              ec_point_free(peVar10);\n              if (point == (ec_point *)0x0) {\n                ec_point_free(peVar9);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = bignum_cmp((Bignum_conflict)peVar9->x,(Bignum_conflict)point->x);\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = bignum_cmp((Bignum_conflict)peVar9->y,(Bignum_conflict)point->y);\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                ec_point_free(peVar9);\n                ec_point_free(point);\n              }\n            }\n          }\n        }\n      }\n    }\n    else {\n      uVar3 = 0;\n    }\n    goto LAB_0013cc52;\n  }" { (if_statement "if (((curve->fieldBits >> 3) * 2 == slen) && (curve->fieldBits == 0x100)) {\n      peVar6 = ec_point_new(curve,(Bignum)0x0,(Bignum)0x0,(Bignum)0x0,'\0');\n      uVar3 = 0;\n      if (peVar6 != (ec_point *)0x0) {\n        iVar4 = decodepoint(p,*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3,peVar6);\n        if (iVar4 == 0) {\n          ec_point_free(peVar6);\n          uVar3 = 0;\n        }\n        else {\n          uVar3 = *(uint *)(*(long *)((long)key + 8) + 0x18) >> 3;\n          pBVar7 = bignum_from_bytes_le((uchar *)(p + uVar3),uVar3);\n          SHA512_Init((SHA512_CTX *)&hs);\n          SHA512_Bytes(&hs,p,*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3);\n          uVar3 = *(uint *)(*(long *)((long)key + 8) + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              iVar5 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4);\n              b = (uchar)iVar5;\n              SHA512_Bytes(&hs,&b,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          iVar4 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4);\n          b = (byte)iVar4 & 0x7f;\n          iVar4 = bignum_bit(*(Bignum_conflict *)((long)key + 0x10),0);\n          b = b | (byte)(iVar4 << 7);\n          SHA512_Bytes(&hs,&b,1);\n          SHA512_Bytes(&hs,data,datalen);\n          SHA512_Final(&hs,digest);\n          pBVar8 = bignum_from_bytes_le(digest,0x40);\n          peVar9 = ecp_mul((ec_point *)(*(long *)((long)key + 8) + 0x38),pBVar7);\n          freebn(pBVar7);\n          if (peVar9 == (ec_point *)0x0) {\n            ec_point_free(peVar6);\n            freebn(pBVar8);\n            uVar3 = 0;\n          }\n          else {\n            peVar10 = ecp_mul((ec_point *)((long)key + 8),pBVar8);\n            freebn(pBVar8);\n            if (peVar10 == (ec_point *)0x0) {\n              ec_point_free(peVar9);\n              ec_point_free(peVar6);\n              uVar3 = 0;\n            }\n            else {\n              point = ecp_add(peVar6,peVar10,0);\n              ec_point_free(peVar6);\n              ec_point_free(peVar10);\n              if (point == (ec_point *)0x0) {\n                ec_point_free(peVar9);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = bignum_cmp((Bignum_conflict)peVar9->x,(Bignum_conflict)point->x);\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = bignum_cmp((Bignum_conflict)peVar9->y,(Bignum_conflict)point->y);\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                ec_point_free(peVar9);\n                ec_point_free(point);\n              }\n            }\n          }\n        }\n      }\n    }\n    else {\n      uVar3 = 0;\n    }" if (parenthesized_expression "(((curve->fieldBits >> 3) * 2 == slen) && (curve->fieldBits == 0x100))" ( (binary_expression "((curve->fieldBits >> 3) * 2 == slen) && (curve->fieldBits == 0x100)" (parenthesized_expression "((curve->fieldBits >> 3) * 2 == slen)" ( (binary_expression "(curve->fieldBits >> 3) * 2 == slen" (binary_expression "(curve->fieldBits >> 3) * 2" (parenthesized_expression "(curve->fieldBits >> 3)" ( (binary_expression "curve->fieldBits >> 3" (field_expression "curve->fieldBits" identifier -> field_identifier) >> number_literal) )) * number_literal) == identifier) )) && (parenthesized_expression "(curve->fieldBits == 0x100)" ( (binary_expression "curve->fieldBits == 0x100" (field_expression "curve->fieldBits" identifier -> field_identifier) == number_literal) ))) )) (compound_statement "{\n      peVar6 = ec_point_new(curve,(Bignum)0x0,(Bignum)0x0,(Bignum)0x0,'\0');\n      uVar3 = 0;\n      if (peVar6 != (ec_point *)0x0) {\n        iVar4 = decodepoint(p,*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3,peVar6);\n        if (iVar4 == 0) {\n          ec_point_free(peVar6);\n          uVar3 = 0;\n        }\n        else {\n          uVar3 = *(uint *)(*(long *)((long)key + 8) + 0x18) >> 3;\n          pBVar7 = bignum_from_bytes_le((uchar *)(p + uVar3),uVar3);\n          SHA512_Init((SHA512_CTX *)&hs);\n          SHA512_Bytes(&hs,p,*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3);\n          uVar3 = *(uint *)(*(long *)((long)key + 8) + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              iVar5 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4);\n              b = (uchar)iVar5;\n              SHA512_Bytes(&hs,&b,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          iVar4 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4);\n          b = (byte)iVar4 & 0x7f;\n          iVar4 = bignum_bit(*(Bignum_conflict *)((long)key + 0x10),0);\n          b = b | (byte)(iVar4 << 7);\n          SHA512_Bytes(&hs,&b,1);\n          SHA512_Bytes(&hs,data,datalen);\n          SHA512_Final(&hs,digest);\n          pBVar8 = bignum_from_bytes_le(digest,0x40);\n          peVar9 = ecp_mul((ec_point *)(*(long *)((long)key + 8) + 0x38),pBVar7);\n          freebn(pBVar7);\n          if (peVar9 == (ec_point *)0x0) {\n            ec_point_free(peVar6);\n            freebn(pBVar8);\n            uVar3 = 0;\n          }\n          else {\n            peVar10 = ecp_mul((ec_point *)((long)key + 8),pBVar8);\n            freebn(pBVar8);\n            if (peVar10 == (ec_point *)0x0) {\n              ec_point_free(peVar9);\n              ec_point_free(peVar6);\n              uVar3 = 0;\n            }\n            else {\n              point = ecp_add(peVar6,peVar10,0);\n              ec_point_free(peVar6);\n              ec_point_free(peVar10);\n              if (point == (ec_point *)0x0) {\n                ec_point_free(peVar9);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = bignum_cmp((Bignum_conflict)peVar9->x,(Bignum_conflict)point->x);\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = bignum_cmp((Bignum_conflict)peVar9->y,(Bignum_conflict)point->y);\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                ec_point_free(peVar9);\n                ec_point_free(point);\n              }\n            }\n          }\n        }\n      }\n    }" { (expression_statement "peVar6 = ec_point_new(curve,(Bignum)0x0,(Bignum)0x0,(Bignum)0x0,'\0');" (assignment_expression "peVar6 = ec_point_new(curve,(Bignum)0x0,(Bignum)0x0,(Bignum)0x0,'\0')" identifier = (call_expression "ec_point_new(curve,(Bignum)0x0,(Bignum)0x0,(Bignum)0x0,'\0')" identifier (argument_list "(curve,(Bignum)0x0,(Bignum)0x0,(Bignum)0x0,'\0')" ( identifier , (cast_expression "(Bignum)0x0" ( (type_descriptor "Bignum" type_identifier) ) number_literal) , (cast_expression "(Bignum)0x0" ( (type_descriptor "Bignum" type_identifier) ) number_literal) , (cast_expression "(Bignum)0x0" ( (type_descriptor "Bignum" type_identifier) ) number_literal) , (char_literal "'\0'" ' escape_sequence ') )))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (if_statement "if (peVar6 != (ec_point *)0x0) {\n        iVar4 = decodepoint(p,*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3,peVar6);\n        if (iVar4 == 0) {\n          ec_point_free(peVar6);\n          uVar3 = 0;\n        }\n        else {\n          uVar3 = *(uint *)(*(long *)((long)key + 8) + 0x18) >> 3;\n          pBVar7 = bignum_from_bytes_le((uchar *)(p + uVar3),uVar3);\n          SHA512_Init((SHA512_CTX *)&hs);\n          SHA512_Bytes(&hs,p,*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3);\n          uVar3 = *(uint *)(*(long *)((long)key + 8) + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              iVar5 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4);\n              b = (uchar)iVar5;\n              SHA512_Bytes(&hs,&b,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          iVar4 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4);\n          b = (byte)iVar4 & 0x7f;\n          iVar4 = bignum_bit(*(Bignum_conflict *)((long)key + 0x10),0);\n          b = b | (byte)(iVar4 << 7);\n          SHA512_Bytes(&hs,&b,1);\n          SHA512_Bytes(&hs,data,datalen);\n          SHA512_Final(&hs,digest);\n          pBVar8 = bignum_from_bytes_le(digest,0x40);\n          peVar9 = ecp_mul((ec_point *)(*(long *)((long)key + 8) + 0x38),pBVar7);\n          freebn(pBVar7);\n          if (peVar9 == (ec_point *)0x0) {\n            ec_point_free(peVar6);\n            freebn(pBVar8);\n            uVar3 = 0;\n          }\n          else {\n            peVar10 = ecp_mul((ec_point *)((long)key + 8),pBVar8);\n            freebn(pBVar8);\n            if (peVar10 == (ec_point *)0x0) {\n              ec_point_free(peVar9);\n              ec_point_free(peVar6);\n              uVar3 = 0;\n            }\n            else {\n              point = ecp_add(peVar6,peVar10,0);\n              ec_point_free(peVar6);\n              ec_point_free(peVar10);\n              if (point == (ec_point *)0x0) {\n                ec_point_free(peVar9);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = bignum_cmp((Bignum_conflict)peVar9->x,(Bignum_conflict)point->x);\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = bignum_cmp((Bignum_conflict)peVar9->y,(Bignum_conflict)point->y);\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                ec_point_free(peVar9);\n                ec_point_free(point);\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "(peVar6 != (ec_point *)0x0)" ( (binary_expression "peVar6 != (ec_point *)0x0" identifier != (cast_expression "(ec_point *)0x0" ( (type_descriptor "ec_point *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar4 = decodepoint(p,*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3,peVar6);\n        if (iVar4 == 0) {\n          ec_point_free(peVar6);\n          uVar3 = 0;\n        }\n        else {\n          uVar3 = *(uint *)(*(long *)((long)key + 8) + 0x18) >> 3;\n          pBVar7 = bignum_from_bytes_le((uchar *)(p + uVar3),uVar3);\n          SHA512_Init((SHA512_CTX *)&hs);\n          SHA512_Bytes(&hs,p,*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3);\n          uVar3 = *(uint *)(*(long *)((long)key + 8) + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              iVar5 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4);\n              b = (uchar)iVar5;\n              SHA512_Bytes(&hs,&b,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          iVar4 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4);\n          b = (byte)iVar4 & 0x7f;\n          iVar4 = bignum_bit(*(Bignum_conflict *)((long)key + 0x10),0);\n          b = b | (byte)(iVar4 << 7);\n          SHA512_Bytes(&hs,&b,1);\n          SHA512_Bytes(&hs,data,datalen);\n          SHA512_Final(&hs,digest);\n          pBVar8 = bignum_from_bytes_le(digest,0x40);\n          peVar9 = ecp_mul((ec_point *)(*(long *)((long)key + 8) + 0x38),pBVar7);\n          freebn(pBVar7);\n          if (peVar9 == (ec_point *)0x0) {\n            ec_point_free(peVar6);\n            freebn(pBVar8);\n            uVar3 = 0;\n          }\n          else {\n            peVar10 = ecp_mul((ec_point *)((long)key + 8),pBVar8);\n            freebn(pBVar8);\n            if (peVar10 == (ec_point *)0x0) {\n              ec_point_free(peVar9);\n              ec_point_free(peVar6);\n              uVar3 = 0;\n            }\n            else {\n              point = ecp_add(peVar6,peVar10,0);\n              ec_point_free(peVar6);\n              ec_point_free(peVar10);\n              if (point == (ec_point *)0x0) {\n                ec_point_free(peVar9);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = bignum_cmp((Bignum_conflict)peVar9->x,(Bignum_conflict)point->x);\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = bignum_cmp((Bignum_conflict)peVar9->y,(Bignum_conflict)point->y);\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                ec_point_free(peVar9);\n                ec_point_free(point);\n              }\n            }\n          }\n        }\n      }" { (expression_statement "iVar4 = decodepoint(p,*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3,peVar6);" (assignment_expression "iVar4 = decodepoint(p,*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3,peVar6)" identifier = (call_expression "decodepoint(p,*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3,peVar6)" identifier (argument_list "(p,*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3,peVar6)" ( identifier , (binary_expression "*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3" (pointer_expression "*(uint *)(*(long *)((long)key + 8) + 0x18)" * (cast_expression "(uint *)(*(long *)((long)key + 8) + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)((long)key + 8) + 0x18)" ( (binary_expression "*(long *)((long)key + 8) + 0x18" (pointer_expression "*(long *)((long)key + 8)" * (cast_expression "(long *)((long)key + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)key + 8)" ( (binary_expression "(long)key + 8" (cast_expression "(long)key" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) )))) >> number_literal) , identifier )))) ;) (if_statement "if (iVar4 == 0) {\n          ec_point_free(peVar6);\n          uVar3 = 0;\n        }\n        else {\n          uVar3 = *(uint *)(*(long *)((long)key + 8) + 0x18) >> 3;\n          pBVar7 = bignum_from_bytes_le((uchar *)(p + uVar3),uVar3);\n          SHA512_Init((SHA512_CTX *)&hs);\n          SHA512_Bytes(&hs,p,*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3);\n          uVar3 = *(uint *)(*(long *)((long)key + 8) + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              iVar5 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4);\n              b = (uchar)iVar5;\n              SHA512_Bytes(&hs,&b,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          iVar4 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4);\n          b = (byte)iVar4 & 0x7f;\n          iVar4 = bignum_bit(*(Bignum_conflict *)((long)key + 0x10),0);\n          b = b | (byte)(iVar4 << 7);\n          SHA512_Bytes(&hs,&b,1);\n          SHA512_Bytes(&hs,data,datalen);\n          SHA512_Final(&hs,digest);\n          pBVar8 = bignum_from_bytes_le(digest,0x40);\n          peVar9 = ecp_mul((ec_point *)(*(long *)((long)key + 8) + 0x38),pBVar7);\n          freebn(pBVar7);\n          if (peVar9 == (ec_point *)0x0) {\n            ec_point_free(peVar6);\n            freebn(pBVar8);\n            uVar3 = 0;\n          }\n          else {\n            peVar10 = ecp_mul((ec_point *)((long)key + 8),pBVar8);\n            freebn(pBVar8);\n            if (peVar10 == (ec_point *)0x0) {\n              ec_point_free(peVar9);\n              ec_point_free(peVar6);\n              uVar3 = 0;\n            }\n            else {\n              point = ecp_add(peVar6,peVar10,0);\n              ec_point_free(peVar6);\n              ec_point_free(peVar10);\n              if (point == (ec_point *)0x0) {\n                ec_point_free(peVar9);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = bignum_cmp((Bignum_conflict)peVar9->x,(Bignum_conflict)point->x);\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = bignum_cmp((Bignum_conflict)peVar9->y,(Bignum_conflict)point->y);\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                ec_point_free(peVar9);\n                ec_point_free(point);\n              }\n            }\n          }\n        }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n          ec_point_free(peVar6);\n          uVar3 = 0;\n        }" { (expression_statement "ec_point_free(peVar6);" (call_expression "ec_point_free(peVar6)" identifier (argument_list "(peVar6)" ( identifier ))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          uVar3 = *(uint *)(*(long *)((long)key + 8) + 0x18) >> 3;\n          pBVar7 = bignum_from_bytes_le((uchar *)(p + uVar3),uVar3);\n          SHA512_Init((SHA512_CTX *)&hs);\n          SHA512_Bytes(&hs,p,*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3);\n          uVar3 = *(uint *)(*(long *)((long)key + 8) + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              iVar5 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4);\n              b = (uchar)iVar5;\n              SHA512_Bytes(&hs,&b,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          iVar4 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4);\n          b = (byte)iVar4 & 0x7f;\n          iVar4 = bignum_bit(*(Bignum_conflict *)((long)key + 0x10),0);\n          b = b | (byte)(iVar4 << 7);\n          SHA512_Bytes(&hs,&b,1);\n          SHA512_Bytes(&hs,data,datalen);\n          SHA512_Final(&hs,digest);\n          pBVar8 = bignum_from_bytes_le(digest,0x40);\n          peVar9 = ecp_mul((ec_point *)(*(long *)((long)key + 8) + 0x38),pBVar7);\n          freebn(pBVar7);\n          if (peVar9 == (ec_point *)0x0) {\n            ec_point_free(peVar6);\n            freebn(pBVar8);\n            uVar3 = 0;\n          }\n          else {\n            peVar10 = ecp_mul((ec_point *)((long)key + 8),pBVar8);\n            freebn(pBVar8);\n            if (peVar10 == (ec_point *)0x0) {\n              ec_point_free(peVar9);\n              ec_point_free(peVar6);\n              uVar3 = 0;\n            }\n            else {\n              point = ecp_add(peVar6,peVar10,0);\n              ec_point_free(peVar6);\n              ec_point_free(peVar10);\n              if (point == (ec_point *)0x0) {\n                ec_point_free(peVar9);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = bignum_cmp((Bignum_conflict)peVar9->x,(Bignum_conflict)point->x);\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = bignum_cmp((Bignum_conflict)peVar9->y,(Bignum_conflict)point->y);\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                ec_point_free(peVar9);\n                ec_point_free(point);\n              }\n            }\n          }\n        }" else (compound_statement "{\n          uVar3 = *(uint *)(*(long *)((long)key + 8) + 0x18) >> 3;\n          pBVar7 = bignum_from_bytes_le((uchar *)(p + uVar3),uVar3);\n          SHA512_Init((SHA512_CTX *)&hs);\n          SHA512_Bytes(&hs,p,*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3);\n          uVar3 = *(uint *)(*(long *)((long)key + 8) + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              iVar5 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4);\n              b = (uchar)iVar5;\n              SHA512_Bytes(&hs,&b,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          iVar4 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4);\n          b = (byte)iVar4 & 0x7f;\n          iVar4 = bignum_bit(*(Bignum_conflict *)((long)key + 0x10),0);\n          b = b | (byte)(iVar4 << 7);\n          SHA512_Bytes(&hs,&b,1);\n          SHA512_Bytes(&hs,data,datalen);\n          SHA512_Final(&hs,digest);\n          pBVar8 = bignum_from_bytes_le(digest,0x40);\n          peVar9 = ecp_mul((ec_point *)(*(long *)((long)key + 8) + 0x38),pBVar7);\n          freebn(pBVar7);\n          if (peVar9 == (ec_point *)0x0) {\n            ec_point_free(peVar6);\n            freebn(pBVar8);\n            uVar3 = 0;\n          }\n          else {\n            peVar10 = ecp_mul((ec_point *)((long)key + 8),pBVar8);\n            freebn(pBVar8);\n            if (peVar10 == (ec_point *)0x0) {\n              ec_point_free(peVar9);\n              ec_point_free(peVar6);\n              uVar3 = 0;\n            }\n            else {\n              point = ecp_add(peVar6,peVar10,0);\n              ec_point_free(peVar6);\n              ec_point_free(peVar10);\n              if (point == (ec_point *)0x0) {\n                ec_point_free(peVar9);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = bignum_cmp((Bignum_conflict)peVar9->x,(Bignum_conflict)point->x);\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = bignum_cmp((Bignum_conflict)peVar9->y,(Bignum_conflict)point->y);\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                ec_point_free(peVar9);\n                ec_point_free(point);\n              }\n            }\n          }\n        }" { (expression_statement "uVar3 = *(uint *)(*(long *)((long)key + 8) + 0x18) >> 3;" (assignment_expression "uVar3 = *(uint *)(*(long *)((long)key + 8) + 0x18) >> 3" identifier = (binary_expression "*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3" (pointer_expression "*(uint *)(*(long *)((long)key + 8) + 0x18)" * (cast_expression "(uint *)(*(long *)((long)key + 8) + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)((long)key + 8) + 0x18)" ( (binary_expression "*(long *)((long)key + 8) + 0x18" (pointer_expression "*(long *)((long)key + 8)" * (cast_expression "(long *)((long)key + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)key + 8)" ( (binary_expression "(long)key + 8" (cast_expression "(long)key" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) )))) >> number_literal)) ;) (expression_statement "pBVar7 = bignum_from_bytes_le((uchar *)(p + uVar3),uVar3);" (assignment_expression "pBVar7 = bignum_from_bytes_le((uchar *)(p + uVar3),uVar3)" identifier = (call_expression "bignum_from_bytes_le((uchar *)(p + uVar3),uVar3)" identifier (argument_list "((uchar *)(p + uVar3),uVar3)" ( (cast_expression "(uchar *)(p + uVar3)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p + uVar3)" ( (binary_expression "p + uVar3" identifier + identifier) ))) , identifier )))) ;) (expression_statement "SHA512_Init((SHA512_CTX *)&hs);" (call_expression "SHA512_Init((SHA512_CTX *)&hs)" identifier (argument_list "((SHA512_CTX *)&hs)" ( (cast_expression "(SHA512_CTX *)&hs" ( (type_descriptor "SHA512_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&hs" & identifier)) ))) ;) (expression_statement "SHA512_Bytes(&hs,p,*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3);" (call_expression "SHA512_Bytes(&hs,p,*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3)" identifier (argument_list "(&hs,p,*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3)" ( (pointer_expression "&hs" & identifier) , identifier , (binary_expression "*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3" (pointer_expression "*(uint *)(*(long *)((long)key + 8) + 0x18)" * (cast_expression "(uint *)(*(long *)((long)key + 8) + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)((long)key + 8) + 0x18)" ( (binary_expression "*(long *)((long)key + 8) + 0x18" (pointer_expression "*(long *)((long)key + 8)" * (cast_expression "(long *)((long)key + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)key + 8)" ( (binary_expression "(long)key + 8" (cast_expression "(long)key" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) )))) >> number_literal) ))) ;) (expression_statement "uVar3 = *(uint *)(*(long *)((long)key + 8) + 0x18) >> 3;" (assignment_expression "uVar3 = *(uint *)(*(long *)((long)key + 8) + 0x18) >> 3" identifier = (binary_expression "*(uint *)(*(long *)((long)key + 8) + 0x18) >> 3" (pointer_expression "*(uint *)(*(long *)((long)key + 8) + 0x18)" * (cast_expression "(uint *)(*(long *)((long)key + 8) + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)((long)key + 8) + 0x18)" ( (binary_expression "*(long *)((long)key + 8) + 0x18" (pointer_expression "*(long *)((long)key + 8)" * (cast_expression "(long *)((long)key + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)key + 8)" ( (binary_expression "(long)key + 8" (cast_expression "(long)key" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) )))) >> number_literal)) ;) (if_statement "if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              iVar5 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4);\n              b = (uchar)iVar5;\n              SHA512_Bytes(&hs,&b,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }" if (parenthesized_expression "(uVar3 < 2)" ( (binary_expression "uVar3 < 2" identifier < number_literal) )) (compound_statement "{\n            iVar4 = 0;\n          }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            iVar4 = 0;\n            do {\n              iVar5 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4);\n              b = (uchar)iVar5;\n              SHA512_Bytes(&hs,&b,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }" else (compound_statement "{\n            iVar4 = 0;\n            do {\n              iVar5 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4);\n              b = (uchar)iVar5;\n              SHA512_Bytes(&hs,&b,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (do_statement "do {\n              iVar5 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4);\n              b = (uchar)iVar5;\n              SHA512_Bytes(&hs,&b,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);" do (compound_statement "{\n              iVar5 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4);\n              b = (uchar)iVar5;\n              SHA512_Bytes(&hs,&b,1);\n              iVar4 = iVar4 + 1;\n            }" { (expression_statement "iVar5 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4);" (assignment_expression "iVar5 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4)" identifier = (call_expression "bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4)" identifier (argument_list "(*(Bignum_conflict *)((long)key + 0x18),iVar4)" ( (pointer_expression "*(Bignum_conflict *)((long)key + 0x18)" * (cast_expression "(Bignum_conflict *)((long)key + 0x18)" ( (type_descriptor "Bignum_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)key + 0x18)" ( (binary_expression "(long)key + 0x18" (cast_expression "(long)key" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) , identifier )))) ;) (expression_statement "b = (uchar)iVar5;" (assignment_expression "b = (uchar)iVar5" identifier = (cast_expression "(uchar)iVar5" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "SHA512_Bytes(&hs,&b,1);" (call_expression "SHA512_Bytes(&hs,&b,1)" identifier (argument_list "(&hs,&b,1)" ( (pointer_expression "&hs" & identifier) , (pointer_expression "&b" & identifier) , number_literal ))) ;) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar3 - 1 != iVar4)" ( (binary_expression "uVar3 - 1 != iVar4" (binary_expression "uVar3 - 1" identifier - number_literal) != identifier) )) ;) }))) (expression_statement "iVar4 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4);" (assignment_expression "iVar4 = bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4)" identifier = (call_expression "bignum_byte(*(Bignum_conflict *)((long)key + 0x18),iVar4)" identifier (argument_list "(*(Bignum_conflict *)((long)key + 0x18),iVar4)" ( (pointer_expression "*(Bignum_conflict *)((long)key + 0x18)" * (cast_expression "(Bignum_conflict *)((long)key + 0x18)" ( (type_descriptor "Bignum_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)key + 0x18)" ( (binary_expression "(long)key + 0x18" (cast_expression "(long)key" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) , identifier )))) ;) (expression_statement "b = (byte)iVar4 & 0x7f;" (assignment_expression "b = (byte)iVar4 & 0x7f" identifier = (binary_expression "(byte)iVar4 & 0x7f" (cast_expression "(byte)iVar4" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "iVar4 = bignum_bit(*(Bignum_conflict *)((long)key + 0x10),0);" (assignment_expression "iVar4 = bignum_bit(*(Bignum_conflict *)((long)key + 0x10),0)" identifier = (call_expression "bignum_bit(*(Bignum_conflict *)((long)key + 0x10),0)" identifier (argument_list "(*(Bignum_conflict *)((long)key + 0x10),0)" ( (pointer_expression "*(Bignum_conflict *)((long)key + 0x10)" * (cast_expression "(Bignum_conflict *)((long)key + 0x10)" ( (type_descriptor "Bignum_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)key + 0x10)" ( (binary_expression "(long)key + 0x10" (cast_expression "(long)key" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) , number_literal )))) ;) (expression_statement "b = b | (byte)(iVar4 << 7);" (assignment_expression "b = b | (byte)(iVar4 << 7)" identifier = (binary_expression "b | (byte)(iVar4 << 7)" identifier | (call_expression "(byte)(iVar4 << 7)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(iVar4 << 7)" ( (binary_expression "iVar4 << 7" identifier << number_literal) ))))) ;) (expression_statement "SHA512_Bytes(&hs,&b,1);" (call_expression "SHA512_Bytes(&hs,&b,1)" identifier (argument_list "(&hs,&b,1)" ( (pointer_expression "&hs" & identifier) , (pointer_expression "&b" & identifier) , number_literal ))) ;) (expression_statement "SHA512_Bytes(&hs,data,datalen);" (call_expression "SHA512_Bytes(&hs,data,datalen)" identifier (argument_list "(&hs,data,datalen)" ( (pointer_expression "&hs" & identifier) , identifier , identifier ))) ;) (expression_statement "SHA512_Final(&hs,digest);" (call_expression "SHA512_Final(&hs,digest)" identifier (argument_list "(&hs,digest)" ( (pointer_expression "&hs" & identifier) , identifier ))) ;) (expression_statement "pBVar8 = bignum_from_bytes_le(digest,0x40);" (assignment_expression "pBVar8 = bignum_from_bytes_le(digest,0x40)" identifier = (call_expression "bignum_from_bytes_le(digest,0x40)" identifier (argument_list "(digest,0x40)" ( identifier , number_literal )))) ;) (expression_statement "peVar9 = ecp_mul((ec_point *)(*(long *)((long)key + 8) + 0x38),pBVar7);" (assignment_expression "peVar9 = ecp_mul((ec_point *)(*(long *)((long)key + 8) + 0x38),pBVar7)" identifier = (call_expression "ecp_mul((ec_point *)(*(long *)((long)key + 8) + 0x38),pBVar7)" identifier (argument_list "((ec_point *)(*(long *)((long)key + 8) + 0x38),pBVar7)" ( (cast_expression "(ec_point *)(*(long *)((long)key + 8) + 0x38)" ( (type_descriptor "ec_point *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)((long)key + 8) + 0x38)" ( (binary_expression "*(long *)((long)key + 8) + 0x38" (pointer_expression "*(long *)((long)key + 8)" * (cast_expression "(long *)((long)key + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)key + 8)" ( (binary_expression "(long)key + 8" (cast_expression "(long)key" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) ))) , identifier )))) ;) (expression_statement "freebn(pBVar7);" (call_expression "freebn(pBVar7)" identifier (argument_list "(pBVar7)" ( identifier ))) ;) (if_statement "if (peVar9 == (ec_point *)0x0) {\n            ec_point_free(peVar6);\n            freebn(pBVar8);\n            uVar3 = 0;\n          }\n          else {\n            peVar10 = ecp_mul((ec_point *)((long)key + 8),pBVar8);\n            freebn(pBVar8);\n            if (peVar10 == (ec_point *)0x0) {\n              ec_point_free(peVar9);\n              ec_point_free(peVar6);\n              uVar3 = 0;\n            }\n            else {\n              point = ecp_add(peVar6,peVar10,0);\n              ec_point_free(peVar6);\n              ec_point_free(peVar10);\n              if (point == (ec_point *)0x0) {\n                ec_point_free(peVar9);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = bignum_cmp((Bignum_conflict)peVar9->x,(Bignum_conflict)point->x);\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = bignum_cmp((Bignum_conflict)peVar9->y,(Bignum_conflict)point->y);\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                ec_point_free(peVar9);\n                ec_point_free(point);\n              }\n            }\n          }" if (parenthesized_expression "(peVar9 == (ec_point *)0x0)" ( (binary_expression "peVar9 == (ec_point *)0x0" identifier == (cast_expression "(ec_point *)0x0" ( (type_descriptor "ec_point *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            ec_point_free(peVar6);\n            freebn(pBVar8);\n            uVar3 = 0;\n          }" { (expression_statement "ec_point_free(peVar6);" (call_expression "ec_point_free(peVar6)" identifier (argument_list "(peVar6)" ( identifier ))) ;) (expression_statement "freebn(pBVar8);" (call_expression "freebn(pBVar8)" identifier (argument_list "(pBVar8)" ( identifier ))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            peVar10 = ecp_mul((ec_point *)((long)key + 8),pBVar8);\n            freebn(pBVar8);\n            if (peVar10 == (ec_point *)0x0) {\n              ec_point_free(peVar9);\n              ec_point_free(peVar6);\n              uVar3 = 0;\n            }\n            else {\n              point = ecp_add(peVar6,peVar10,0);\n              ec_point_free(peVar6);\n              ec_point_free(peVar10);\n              if (point == (ec_point *)0x0) {\n                ec_point_free(peVar9);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = bignum_cmp((Bignum_conflict)peVar9->x,(Bignum_conflict)point->x);\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = bignum_cmp((Bignum_conflict)peVar9->y,(Bignum_conflict)point->y);\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                ec_point_free(peVar9);\n                ec_point_free(point);\n              }\n            }\n          }" else (compound_statement "{\n            peVar10 = ecp_mul((ec_point *)((long)key + 8),pBVar8);\n            freebn(pBVar8);\n            if (peVar10 == (ec_point *)0x0) {\n              ec_point_free(peVar9);\n              ec_point_free(peVar6);\n              uVar3 = 0;\n            }\n            else {\n              point = ecp_add(peVar6,peVar10,0);\n              ec_point_free(peVar6);\n              ec_point_free(peVar10);\n              if (point == (ec_point *)0x0) {\n                ec_point_free(peVar9);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = bignum_cmp((Bignum_conflict)peVar9->x,(Bignum_conflict)point->x);\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = bignum_cmp((Bignum_conflict)peVar9->y,(Bignum_conflict)point->y);\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                ec_point_free(peVar9);\n                ec_point_free(point);\n              }\n            }\n          }" { (expression_statement "peVar10 = ecp_mul((ec_point *)((long)key + 8),pBVar8);" (assignment_expression "peVar10 = ecp_mul((ec_point *)((long)key + 8),pBVar8)" identifier = (call_expression "ecp_mul((ec_point *)((long)key + 8),pBVar8)" identifier (argument_list "((ec_point *)((long)key + 8),pBVar8)" ( (cast_expression "(ec_point *)((long)key + 8)" ( (type_descriptor "ec_point *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)key + 8)" ( (binary_expression "(long)key + 8" (cast_expression "(long)key" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))) , identifier )))) ;) (expression_statement "freebn(pBVar8);" (call_expression "freebn(pBVar8)" identifier (argument_list "(pBVar8)" ( identifier ))) ;) (if_statement "if (peVar10 == (ec_point *)0x0) {\n              ec_point_free(peVar9);\n              ec_point_free(peVar6);\n              uVar3 = 0;\n            }\n            else {\n              point = ecp_add(peVar6,peVar10,0);\n              ec_point_free(peVar6);\n              ec_point_free(peVar10);\n              if (point == (ec_point *)0x0) {\n                ec_point_free(peVar9);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = bignum_cmp((Bignum_conflict)peVar9->x,(Bignum_conflict)point->x);\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = bignum_cmp((Bignum_conflict)peVar9->y,(Bignum_conflict)point->y);\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                ec_point_free(peVar9);\n                ec_point_free(point);\n              }\n            }" if (parenthesized_expression "(peVar10 == (ec_point *)0x0)" ( (binary_expression "peVar10 == (ec_point *)0x0" identifier == (cast_expression "(ec_point *)0x0" ( (type_descriptor "ec_point *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              ec_point_free(peVar9);\n              ec_point_free(peVar6);\n              uVar3 = 0;\n            }" { (expression_statement "ec_point_free(peVar9);" (call_expression "ec_point_free(peVar9)" identifier (argument_list "(peVar9)" ( identifier ))) ;) (expression_statement "ec_point_free(peVar6);" (call_expression "ec_point_free(peVar6)" identifier (argument_list "(peVar6)" ( identifier ))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              point = ecp_add(peVar6,peVar10,0);\n              ec_point_free(peVar6);\n              ec_point_free(peVar10);\n              if (point == (ec_point *)0x0) {\n                ec_point_free(peVar9);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = bignum_cmp((Bignum_conflict)peVar9->x,(Bignum_conflict)point->x);\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = bignum_cmp((Bignum_conflict)peVar9->y,(Bignum_conflict)point->y);\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                ec_point_free(peVar9);\n                ec_point_free(point);\n              }\n            }" else (compound_statement "{\n              point = ecp_add(peVar6,peVar10,0);\n              ec_point_free(peVar6);\n              ec_point_free(peVar10);\n              if (point == (ec_point *)0x0) {\n                ec_point_free(peVar9);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = bignum_cmp((Bignum_conflict)peVar9->x,(Bignum_conflict)point->x);\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = bignum_cmp((Bignum_conflict)peVar9->y,(Bignum_conflict)point->y);\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                ec_point_free(peVar9);\n                ec_point_free(point);\n              }\n            }" { (expression_statement "point = ecp_add(peVar6,peVar10,0);" (assignment_expression "point = ecp_add(peVar6,peVar10,0)" identifier = (call_expression "ecp_add(peVar6,peVar10,0)" identifier (argument_list "(peVar6,peVar10,0)" ( identifier , identifier , number_literal )))) ;) (expression_statement "ec_point_free(peVar6);" (call_expression "ec_point_free(peVar6)" identifier (argument_list "(peVar6)" ( identifier ))) ;) (expression_statement "ec_point_free(peVar10);" (call_expression "ec_point_free(peVar10)" identifier (argument_list "(peVar10)" ( identifier ))) ;) (if_statement "if (point == (ec_point *)0x0) {\n                ec_point_free(peVar9);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = bignum_cmp((Bignum_conflict)peVar9->x,(Bignum_conflict)point->x);\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = bignum_cmp((Bignum_conflict)peVar9->y,(Bignum_conflict)point->y);\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                ec_point_free(peVar9);\n                ec_point_free(point);\n              }" if (parenthesized_expression "(point == (ec_point *)0x0)" ( (binary_expression "point == (ec_point *)0x0" identifier == (cast_expression "(ec_point *)0x0" ( (type_descriptor "ec_point *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                ec_point_free(peVar9);\n                uVar3 = 0;\n              }" { (expression_statement "ec_point_free(peVar9);" (call_expression "ec_point_free(peVar9)" identifier (argument_list "(peVar9)" ( identifier ))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                iVar4 = bignum_cmp((Bignum_conflict)peVar9->x,(Bignum_conflict)point->x);\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = bignum_cmp((Bignum_conflict)peVar9->y,(Bignum_conflict)point->y);\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                ec_point_free(peVar9);\n                ec_point_free(point);\n              }" else (compound_statement "{\n                iVar4 = bignum_cmp((Bignum_conflict)peVar9->x,(Bignum_conflict)point->x);\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = bignum_cmp((Bignum_conflict)peVar9->y,(Bignum_conflict)point->y);\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                ec_point_free(peVar9);\n                ec_point_free(point);\n              }" { (expression_statement "iVar4 = bignum_cmp((Bignum_conflict)peVar9->x,(Bignum_conflict)point->x);" (assignment_expression "iVar4 = bignum_cmp((Bignum_conflict)peVar9->x,(Bignum_conflict)point->x)" identifier = (call_expression "bignum_cmp((Bignum_conflict)peVar9->x,(Bignum_conflict)point->x)" identifier (argument_list "((Bignum_conflict)peVar9->x,(Bignum_conflict)point->x)" ( (cast_expression "(Bignum_conflict)peVar9->x" ( (type_descriptor "Bignum_conflict" type_identifier) ) (field_expression "peVar9->x" identifier -> field_identifier)) , (cast_expression "(Bignum_conflict)point->x" ( (type_descriptor "Bignum_conflict" type_identifier) ) (field_expression "point->x" identifier -> field_identifier)) )))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (if_statement "if (iVar4 == 0) {\n                  iVar4 = bignum_cmp((Bignum_conflict)peVar9->y,(Bignum_conflict)point->y);\n                  uVar3 = (uint)(iVar4 == 0);\n                }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                  iVar4 = bignum_cmp((Bignum_conflict)peVar9->y,(Bignum_conflict)point->y);\n                  uVar3 = (uint)(iVar4 == 0);\n                }" { (expression_statement "iVar4 = bignum_cmp((Bignum_conflict)peVar9->y,(Bignum_conflict)point->y);" (assignment_expression "iVar4 = bignum_cmp((Bignum_conflict)peVar9->y,(Bignum_conflict)point->y)" identifier = (call_expression "bignum_cmp((Bignum_conflict)peVar9->y,(Bignum_conflict)point->y)" identifier (argument_list "((Bignum_conflict)peVar9->y,(Bignum_conflict)point->y)" ( (cast_expression "(Bignum_conflict)peVar9->y" ( (type_descriptor "Bignum_conflict" type_identifier) ) (field_expression "peVar9->y" identifier -> field_identifier)) , (cast_expression "(Bignum_conflict)point->y" ( (type_descriptor "Bignum_conflict" type_identifier) ) (field_expression "point->y" identifier -> field_identifier)) )))) ;) (expression_statement "uVar3 = (uint)(iVar4 == 0);" (assignment_expression "uVar3 = (uint)(iVar4 == 0)" identifier = (call_expression "(uint)(iVar4 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )))) ;) })) (expression_statement "ec_point_free(peVar9);" (call_expression "ec_point_free(peVar9)" identifier (argument_list "(peVar9)" ( identifier ))) ;) (expression_statement "ec_point_free(point);" (call_expression "ec_point_free(point)" identifier (argument_list "(point)" ( identifier ))) ;) }))) }))) }))) }))) })) }) (else_clause "else {\n      uVar3 = 0;\n    }" else (compound_statement "{\n      uVar3 = 0;\n    }" { (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) }))) (goto_statement "goto LAB_0013cc52;" goto statement_identifier ;) })) (expression_statement "pBVar7 = (Bignum_conflict)getmp(&p,&slen);" (assignment_expression "pBVar7 = (Bignum_conflict)getmp(&p,&slen)" identifier = (cast_expression "(Bignum_conflict)getmp(&p,&slen)" ( (type_descriptor "Bignum_conflict" type_identifier) ) (call_expression "getmp(&p,&slen)" identifier (argument_list "(&p,&slen)" ( (pointer_expression "&p" & identifier) , (pointer_expression "&slen" & identifier) ))))) ;) (if_statement "if (pBVar7 != (Bignum_conflict)0x0) {\n    pBVar8 = (Bignum_conflict)getmp(&p,&slen);\n    if (pBVar8 != (Bignum_conflict)0x0) {\n      nbytes = *(uint *)(*(undefined8 **)(lVar2 + 8) + 5);\n      if (0x40 < nbytes) {\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }\n      uVar11 = (*(code *)**(undefined8 **)(lVar2 + 8))();\n      (**(code **)(*(long *)(lVar2 + 8) + 0x10))(uVar11,data,datalen);\n      (**(code **)(*(long *)(lVar2 + 8) + 0x18))(uVar11,digest);\n      uVar3 = 0;\n      if (**(int **)((long)key + 8) == 0) {\n        uVar3 = bignum_cmp(pBVar7,Zero);\n        if (uVar3 != 0) {\n          iVar4 = bignum_cmp(pBVar7,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = bignum_cmp(pBVar8,Zero);\n            if (uVar3 != 0) {\n              iVar4 = bignum_cmp(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                pBVar12 = bignum_from_bytes(digest,nbytes);\n                iVar4 = bignum_bitcount(*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                iVar5 = bignum_bitcount(pBVar12);\n                pBVar13 = pBVar12;\n                if (iVar4 < iVar5) {\n                  pBVar13 = bignum_rshift(pBVar12,iVar5 - iVar4);\n                  freebn(pBVar12);\n                }\n                pBVar12 = bigmod(pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                freebn(pBVar13);\n                pBVar13 = modinv(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                if (pBVar13 == (Bignum_conflict)0x0) {\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n                else {\n                  b_00 = modmul(pBVar12,pBVar13,\n                                *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                  b_01 = modmul(pBVar7,pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)\n                               );\n                  freebn(pBVar13);\n                  if ((*(ec_curve **)((long)key + 8))->type == ADDRTYPE_UNSPEC) {\n                    iVar4 = ec_aminus3(*(ec_curve **)((long)key + 8));\n                    peVar6 = ecp_mul_((ec_point *)(*(long *)((long)key + 8) + 0x40),b_00,iVar4);\n                    if (peVar6 == (ec_point *)0x0) goto LAB_0013cc19;\n                    peVar9 = ecp_mul_((ec_point *)((long)key + 8),b_01,iVar4);\n                    if (peVar9 == (ec_point *)0x0) {\n                      ec_point_free(peVar6);\n                      goto LAB_0013cc19;\n                    }\n                    peVar10 = ecp_add(peVar6,peVar9,iVar4);\n                    ec_point_free(peVar6);\n                    ec_point_free(peVar9);\n                    iVar4 = ecp_normalise(peVar10);\n                    if (iVar4 == 0) {\n                      ec_point_free(peVar10);\n                      goto LAB_0013cc19;\n                    }\n                    freebn(b_00);\n                    freebn(b_01);\n                    if (peVar10 != (ec_point *)0x0) {\n                      pBVar13 = bigmod((Bignum_conflict)peVar10->x,\n                                       *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                      ec_point_free(peVar10);\n                      iVar4 = bignum_cmp(pBVar7,pBVar13);\n                      uVar3 = (uint)(iVar4 == 0);\n                      freebn(pBVar13);\n                      freebn(pBVar12);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    freebn(b_00);\n                    freebn(b_01);\n                  }\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }\nLAB_0013c99e:\n      freebn(pBVar7);\n      freebn(pBVar8);\n      goto LAB_0013cc52;\n    }\n    freebn(pBVar7);\n  }" if (parenthesized_expression "(pBVar7 != (Bignum_conflict)0x0)" ( (binary_expression "pBVar7 != (Bignum_conflict)0x0" identifier != (cast_expression "(Bignum_conflict)0x0" ( (type_descriptor "Bignum_conflict" type_identifier) ) number_literal)) )) (compound_statement "{\n    pBVar8 = (Bignum_conflict)getmp(&p,&slen);\n    if (pBVar8 != (Bignum_conflict)0x0) {\n      nbytes = *(uint *)(*(undefined8 **)(lVar2 + 8) + 5);\n      if (0x40 < nbytes) {\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }\n      uVar11 = (*(code *)**(undefined8 **)(lVar2 + 8))();\n      (**(code **)(*(long *)(lVar2 + 8) + 0x10))(uVar11,data,datalen);\n      (**(code **)(*(long *)(lVar2 + 8) + 0x18))(uVar11,digest);\n      uVar3 = 0;\n      if (**(int **)((long)key + 8) == 0) {\n        uVar3 = bignum_cmp(pBVar7,Zero);\n        if (uVar3 != 0) {\n          iVar4 = bignum_cmp(pBVar7,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = bignum_cmp(pBVar8,Zero);\n            if (uVar3 != 0) {\n              iVar4 = bignum_cmp(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                pBVar12 = bignum_from_bytes(digest,nbytes);\n                iVar4 = bignum_bitcount(*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                iVar5 = bignum_bitcount(pBVar12);\n                pBVar13 = pBVar12;\n                if (iVar4 < iVar5) {\n                  pBVar13 = bignum_rshift(pBVar12,iVar5 - iVar4);\n                  freebn(pBVar12);\n                }\n                pBVar12 = bigmod(pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                freebn(pBVar13);\n                pBVar13 = modinv(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                if (pBVar13 == (Bignum_conflict)0x0) {\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n                else {\n                  b_00 = modmul(pBVar12,pBVar13,\n                                *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                  b_01 = modmul(pBVar7,pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)\n                               );\n                  freebn(pBVar13);\n                  if ((*(ec_curve **)((long)key + 8))->type == ADDRTYPE_UNSPEC) {\n                    iVar4 = ec_aminus3(*(ec_curve **)((long)key + 8));\n                    peVar6 = ecp_mul_((ec_point *)(*(long *)((long)key + 8) + 0x40),b_00,iVar4);\n                    if (peVar6 == (ec_point *)0x0) goto LAB_0013cc19;\n                    peVar9 = ecp_mul_((ec_point *)((long)key + 8),b_01,iVar4);\n                    if (peVar9 == (ec_point *)0x0) {\n                      ec_point_free(peVar6);\n                      goto LAB_0013cc19;\n                    }\n                    peVar10 = ecp_add(peVar6,peVar9,iVar4);\n                    ec_point_free(peVar6);\n                    ec_point_free(peVar9);\n                    iVar4 = ecp_normalise(peVar10);\n                    if (iVar4 == 0) {\n                      ec_point_free(peVar10);\n                      goto LAB_0013cc19;\n                    }\n                    freebn(b_00);\n                    freebn(b_01);\n                    if (peVar10 != (ec_point *)0x0) {\n                      pBVar13 = bigmod((Bignum_conflict)peVar10->x,\n                                       *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                      ec_point_free(peVar10);\n                      iVar4 = bignum_cmp(pBVar7,pBVar13);\n                      uVar3 = (uint)(iVar4 == 0);\n                      freebn(pBVar13);\n                      freebn(pBVar12);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    freebn(b_00);\n                    freebn(b_01);\n                  }\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }\nLAB_0013c99e:\n      freebn(pBVar7);\n      freebn(pBVar8);\n      goto LAB_0013cc52;\n    }\n    freebn(pBVar7);\n  }" { (expression_statement "pBVar8 = (Bignum_conflict)getmp(&p,&slen);" (assignment_expression "pBVar8 = (Bignum_conflict)getmp(&p,&slen)" identifier = (cast_expression "(Bignum_conflict)getmp(&p,&slen)" ( (type_descriptor "Bignum_conflict" type_identifier) ) (call_expression "getmp(&p,&slen)" identifier (argument_list "(&p,&slen)" ( (pointer_expression "&p" & identifier) , (pointer_expression "&slen" & identifier) ))))) ;) (if_statement "if (pBVar8 != (Bignum_conflict)0x0) {\n      nbytes = *(uint *)(*(undefined8 **)(lVar2 + 8) + 5);\n      if (0x40 < nbytes) {\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }\n      uVar11 = (*(code *)**(undefined8 **)(lVar2 + 8))();\n      (**(code **)(*(long *)(lVar2 + 8) + 0x10))(uVar11,data,datalen);\n      (**(code **)(*(long *)(lVar2 + 8) + 0x18))(uVar11,digest);\n      uVar3 = 0;\n      if (**(int **)((long)key + 8) == 0) {\n        uVar3 = bignum_cmp(pBVar7,Zero);\n        if (uVar3 != 0) {\n          iVar4 = bignum_cmp(pBVar7,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = bignum_cmp(pBVar8,Zero);\n            if (uVar3 != 0) {\n              iVar4 = bignum_cmp(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                pBVar12 = bignum_from_bytes(digest,nbytes);\n                iVar4 = bignum_bitcount(*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                iVar5 = bignum_bitcount(pBVar12);\n                pBVar13 = pBVar12;\n                if (iVar4 < iVar5) {\n                  pBVar13 = bignum_rshift(pBVar12,iVar5 - iVar4);\n                  freebn(pBVar12);\n                }\n                pBVar12 = bigmod(pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                freebn(pBVar13);\n                pBVar13 = modinv(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                if (pBVar13 == (Bignum_conflict)0x0) {\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n                else {\n                  b_00 = modmul(pBVar12,pBVar13,\n                                *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                  b_01 = modmul(pBVar7,pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)\n                               );\n                  freebn(pBVar13);\n                  if ((*(ec_curve **)((long)key + 8))->type == ADDRTYPE_UNSPEC) {\n                    iVar4 = ec_aminus3(*(ec_curve **)((long)key + 8));\n                    peVar6 = ecp_mul_((ec_point *)(*(long *)((long)key + 8) + 0x40),b_00,iVar4);\n                    if (peVar6 == (ec_point *)0x0) goto LAB_0013cc19;\n                    peVar9 = ecp_mul_((ec_point *)((long)key + 8),b_01,iVar4);\n                    if (peVar9 == (ec_point *)0x0) {\n                      ec_point_free(peVar6);\n                      goto LAB_0013cc19;\n                    }\n                    peVar10 = ecp_add(peVar6,peVar9,iVar4);\n                    ec_point_free(peVar6);\n                    ec_point_free(peVar9);\n                    iVar4 = ecp_normalise(peVar10);\n                    if (iVar4 == 0) {\n                      ec_point_free(peVar10);\n                      goto LAB_0013cc19;\n                    }\n                    freebn(b_00);\n                    freebn(b_01);\n                    if (peVar10 != (ec_point *)0x0) {\n                      pBVar13 = bigmod((Bignum_conflict)peVar10->x,\n                                       *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                      ec_point_free(peVar10);\n                      iVar4 = bignum_cmp(pBVar7,pBVar13);\n                      uVar3 = (uint)(iVar4 == 0);\n                      freebn(pBVar13);\n                      freebn(pBVar12);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    freebn(b_00);\n                    freebn(b_01);\n                  }\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }\nLAB_0013c99e:\n      freebn(pBVar7);\n      freebn(pBVar8);\n      goto LAB_0013cc52;\n    }" if (parenthesized_expression "(pBVar8 != (Bignum_conflict)0x0)" ( (binary_expression "pBVar8 != (Bignum_conflict)0x0" identifier != (cast_expression "(Bignum_conflict)0x0" ( (type_descriptor "Bignum_conflict" type_identifier) ) number_literal)) )) (compound_statement "{\n      nbytes = *(uint *)(*(undefined8 **)(lVar2 + 8) + 5);\n      if (0x40 < nbytes) {\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }\n      uVar11 = (*(code *)**(undefined8 **)(lVar2 + 8))();\n      (**(code **)(*(long *)(lVar2 + 8) + 0x10))(uVar11,data,datalen);\n      (**(code **)(*(long *)(lVar2 + 8) + 0x18))(uVar11,digest);\n      uVar3 = 0;\n      if (**(int **)((long)key + 8) == 0) {\n        uVar3 = bignum_cmp(pBVar7,Zero);\n        if (uVar3 != 0) {\n          iVar4 = bignum_cmp(pBVar7,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = bignum_cmp(pBVar8,Zero);\n            if (uVar3 != 0) {\n              iVar4 = bignum_cmp(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                pBVar12 = bignum_from_bytes(digest,nbytes);\n                iVar4 = bignum_bitcount(*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                iVar5 = bignum_bitcount(pBVar12);\n                pBVar13 = pBVar12;\n                if (iVar4 < iVar5) {\n                  pBVar13 = bignum_rshift(pBVar12,iVar5 - iVar4);\n                  freebn(pBVar12);\n                }\n                pBVar12 = bigmod(pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                freebn(pBVar13);\n                pBVar13 = modinv(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                if (pBVar13 == (Bignum_conflict)0x0) {\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n                else {\n                  b_00 = modmul(pBVar12,pBVar13,\n                                *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                  b_01 = modmul(pBVar7,pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)\n                               );\n                  freebn(pBVar13);\n                  if ((*(ec_curve **)((long)key + 8))->type == ADDRTYPE_UNSPEC) {\n                    iVar4 = ec_aminus3(*(ec_curve **)((long)key + 8));\n                    peVar6 = ecp_mul_((ec_point *)(*(long *)((long)key + 8) + 0x40),b_00,iVar4);\n                    if (peVar6 == (ec_point *)0x0) goto LAB_0013cc19;\n                    peVar9 = ecp_mul_((ec_point *)((long)key + 8),b_01,iVar4);\n                    if (peVar9 == (ec_point *)0x0) {\n                      ec_point_free(peVar6);\n                      goto LAB_0013cc19;\n                    }\n                    peVar10 = ecp_add(peVar6,peVar9,iVar4);\n                    ec_point_free(peVar6);\n                    ec_point_free(peVar9);\n                    iVar4 = ecp_normalise(peVar10);\n                    if (iVar4 == 0) {\n                      ec_point_free(peVar10);\n                      goto LAB_0013cc19;\n                    }\n                    freebn(b_00);\n                    freebn(b_01);\n                    if (peVar10 != (ec_point *)0x0) {\n                      pBVar13 = bigmod((Bignum_conflict)peVar10->x,\n                                       *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                      ec_point_free(peVar10);\n                      iVar4 = bignum_cmp(pBVar7,pBVar13);\n                      uVar3 = (uint)(iVar4 == 0);\n                      freebn(pBVar13);\n                      freebn(pBVar12);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    freebn(b_00);\n                    freebn(b_01);\n                  }\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }\nLAB_0013c99e:\n      freebn(pBVar7);\n      freebn(pBVar8);\n      goto LAB_0013cc52;\n    }" { (expression_statement "nbytes = *(uint *)(*(undefined8 **)(lVar2 + 8) + 5);" (assignment_expression "nbytes = *(uint *)(*(undefined8 **)(lVar2 + 8) + 5)" identifier = (pointer_expression "*(uint *)(*(undefined8 **)(lVar2 + 8) + 5)" * (cast_expression "(uint *)(*(undefined8 **)(lVar2 + 8) + 5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(undefined8 **)(lVar2 + 8) + 5)" ( (binary_expression "*(undefined8 **)(lVar2 + 8) + 5" (pointer_expression "*(undefined8 **)(lVar2 + 8)" * (cast_expression "(undefined8 **)(lVar2 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar2 + 8)" ( (binary_expression "lVar2 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (0x40 < nbytes) {\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }" if (parenthesized_expression "(0x40 < nbytes)" ( (binary_expression "0x40 < nbytes" number_literal < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }" { comment (expression_statement "__assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");" (call_expression "__assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig")" identifier (argument_list "("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig")" ( (string_literal ""digestLen <= sizeof(digest)"" " string_content ") , (string_literal ""sshecc.c"" " string_content ") , number_literal , (string_literal ""ecdsa_verifysig"" " string_content ") ))) ;) })) (expression_statement "uVar11 = (*(code *)**(undefined8 **)(lVar2 + 8))();" (assignment_expression "uVar11 = (*(code *)**(undefined8 **)(lVar2 + 8))()" identifier = (call_expression "(*(code *)**(undefined8 **)(lVar2 + 8))()" (parenthesized_expression "(*(code *)**(undefined8 **)(lVar2 + 8))" ( (pointer_expression "*(code *)**(undefined8 **)(lVar2 + 8)" * (cast_expression "(code *)**(undefined8 **)(lVar2 + 8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined8 **)(lVar2 + 8)" * (pointer_expression "*(undefined8 **)(lVar2 + 8)" * (cast_expression "(undefined8 **)(lVar2 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar2 + 8)" ( (binary_expression "lVar2 + 8" identifier + number_literal) ))))))) )) (argument_list "()" ( )))) ;) (expression_statement "(**(code **)(*(long *)(lVar2 + 8) + 0x10))(uVar11,data,datalen);" (call_expression "(**(code **)(*(long *)(lVar2 + 8) + 0x10))(uVar11,data,datalen)" (parenthesized_expression "(**(code **)(*(long *)(lVar2 + 8) + 0x10))" ( (pointer_expression "**(code **)(*(long *)(lVar2 + 8) + 0x10)" * (pointer_expression "*(code **)(*(long *)(lVar2 + 8) + 0x10)" * (cast_expression "(code **)(*(long *)(lVar2 + 8) + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(lVar2 + 8) + 0x10)" ( (binary_expression "*(long *)(lVar2 + 8) + 0x10" (pointer_expression "*(long *)(lVar2 + 8)" * (cast_expression "(long *)(lVar2 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 8)" ( (binary_expression "lVar2 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar11,data,datalen)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(*(long *)(lVar2 + 8) + 0x18))(uVar11,digest);" (call_expression "(**(code **)(*(long *)(lVar2 + 8) + 0x18))(uVar11,digest)" (parenthesized_expression "(**(code **)(*(long *)(lVar2 + 8) + 0x18))" ( (pointer_expression "**(code **)(*(long *)(lVar2 + 8) + 0x18)" * (pointer_expression "*(code **)(*(long *)(lVar2 + 8) + 0x18)" * (cast_expression "(code **)(*(long *)(lVar2 + 8) + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(lVar2 + 8) + 0x18)" ( (binary_expression "*(long *)(lVar2 + 8) + 0x18" (pointer_expression "*(long *)(lVar2 + 8)" * (cast_expression "(long *)(lVar2 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 8)" ( (binary_expression "lVar2 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar11,digest)" ( identifier , identifier ))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (if_statement "if (**(int **)((long)key + 8) == 0) {\n        uVar3 = bignum_cmp(pBVar7,Zero);\n        if (uVar3 != 0) {\n          iVar4 = bignum_cmp(pBVar7,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = bignum_cmp(pBVar8,Zero);\n            if (uVar3 != 0) {\n              iVar4 = bignum_cmp(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                pBVar12 = bignum_from_bytes(digest,nbytes);\n                iVar4 = bignum_bitcount(*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                iVar5 = bignum_bitcount(pBVar12);\n                pBVar13 = pBVar12;\n                if (iVar4 < iVar5) {\n                  pBVar13 = bignum_rshift(pBVar12,iVar5 - iVar4);\n                  freebn(pBVar12);\n                }\n                pBVar12 = bigmod(pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                freebn(pBVar13);\n                pBVar13 = modinv(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                if (pBVar13 == (Bignum_conflict)0x0) {\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n                else {\n                  b_00 = modmul(pBVar12,pBVar13,\n                                *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                  b_01 = modmul(pBVar7,pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)\n                               );\n                  freebn(pBVar13);\n                  if ((*(ec_curve **)((long)key + 8))->type == ADDRTYPE_UNSPEC) {\n                    iVar4 = ec_aminus3(*(ec_curve **)((long)key + 8));\n                    peVar6 = ecp_mul_((ec_point *)(*(long *)((long)key + 8) + 0x40),b_00,iVar4);\n                    if (peVar6 == (ec_point *)0x0) goto LAB_0013cc19;\n                    peVar9 = ecp_mul_((ec_point *)((long)key + 8),b_01,iVar4);\n                    if (peVar9 == (ec_point *)0x0) {\n                      ec_point_free(peVar6);\n                      goto LAB_0013cc19;\n                    }\n                    peVar10 = ecp_add(peVar6,peVar9,iVar4);\n                    ec_point_free(peVar6);\n                    ec_point_free(peVar9);\n                    iVar4 = ecp_normalise(peVar10);\n                    if (iVar4 == 0) {\n                      ec_point_free(peVar10);\n                      goto LAB_0013cc19;\n                    }\n                    freebn(b_00);\n                    freebn(b_01);\n                    if (peVar10 != (ec_point *)0x0) {\n                      pBVar13 = bigmod((Bignum_conflict)peVar10->x,\n                                       *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                      ec_point_free(peVar10);\n                      iVar4 = bignum_cmp(pBVar7,pBVar13);\n                      uVar3 = (uint)(iVar4 == 0);\n                      freebn(pBVar13);\n                      freebn(pBVar12);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    freebn(b_00);\n                    freebn(b_01);\n                  }\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "(**(int **)((long)key + 8) == 0)" ( (binary_expression "**(int **)((long)key + 8) == 0" (pointer_expression "**(int **)((long)key + 8)" * (pointer_expression "*(int **)((long)key + 8)" * (cast_expression "(int **)((long)key + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)key + 8)" ( (binary_expression "(long)key + 8" (cast_expression "(long)key" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) == number_literal) )) (compound_statement "{\n        uVar3 = bignum_cmp(pBVar7,Zero);\n        if (uVar3 != 0) {\n          iVar4 = bignum_cmp(pBVar7,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = bignum_cmp(pBVar8,Zero);\n            if (uVar3 != 0) {\n              iVar4 = bignum_cmp(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                pBVar12 = bignum_from_bytes(digest,nbytes);\n                iVar4 = bignum_bitcount(*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                iVar5 = bignum_bitcount(pBVar12);\n                pBVar13 = pBVar12;\n                if (iVar4 < iVar5) {\n                  pBVar13 = bignum_rshift(pBVar12,iVar5 - iVar4);\n                  freebn(pBVar12);\n                }\n                pBVar12 = bigmod(pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                freebn(pBVar13);\n                pBVar13 = modinv(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                if (pBVar13 == (Bignum_conflict)0x0) {\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n                else {\n                  b_00 = modmul(pBVar12,pBVar13,\n                                *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                  b_01 = modmul(pBVar7,pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)\n                               );\n                  freebn(pBVar13);\n                  if ((*(ec_curve **)((long)key + 8))->type == ADDRTYPE_UNSPEC) {\n                    iVar4 = ec_aminus3(*(ec_curve **)((long)key + 8));\n                    peVar6 = ecp_mul_((ec_point *)(*(long *)((long)key + 8) + 0x40),b_00,iVar4);\n                    if (peVar6 == (ec_point *)0x0) goto LAB_0013cc19;\n                    peVar9 = ecp_mul_((ec_point *)((long)key + 8),b_01,iVar4);\n                    if (peVar9 == (ec_point *)0x0) {\n                      ec_point_free(peVar6);\n                      goto LAB_0013cc19;\n                    }\n                    peVar10 = ecp_add(peVar6,peVar9,iVar4);\n                    ec_point_free(peVar6);\n                    ec_point_free(peVar9);\n                    iVar4 = ecp_normalise(peVar10);\n                    if (iVar4 == 0) {\n                      ec_point_free(peVar10);\n                      goto LAB_0013cc19;\n                    }\n                    freebn(b_00);\n                    freebn(b_01);\n                    if (peVar10 != (ec_point *)0x0) {\n                      pBVar13 = bigmod((Bignum_conflict)peVar10->x,\n                                       *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                      ec_point_free(peVar10);\n                      iVar4 = bignum_cmp(pBVar7,pBVar13);\n                      uVar3 = (uint)(iVar4 == 0);\n                      freebn(pBVar13);\n                      freebn(pBVar12);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    freebn(b_00);\n                    freebn(b_01);\n                  }\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }" { (expression_statement "uVar3 = bignum_cmp(pBVar7,Zero);" (assignment_expression "uVar3 = bignum_cmp(pBVar7,Zero)" identifier = (call_expression "bignum_cmp(pBVar7,Zero)" identifier (argument_list "(pBVar7,Zero)" ( identifier , identifier )))) ;) (if_statement "if (uVar3 != 0) {\n          iVar4 = bignum_cmp(pBVar7,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = bignum_cmp(pBVar8,Zero);\n            if (uVar3 != 0) {\n              iVar4 = bignum_cmp(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                pBVar12 = bignum_from_bytes(digest,nbytes);\n                iVar4 = bignum_bitcount(*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                iVar5 = bignum_bitcount(pBVar12);\n                pBVar13 = pBVar12;\n                if (iVar4 < iVar5) {\n                  pBVar13 = bignum_rshift(pBVar12,iVar5 - iVar4);\n                  freebn(pBVar12);\n                }\n                pBVar12 = bigmod(pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                freebn(pBVar13);\n                pBVar13 = modinv(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                if (pBVar13 == (Bignum_conflict)0x0) {\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n                else {\n                  b_00 = modmul(pBVar12,pBVar13,\n                                *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                  b_01 = modmul(pBVar7,pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)\n                               );\n                  freebn(pBVar13);\n                  if ((*(ec_curve **)((long)key + 8))->type == ADDRTYPE_UNSPEC) {\n                    iVar4 = ec_aminus3(*(ec_curve **)((long)key + 8));\n                    peVar6 = ecp_mul_((ec_point *)(*(long *)((long)key + 8) + 0x40),b_00,iVar4);\n                    if (peVar6 == (ec_point *)0x0) goto LAB_0013cc19;\n                    peVar9 = ecp_mul_((ec_point *)((long)key + 8),b_01,iVar4);\n                    if (peVar9 == (ec_point *)0x0) {\n                      ec_point_free(peVar6);\n                      goto LAB_0013cc19;\n                    }\n                    peVar10 = ecp_add(peVar6,peVar9,iVar4);\n                    ec_point_free(peVar6);\n                    ec_point_free(peVar9);\n                    iVar4 = ecp_normalise(peVar10);\n                    if (iVar4 == 0) {\n                      ec_point_free(peVar10);\n                      goto LAB_0013cc19;\n                    }\n                    freebn(b_00);\n                    freebn(b_01);\n                    if (peVar10 != (ec_point *)0x0) {\n                      pBVar13 = bigmod((Bignum_conflict)peVar10->x,\n                                       *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                      ec_point_free(peVar10);\n                      iVar4 = bignum_cmp(pBVar7,pBVar13);\n                      uVar3 = (uint)(iVar4 == 0);\n                      freebn(pBVar13);\n                      freebn(pBVar12);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    freebn(b_00);\n                    freebn(b_01);\n                  }\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar4 = bignum_cmp(pBVar7,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = bignum_cmp(pBVar8,Zero);\n            if (uVar3 != 0) {\n              iVar4 = bignum_cmp(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                pBVar12 = bignum_from_bytes(digest,nbytes);\n                iVar4 = bignum_bitcount(*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                iVar5 = bignum_bitcount(pBVar12);\n                pBVar13 = pBVar12;\n                if (iVar4 < iVar5) {\n                  pBVar13 = bignum_rshift(pBVar12,iVar5 - iVar4);\n                  freebn(pBVar12);\n                }\n                pBVar12 = bigmod(pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                freebn(pBVar13);\n                pBVar13 = modinv(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                if (pBVar13 == (Bignum_conflict)0x0) {\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n                else {\n                  b_00 = modmul(pBVar12,pBVar13,\n                                *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                  b_01 = modmul(pBVar7,pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)\n                               );\n                  freebn(pBVar13);\n                  if ((*(ec_curve **)((long)key + 8))->type == ADDRTYPE_UNSPEC) {\n                    iVar4 = ec_aminus3(*(ec_curve **)((long)key + 8));\n                    peVar6 = ecp_mul_((ec_point *)(*(long *)((long)key + 8) + 0x40),b_00,iVar4);\n                    if (peVar6 == (ec_point *)0x0) goto LAB_0013cc19;\n                    peVar9 = ecp_mul_((ec_point *)((long)key + 8),b_01,iVar4);\n                    if (peVar9 == (ec_point *)0x0) {\n                      ec_point_free(peVar6);\n                      goto LAB_0013cc19;\n                    }\n                    peVar10 = ecp_add(peVar6,peVar9,iVar4);\n                    ec_point_free(peVar6);\n                    ec_point_free(peVar9);\n                    iVar4 = ecp_normalise(peVar10);\n                    if (iVar4 == 0) {\n                      ec_point_free(peVar10);\n                      goto LAB_0013cc19;\n                    }\n                    freebn(b_00);\n                    freebn(b_01);\n                    if (peVar10 != (ec_point *)0x0) {\n                      pBVar13 = bigmod((Bignum_conflict)peVar10->x,\n                                       *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                      ec_point_free(peVar10);\n                      iVar4 = bignum_cmp(pBVar7,pBVar13);\n                      uVar3 = (uint)(iVar4 == 0);\n                      freebn(pBVar13);\n                      freebn(pBVar12);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    freebn(b_00);\n                    freebn(b_01);\n                  }\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }" { (expression_statement "iVar4 = bignum_cmp(pBVar7,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));" (assignment_expression "iVar4 = bignum_cmp(pBVar7,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38))" identifier = (call_expression "bignum_cmp(pBVar7,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38))" identifier (argument_list "(pBVar7,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38))" ( identifier , (pointer_expression "*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)" * (cast_expression "(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)" ( (type_descriptor "Bignum_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)((long)key + 8) + 0x38)" ( (binary_expression "*(long *)((long)key + 8) + 0x38" (pointer_expression "*(long *)((long)key + 8)" * (cast_expression "(long *)((long)key + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)key + 8)" ( (binary_expression "(long)key + 8" (cast_expression "(long)key" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) )))) )))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (if_statement "if (iVar4 < 0) {\n            uVar3 = bignum_cmp(pBVar8,Zero);\n            if (uVar3 != 0) {\n              iVar4 = bignum_cmp(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                pBVar12 = bignum_from_bytes(digest,nbytes);\n                iVar4 = bignum_bitcount(*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                iVar5 = bignum_bitcount(pBVar12);\n                pBVar13 = pBVar12;\n                if (iVar4 < iVar5) {\n                  pBVar13 = bignum_rshift(pBVar12,iVar5 - iVar4);\n                  freebn(pBVar12);\n                }\n                pBVar12 = bigmod(pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                freebn(pBVar13);\n                pBVar13 = modinv(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                if (pBVar13 == (Bignum_conflict)0x0) {\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n                else {\n                  b_00 = modmul(pBVar12,pBVar13,\n                                *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                  b_01 = modmul(pBVar7,pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)\n                               );\n                  freebn(pBVar13);\n                  if ((*(ec_curve **)((long)key + 8))->type == ADDRTYPE_UNSPEC) {\n                    iVar4 = ec_aminus3(*(ec_curve **)((long)key + 8));\n                    peVar6 = ecp_mul_((ec_point *)(*(long *)((long)key + 8) + 0x40),b_00,iVar4);\n                    if (peVar6 == (ec_point *)0x0) goto LAB_0013cc19;\n                    peVar9 = ecp_mul_((ec_point *)((long)key + 8),b_01,iVar4);\n                    if (peVar9 == (ec_point *)0x0) {\n                      ec_point_free(peVar6);\n                      goto LAB_0013cc19;\n                    }\n                    peVar10 = ecp_add(peVar6,peVar9,iVar4);\n                    ec_point_free(peVar6);\n                    ec_point_free(peVar9);\n                    iVar4 = ecp_normalise(peVar10);\n                    if (iVar4 == 0) {\n                      ec_point_free(peVar10);\n                      goto LAB_0013cc19;\n                    }\n                    freebn(b_00);\n                    freebn(b_01);\n                    if (peVar10 != (ec_point *)0x0) {\n                      pBVar13 = bigmod((Bignum_conflict)peVar10->x,\n                                       *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                      ec_point_free(peVar10);\n                      iVar4 = bignum_cmp(pBVar7,pBVar13);\n                      uVar3 = (uint)(iVar4 == 0);\n                      freebn(pBVar13);\n                      freebn(pBVar12);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    freebn(b_00);\n                    freebn(b_01);\n                  }\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n            uVar3 = bignum_cmp(pBVar8,Zero);\n            if (uVar3 != 0) {\n              iVar4 = bignum_cmp(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                pBVar12 = bignum_from_bytes(digest,nbytes);\n                iVar4 = bignum_bitcount(*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                iVar5 = bignum_bitcount(pBVar12);\n                pBVar13 = pBVar12;\n                if (iVar4 < iVar5) {\n                  pBVar13 = bignum_rshift(pBVar12,iVar5 - iVar4);\n                  freebn(pBVar12);\n                }\n                pBVar12 = bigmod(pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                freebn(pBVar13);\n                pBVar13 = modinv(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                if (pBVar13 == (Bignum_conflict)0x0) {\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n                else {\n                  b_00 = modmul(pBVar12,pBVar13,\n                                *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                  b_01 = modmul(pBVar7,pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)\n                               );\n                  freebn(pBVar13);\n                  if ((*(ec_curve **)((long)key + 8))->type == ADDRTYPE_UNSPEC) {\n                    iVar4 = ec_aminus3(*(ec_curve **)((long)key + 8));\n                    peVar6 = ecp_mul_((ec_point *)(*(long *)((long)key + 8) + 0x40),b_00,iVar4);\n                    if (peVar6 == (ec_point *)0x0) goto LAB_0013cc19;\n                    peVar9 = ecp_mul_((ec_point *)((long)key + 8),b_01,iVar4);\n                    if (peVar9 == (ec_point *)0x0) {\n                      ec_point_free(peVar6);\n                      goto LAB_0013cc19;\n                    }\n                    peVar10 = ecp_add(peVar6,peVar9,iVar4);\n                    ec_point_free(peVar6);\n                    ec_point_free(peVar9);\n                    iVar4 = ecp_normalise(peVar10);\n                    if (iVar4 == 0) {\n                      ec_point_free(peVar10);\n                      goto LAB_0013cc19;\n                    }\n                    freebn(b_00);\n                    freebn(b_01);\n                    if (peVar10 != (ec_point *)0x0) {\n                      pBVar13 = bigmod((Bignum_conflict)peVar10->x,\n                                       *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                      ec_point_free(peVar10);\n                      iVar4 = bignum_cmp(pBVar7,pBVar13);\n                      uVar3 = (uint)(iVar4 == 0);\n                      freebn(pBVar13);\n                      freebn(pBVar12);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    freebn(b_00);\n                    freebn(b_01);\n                  }\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }" { (expression_statement "uVar3 = bignum_cmp(pBVar8,Zero);" (assignment_expression "uVar3 = bignum_cmp(pBVar8,Zero)" identifier = (call_expression "bignum_cmp(pBVar8,Zero)" identifier (argument_list "(pBVar8,Zero)" ( identifier , identifier )))) ;) (if_statement "if (uVar3 != 0) {\n              iVar4 = bignum_cmp(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                pBVar12 = bignum_from_bytes(digest,nbytes);\n                iVar4 = bignum_bitcount(*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                iVar5 = bignum_bitcount(pBVar12);\n                pBVar13 = pBVar12;\n                if (iVar4 < iVar5) {\n                  pBVar13 = bignum_rshift(pBVar12,iVar5 - iVar4);\n                  freebn(pBVar12);\n                }\n                pBVar12 = bigmod(pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                freebn(pBVar13);\n                pBVar13 = modinv(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                if (pBVar13 == (Bignum_conflict)0x0) {\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n                else {\n                  b_00 = modmul(pBVar12,pBVar13,\n                                *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                  b_01 = modmul(pBVar7,pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)\n                               );\n                  freebn(pBVar13);\n                  if ((*(ec_curve **)((long)key + 8))->type == ADDRTYPE_UNSPEC) {\n                    iVar4 = ec_aminus3(*(ec_curve **)((long)key + 8));\n                    peVar6 = ecp_mul_((ec_point *)(*(long *)((long)key + 8) + 0x40),b_00,iVar4);\n                    if (peVar6 == (ec_point *)0x0) goto LAB_0013cc19;\n                    peVar9 = ecp_mul_((ec_point *)((long)key + 8),b_01,iVar4);\n                    if (peVar9 == (ec_point *)0x0) {\n                      ec_point_free(peVar6);\n                      goto LAB_0013cc19;\n                    }\n                    peVar10 = ecp_add(peVar6,peVar9,iVar4);\n                    ec_point_free(peVar6);\n                    ec_point_free(peVar9);\n                    iVar4 = ecp_normalise(peVar10);\n                    if (iVar4 == 0) {\n                      ec_point_free(peVar10);\n                      goto LAB_0013cc19;\n                    }\n                    freebn(b_00);\n                    freebn(b_01);\n                    if (peVar10 != (ec_point *)0x0) {\n                      pBVar13 = bigmod((Bignum_conflict)peVar10->x,\n                                       *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                      ec_point_free(peVar10);\n                      iVar4 = bignum_cmp(pBVar7,pBVar13);\n                      uVar3 = (uint)(iVar4 == 0);\n                      freebn(pBVar13);\n                      freebn(pBVar12);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    freebn(b_00);\n                    freebn(b_01);\n                  }\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n              }\n            }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n              iVar4 = bignum_cmp(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                pBVar12 = bignum_from_bytes(digest,nbytes);\n                iVar4 = bignum_bitcount(*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                iVar5 = bignum_bitcount(pBVar12);\n                pBVar13 = pBVar12;\n                if (iVar4 < iVar5) {\n                  pBVar13 = bignum_rshift(pBVar12,iVar5 - iVar4);\n                  freebn(pBVar12);\n                }\n                pBVar12 = bigmod(pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                freebn(pBVar13);\n                pBVar13 = modinv(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                if (pBVar13 == (Bignum_conflict)0x0) {\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n                else {\n                  b_00 = modmul(pBVar12,pBVar13,\n                                *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                  b_01 = modmul(pBVar7,pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)\n                               );\n                  freebn(pBVar13);\n                  if ((*(ec_curve **)((long)key + 8))->type == ADDRTYPE_UNSPEC) {\n                    iVar4 = ec_aminus3(*(ec_curve **)((long)key + 8));\n                    peVar6 = ecp_mul_((ec_point *)(*(long *)((long)key + 8) + 0x40),b_00,iVar4);\n                    if (peVar6 == (ec_point *)0x0) goto LAB_0013cc19;\n                    peVar9 = ecp_mul_((ec_point *)((long)key + 8),b_01,iVar4);\n                    if (peVar9 == (ec_point *)0x0) {\n                      ec_point_free(peVar6);\n                      goto LAB_0013cc19;\n                    }\n                    peVar10 = ecp_add(peVar6,peVar9,iVar4);\n                    ec_point_free(peVar6);\n                    ec_point_free(peVar9);\n                    iVar4 = ecp_normalise(peVar10);\n                    if (iVar4 == 0) {\n                      ec_point_free(peVar10);\n                      goto LAB_0013cc19;\n                    }\n                    freebn(b_00);\n                    freebn(b_01);\n                    if (peVar10 != (ec_point *)0x0) {\n                      pBVar13 = bigmod((Bignum_conflict)peVar10->x,\n                                       *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                      ec_point_free(peVar10);\n                      iVar4 = bignum_cmp(pBVar7,pBVar13);\n                      uVar3 = (uint)(iVar4 == 0);\n                      freebn(pBVar13);\n                      freebn(pBVar12);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    freebn(b_00);\n                    freebn(b_01);\n                  }\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n              }\n            }" { (expression_statement "iVar4 = bignum_cmp(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));" (assignment_expression "iVar4 = bignum_cmp(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38))" identifier = (call_expression "bignum_cmp(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38))" identifier (argument_list "(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38))" ( identifier , (pointer_expression "*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)" * (cast_expression "(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)" ( (type_descriptor "Bignum_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)((long)key + 8) + 0x38)" ( (binary_expression "*(long *)((long)key + 8) + 0x38" (pointer_expression "*(long *)((long)key + 8)" * (cast_expression "(long *)((long)key + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)key + 8)" ( (binary_expression "(long)key + 8" (cast_expression "(long)key" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) )))) )))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (if_statement "if (iVar4 < 0) {\n                pBVar12 = bignum_from_bytes(digest,nbytes);\n                iVar4 = bignum_bitcount(*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                iVar5 = bignum_bitcount(pBVar12);\n                pBVar13 = pBVar12;\n                if (iVar4 < iVar5) {\n                  pBVar13 = bignum_rshift(pBVar12,iVar5 - iVar4);\n                  freebn(pBVar12);\n                }\n                pBVar12 = bigmod(pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                freebn(pBVar13);\n                pBVar13 = modinv(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                if (pBVar13 == (Bignum_conflict)0x0) {\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n                else {\n                  b_00 = modmul(pBVar12,pBVar13,\n                                *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                  b_01 = modmul(pBVar7,pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)\n                               );\n                  freebn(pBVar13);\n                  if ((*(ec_curve **)((long)key + 8))->type == ADDRTYPE_UNSPEC) {\n                    iVar4 = ec_aminus3(*(ec_curve **)((long)key + 8));\n                    peVar6 = ecp_mul_((ec_point *)(*(long *)((long)key + 8) + 0x40),b_00,iVar4);\n                    if (peVar6 == (ec_point *)0x0) goto LAB_0013cc19;\n                    peVar9 = ecp_mul_((ec_point *)((long)key + 8),b_01,iVar4);\n                    if (peVar9 == (ec_point *)0x0) {\n                      ec_point_free(peVar6);\n                      goto LAB_0013cc19;\n                    }\n                    peVar10 = ecp_add(peVar6,peVar9,iVar4);\n                    ec_point_free(peVar6);\n                    ec_point_free(peVar9);\n                    iVar4 = ecp_normalise(peVar10);\n                    if (iVar4 == 0) {\n                      ec_point_free(peVar10);\n                      goto LAB_0013cc19;\n                    }\n                    freebn(b_00);\n                    freebn(b_01);\n                    if (peVar10 != (ec_point *)0x0) {\n                      pBVar13 = bigmod((Bignum_conflict)peVar10->x,\n                                       *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                      ec_point_free(peVar10);\n                      iVar4 = bignum_cmp(pBVar7,pBVar13);\n                      uVar3 = (uint)(iVar4 == 0);\n                      freebn(pBVar13);\n                      freebn(pBVar12);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    freebn(b_00);\n                    freebn(b_01);\n                  }\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n              }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n                pBVar12 = bignum_from_bytes(digest,nbytes);\n                iVar4 = bignum_bitcount(*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                iVar5 = bignum_bitcount(pBVar12);\n                pBVar13 = pBVar12;\n                if (iVar4 < iVar5) {\n                  pBVar13 = bignum_rshift(pBVar12,iVar5 - iVar4);\n                  freebn(pBVar12);\n                }\n                pBVar12 = bigmod(pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                freebn(pBVar13);\n                pBVar13 = modinv(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                if (pBVar13 == (Bignum_conflict)0x0) {\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n                else {\n                  b_00 = modmul(pBVar12,pBVar13,\n                                *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                  b_01 = modmul(pBVar7,pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)\n                               );\n                  freebn(pBVar13);\n                  if ((*(ec_curve **)((long)key + 8))->type == ADDRTYPE_UNSPEC) {\n                    iVar4 = ec_aminus3(*(ec_curve **)((long)key + 8));\n                    peVar6 = ecp_mul_((ec_point *)(*(long *)((long)key + 8) + 0x40),b_00,iVar4);\n                    if (peVar6 == (ec_point *)0x0) goto LAB_0013cc19;\n                    peVar9 = ecp_mul_((ec_point *)((long)key + 8),b_01,iVar4);\n                    if (peVar9 == (ec_point *)0x0) {\n                      ec_point_free(peVar6);\n                      goto LAB_0013cc19;\n                    }\n                    peVar10 = ecp_add(peVar6,peVar9,iVar4);\n                    ec_point_free(peVar6);\n                    ec_point_free(peVar9);\n                    iVar4 = ecp_normalise(peVar10);\n                    if (iVar4 == 0) {\n                      ec_point_free(peVar10);\n                      goto LAB_0013cc19;\n                    }\n                    freebn(b_00);\n                    freebn(b_01);\n                    if (peVar10 != (ec_point *)0x0) {\n                      pBVar13 = bigmod((Bignum_conflict)peVar10->x,\n                                       *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                      ec_point_free(peVar10);\n                      iVar4 = bignum_cmp(pBVar7,pBVar13);\n                      uVar3 = (uint)(iVar4 == 0);\n                      freebn(pBVar13);\n                      freebn(pBVar12);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    freebn(b_00);\n                    freebn(b_01);\n                  }\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n              }" { (expression_statement "pBVar12 = bignum_from_bytes(digest,nbytes);" (assignment_expression "pBVar12 = bignum_from_bytes(digest,nbytes)" identifier = (call_expression "bignum_from_bytes(digest,nbytes)" identifier (argument_list "(digest,nbytes)" ( identifier , identifier )))) ;) (expression_statement "iVar4 = bignum_bitcount(*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));" (assignment_expression "iVar4 = bignum_bitcount(*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38))" identifier = (call_expression "bignum_bitcount(*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38))" identifier (argument_list "(*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38))" ( (pointer_expression "*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)" * (cast_expression "(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)" ( (type_descriptor "Bignum_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)((long)key + 8) + 0x38)" ( (binary_expression "*(long *)((long)key + 8) + 0x38" (pointer_expression "*(long *)((long)key + 8)" * (cast_expression "(long *)((long)key + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)key + 8)" ( (binary_expression "(long)key + 8" (cast_expression "(long)key" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) )))) )))) ;) (expression_statement "iVar5 = bignum_bitcount(pBVar12);" (assignment_expression "iVar5 = bignum_bitcount(pBVar12)" identifier = (call_expression "bignum_bitcount(pBVar12)" identifier (argument_list "(pBVar12)" ( identifier )))) ;) (expression_statement "pBVar13 = pBVar12;" (assignment_expression "pBVar13 = pBVar12" identifier = identifier) ;) (if_statement "if (iVar4 < iVar5) {\n                  pBVar13 = bignum_rshift(pBVar12,iVar5 - iVar4);\n                  freebn(pBVar12);\n                }" if (parenthesized_expression "(iVar4 < iVar5)" ( (binary_expression "iVar4 < iVar5" identifier < identifier) )) (compound_statement "{\n                  pBVar13 = bignum_rshift(pBVar12,iVar5 - iVar4);\n                  freebn(pBVar12);\n                }" { (expression_statement "pBVar13 = bignum_rshift(pBVar12,iVar5 - iVar4);" (assignment_expression "pBVar13 = bignum_rshift(pBVar12,iVar5 - iVar4)" identifier = (call_expression "bignum_rshift(pBVar12,iVar5 - iVar4)" identifier (argument_list "(pBVar12,iVar5 - iVar4)" ( identifier , (binary_expression "iVar5 - iVar4" identifier - identifier) )))) ;) (expression_statement "freebn(pBVar12);" (call_expression "freebn(pBVar12)" identifier (argument_list "(pBVar12)" ( identifier ))) ;) })) (expression_statement "pBVar12 = bigmod(pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));" (assignment_expression "pBVar12 = bigmod(pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38))" identifier = (call_expression "bigmod(pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38))" identifier (argument_list "(pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38))" ( identifier , (pointer_expression "*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)" * (cast_expression "(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)" ( (type_descriptor "Bignum_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)((long)key + 8) + 0x38)" ( (binary_expression "*(long *)((long)key + 8) + 0x38" (pointer_expression "*(long *)((long)key + 8)" * (cast_expression "(long *)((long)key + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)key + 8)" ( (binary_expression "(long)key + 8" (cast_expression "(long)key" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) )))) )))) ;) (expression_statement "freebn(pBVar13);" (call_expression "freebn(pBVar13)" identifier (argument_list "(pBVar13)" ( identifier ))) ;) (expression_statement "pBVar13 = modinv(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));" (assignment_expression "pBVar13 = modinv(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38))" identifier = (call_expression "modinv(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38))" identifier (argument_list "(pBVar8,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38))" ( identifier , (pointer_expression "*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)" * (cast_expression "(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)" ( (type_descriptor "Bignum_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)((long)key + 8) + 0x38)" ( (binary_expression "*(long *)((long)key + 8) + 0x38" (pointer_expression "*(long *)((long)key + 8)" * (cast_expression "(long *)((long)key + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)key + 8)" ( (binary_expression "(long)key + 8" (cast_expression "(long)key" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) )))) )))) ;) (if_statement "if (pBVar13 == (Bignum_conflict)0x0) {\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }\n                else {\n                  b_00 = modmul(pBVar12,pBVar13,\n                                *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                  b_01 = modmul(pBVar7,pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)\n                               );\n                  freebn(pBVar13);\n                  if ((*(ec_curve **)((long)key + 8))->type == ADDRTYPE_UNSPEC) {\n                    iVar4 = ec_aminus3(*(ec_curve **)((long)key + 8));\n                    peVar6 = ecp_mul_((ec_point *)(*(long *)((long)key + 8) + 0x40),b_00,iVar4);\n                    if (peVar6 == (ec_point *)0x0) goto LAB_0013cc19;\n                    peVar9 = ecp_mul_((ec_point *)((long)key + 8),b_01,iVar4);\n                    if (peVar9 == (ec_point *)0x0) {\n                      ec_point_free(peVar6);\n                      goto LAB_0013cc19;\n                    }\n                    peVar10 = ecp_add(peVar6,peVar9,iVar4);\n                    ec_point_free(peVar6);\n                    ec_point_free(peVar9);\n                    iVar4 = ecp_normalise(peVar10);\n                    if (iVar4 == 0) {\n                      ec_point_free(peVar10);\n                      goto LAB_0013cc19;\n                    }\n                    freebn(b_00);\n                    freebn(b_01);\n                    if (peVar10 != (ec_point *)0x0) {\n                      pBVar13 = bigmod((Bignum_conflict)peVar10->x,\n                                       *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                      ec_point_free(peVar10);\n                      iVar4 = bignum_cmp(pBVar7,pBVar13);\n                      uVar3 = (uint)(iVar4 == 0);\n                      freebn(pBVar13);\n                      freebn(pBVar12);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    freebn(b_00);\n                    freebn(b_01);\n                  }\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }" if (parenthesized_expression "(pBVar13 == (Bignum_conflict)0x0)" ( (binary_expression "pBVar13 == (Bignum_conflict)0x0" identifier == (cast_expression "(Bignum_conflict)0x0" ( (type_descriptor "Bignum_conflict" type_identifier) ) number_literal)) )) (compound_statement "{\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }" { (expression_statement "freebn(pBVar12);" (call_expression "freebn(pBVar12)" identifier (argument_list "(pBVar12)" ( identifier ))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                  b_00 = modmul(pBVar12,pBVar13,\n                                *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                  b_01 = modmul(pBVar7,pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)\n                               );\n                  freebn(pBVar13);\n                  if ((*(ec_curve **)((long)key + 8))->type == ADDRTYPE_UNSPEC) {\n                    iVar4 = ec_aminus3(*(ec_curve **)((long)key + 8));\n                    peVar6 = ecp_mul_((ec_point *)(*(long *)((long)key + 8) + 0x40),b_00,iVar4);\n                    if (peVar6 == (ec_point *)0x0) goto LAB_0013cc19;\n                    peVar9 = ecp_mul_((ec_point *)((long)key + 8),b_01,iVar4);\n                    if (peVar9 == (ec_point *)0x0) {\n                      ec_point_free(peVar6);\n                      goto LAB_0013cc19;\n                    }\n                    peVar10 = ecp_add(peVar6,peVar9,iVar4);\n                    ec_point_free(peVar6);\n                    ec_point_free(peVar9);\n                    iVar4 = ecp_normalise(peVar10);\n                    if (iVar4 == 0) {\n                      ec_point_free(peVar10);\n                      goto LAB_0013cc19;\n                    }\n                    freebn(b_00);\n                    freebn(b_01);\n                    if (peVar10 != (ec_point *)0x0) {\n                      pBVar13 = bigmod((Bignum_conflict)peVar10->x,\n                                       *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                      ec_point_free(peVar10);\n                      iVar4 = bignum_cmp(pBVar7,pBVar13);\n                      uVar3 = (uint)(iVar4 == 0);\n                      freebn(pBVar13);\n                      freebn(pBVar12);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    freebn(b_00);\n                    freebn(b_01);\n                  }\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }" else (compound_statement "{\n                  b_00 = modmul(pBVar12,pBVar13,\n                                *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                  b_01 = modmul(pBVar7,pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)\n                               );\n                  freebn(pBVar13);\n                  if ((*(ec_curve **)((long)key + 8))->type == ADDRTYPE_UNSPEC) {\n                    iVar4 = ec_aminus3(*(ec_curve **)((long)key + 8));\n                    peVar6 = ecp_mul_((ec_point *)(*(long *)((long)key + 8) + 0x40),b_00,iVar4);\n                    if (peVar6 == (ec_point *)0x0) goto LAB_0013cc19;\n                    peVar9 = ecp_mul_((ec_point *)((long)key + 8),b_01,iVar4);\n                    if (peVar9 == (ec_point *)0x0) {\n                      ec_point_free(peVar6);\n                      goto LAB_0013cc19;\n                    }\n                    peVar10 = ecp_add(peVar6,peVar9,iVar4);\n                    ec_point_free(peVar6);\n                    ec_point_free(peVar9);\n                    iVar4 = ecp_normalise(peVar10);\n                    if (iVar4 == 0) {\n                      ec_point_free(peVar10);\n                      goto LAB_0013cc19;\n                    }\n                    freebn(b_00);\n                    freebn(b_01);\n                    if (peVar10 != (ec_point *)0x0) {\n                      pBVar13 = bigmod((Bignum_conflict)peVar10->x,\n                                       *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                      ec_point_free(peVar10);\n                      iVar4 = bignum_cmp(pBVar7,pBVar13);\n                      uVar3 = (uint)(iVar4 == 0);\n                      freebn(pBVar13);\n                      freebn(pBVar12);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    freebn(b_00);\n                    freebn(b_01);\n                  }\n                  freebn(pBVar12);\n                  uVar3 = 0;\n                }" { (expression_statement "b_00 = modmul(pBVar12,pBVar13,\n                                *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));" (assignment_expression "b_00 = modmul(pBVar12,pBVar13,\n                                *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38))" identifier = (call_expression "modmul(pBVar12,pBVar13,\n                                *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38))" identifier (argument_list "(pBVar12,pBVar13,\n                                *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38))" ( identifier , identifier , (pointer_expression "*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)" * (cast_expression "(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)" ( (type_descriptor "Bignum_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)((long)key + 8) + 0x38)" ( (binary_expression "*(long *)((long)key + 8) + 0x38" (pointer_expression "*(long *)((long)key + 8)" * (cast_expression "(long *)((long)key + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)key + 8)" ( (binary_expression "(long)key + 8" (cast_expression "(long)key" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) )))) )))) ;) (expression_statement "b_01 = modmul(pBVar7,pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)\n                               );" (assignment_expression "b_01 = modmul(pBVar7,pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)\n                               )" identifier = (call_expression "modmul(pBVar7,pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)\n                               )" identifier (argument_list "(pBVar7,pBVar13,*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)\n                               )" ( identifier , identifier , (pointer_expression "*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)" * (cast_expression "(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)" ( (type_descriptor "Bignum_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)((long)key + 8) + 0x38)" ( (binary_expression "*(long *)((long)key + 8) + 0x38" (pointer_expression "*(long *)((long)key + 8)" * (cast_expression "(long *)((long)key + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)key + 8)" ( (binary_expression "(long)key + 8" (cast_expression "(long)key" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) )))) )))) ;) (expression_statement "freebn(pBVar13);" (call_expression "freebn(pBVar13)" identifier (argument_list "(pBVar13)" ( identifier ))) ;) (if_statement "if ((*(ec_curve **)((long)key + 8))->type == ADDRTYPE_UNSPEC) {\n                    iVar4 = ec_aminus3(*(ec_curve **)((long)key + 8));\n                    peVar6 = ecp_mul_((ec_point *)(*(long *)((long)key + 8) + 0x40),b_00,iVar4);\n                    if (peVar6 == (ec_point *)0x0) goto LAB_0013cc19;\n                    peVar9 = ecp_mul_((ec_point *)((long)key + 8),b_01,iVar4);\n                    if (peVar9 == (ec_point *)0x0) {\n                      ec_point_free(peVar6);\n                      goto LAB_0013cc19;\n                    }\n                    peVar10 = ecp_add(peVar6,peVar9,iVar4);\n                    ec_point_free(peVar6);\n                    ec_point_free(peVar9);\n                    iVar4 = ecp_normalise(peVar10);\n                    if (iVar4 == 0) {\n                      ec_point_free(peVar10);\n                      goto LAB_0013cc19;\n                    }\n                    freebn(b_00);\n                    freebn(b_01);\n                    if (peVar10 != (ec_point *)0x0) {\n                      pBVar13 = bigmod((Bignum_conflict)peVar10->x,\n                                       *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                      ec_point_free(peVar10);\n                      iVar4 = bignum_cmp(pBVar7,pBVar13);\n                      uVar3 = (uint)(iVar4 == 0);\n                      freebn(pBVar13);\n                      freebn(pBVar12);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    freebn(b_00);\n                    freebn(b_01);\n                  }" if (parenthesized_expression "((*(ec_curve **)((long)key + 8))->type == ADDRTYPE_UNSPEC)" ( (binary_expression "(*(ec_curve **)((long)key + 8))->type == ADDRTYPE_UNSPEC" (field_expression "(*(ec_curve **)((long)key + 8))->type" (parenthesized_expression "(*(ec_curve **)((long)key + 8))" ( (pointer_expression "*(ec_curve **)((long)key + 8)" * (cast_expression "(ec_curve **)((long)key + 8)" ( (type_descriptor "ec_curve **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)key + 8)" ( (binary_expression "(long)key + 8" (cast_expression "(long)key" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) )) -> field_identifier) == identifier) )) (compound_statement "{\n                    iVar4 = ec_aminus3(*(ec_curve **)((long)key + 8));\n                    peVar6 = ecp_mul_((ec_point *)(*(long *)((long)key + 8) + 0x40),b_00,iVar4);\n                    if (peVar6 == (ec_point *)0x0) goto LAB_0013cc19;\n                    peVar9 = ecp_mul_((ec_point *)((long)key + 8),b_01,iVar4);\n                    if (peVar9 == (ec_point *)0x0) {\n                      ec_point_free(peVar6);\n                      goto LAB_0013cc19;\n                    }\n                    peVar10 = ecp_add(peVar6,peVar9,iVar4);\n                    ec_point_free(peVar6);\n                    ec_point_free(peVar9);\n                    iVar4 = ecp_normalise(peVar10);\n                    if (iVar4 == 0) {\n                      ec_point_free(peVar10);\n                      goto LAB_0013cc19;\n                    }\n                    freebn(b_00);\n                    freebn(b_01);\n                    if (peVar10 != (ec_point *)0x0) {\n                      pBVar13 = bigmod((Bignum_conflict)peVar10->x,\n                                       *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                      ec_point_free(peVar10);\n                      iVar4 = bignum_cmp(pBVar7,pBVar13);\n                      uVar3 = (uint)(iVar4 == 0);\n                      freebn(pBVar13);\n                      freebn(pBVar12);\n                      goto LAB_0013c99e;\n                    }\n                  }" { (expression_statement "iVar4 = ec_aminus3(*(ec_curve **)((long)key + 8));" (assignment_expression "iVar4 = ec_aminus3(*(ec_curve **)((long)key + 8))" identifier = (call_expression "ec_aminus3(*(ec_curve **)((long)key + 8))" identifier (argument_list "(*(ec_curve **)((long)key + 8))" ( (pointer_expression "*(ec_curve **)((long)key + 8)" * (cast_expression "(ec_curve **)((long)key + 8)" ( (type_descriptor "ec_curve **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)key + 8)" ( (binary_expression "(long)key + 8" (cast_expression "(long)key" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) )))) ;) (expression_statement "peVar6 = ecp_mul_((ec_point *)(*(long *)((long)key + 8) + 0x40),b_00,iVar4);" (assignment_expression "peVar6 = ecp_mul_((ec_point *)(*(long *)((long)key + 8) + 0x40),b_00,iVar4)" identifier = (call_expression "ecp_mul_((ec_point *)(*(long *)((long)key + 8) + 0x40),b_00,iVar4)" identifier (argument_list "((ec_point *)(*(long *)((long)key + 8) + 0x40),b_00,iVar4)" ( (cast_expression "(ec_point *)(*(long *)((long)key + 8) + 0x40)" ( (type_descriptor "ec_point *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)((long)key + 8) + 0x40)" ( (binary_expression "*(long *)((long)key + 8) + 0x40" (pointer_expression "*(long *)((long)key + 8)" * (cast_expression "(long *)((long)key + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)key + 8)" ( (binary_expression "(long)key + 8" (cast_expression "(long)key" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) ))) , identifier , identifier )))) ;) (if_statement "if (peVar6 == (ec_point *)0x0) goto LAB_0013cc19;" if (parenthesized_expression "(peVar6 == (ec_point *)0x0)" ( (binary_expression "peVar6 == (ec_point *)0x0" identifier == (cast_expression "(ec_point *)0x0" ( (type_descriptor "ec_point *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0013cc19;" goto statement_identifier ;)) (expression_statement "peVar9 = ecp_mul_((ec_point *)((long)key + 8),b_01,iVar4);" (assignment_expression "peVar9 = ecp_mul_((ec_point *)((long)key + 8),b_01,iVar4)" identifier = (call_expression "ecp_mul_((ec_point *)((long)key + 8),b_01,iVar4)" identifier (argument_list "((ec_point *)((long)key + 8),b_01,iVar4)" ( (cast_expression "(ec_point *)((long)key + 8)" ( (type_descriptor "ec_point *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)key + 8)" ( (binary_expression "(long)key + 8" (cast_expression "(long)key" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))) , identifier , identifier )))) ;) (if_statement "if (peVar9 == (ec_point *)0x0) {\n                      ec_point_free(peVar6);\n                      goto LAB_0013cc19;\n                    }" if (parenthesized_expression "(peVar9 == (ec_point *)0x0)" ( (binary_expression "peVar9 == (ec_point *)0x0" identifier == (cast_expression "(ec_point *)0x0" ( (type_descriptor "ec_point *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      ec_point_free(peVar6);\n                      goto LAB_0013cc19;\n                    }" { (expression_statement "ec_point_free(peVar6);" (call_expression "ec_point_free(peVar6)" identifier (argument_list "(peVar6)" ( identifier ))) ;) (goto_statement "goto LAB_0013cc19;" goto statement_identifier ;) })) (expression_statement "peVar10 = ecp_add(peVar6,peVar9,iVar4);" (assignment_expression "peVar10 = ecp_add(peVar6,peVar9,iVar4)" identifier = (call_expression "ecp_add(peVar6,peVar9,iVar4)" identifier (argument_list "(peVar6,peVar9,iVar4)" ( identifier , identifier , identifier )))) ;) (expression_statement "ec_point_free(peVar6);" (call_expression "ec_point_free(peVar6)" identifier (argument_list "(peVar6)" ( identifier ))) ;) (expression_statement "ec_point_free(peVar9);" (call_expression "ec_point_free(peVar9)" identifier (argument_list "(peVar9)" ( identifier ))) ;) (expression_statement "iVar4 = ecp_normalise(peVar10);" (assignment_expression "iVar4 = ecp_normalise(peVar10)" identifier = (call_expression "ecp_normalise(peVar10)" identifier (argument_list "(peVar10)" ( identifier )))) ;) (if_statement "if (iVar4 == 0) {\n                      ec_point_free(peVar10);\n                      goto LAB_0013cc19;\n                    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                      ec_point_free(peVar10);\n                      goto LAB_0013cc19;\n                    }" { (expression_statement "ec_point_free(peVar10);" (call_expression "ec_point_free(peVar10)" identifier (argument_list "(peVar10)" ( identifier ))) ;) (goto_statement "goto LAB_0013cc19;" goto statement_identifier ;) })) (expression_statement "freebn(b_00);" (call_expression "freebn(b_00)" identifier (argument_list "(b_00)" ( identifier ))) ;) (expression_statement "freebn(b_01);" (call_expression "freebn(b_01)" identifier (argument_list "(b_01)" ( identifier ))) ;) (if_statement "if (peVar10 != (ec_point *)0x0) {\n                      pBVar13 = bigmod((Bignum_conflict)peVar10->x,\n                                       *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                      ec_point_free(peVar10);\n                      iVar4 = bignum_cmp(pBVar7,pBVar13);\n                      uVar3 = (uint)(iVar4 == 0);\n                      freebn(pBVar13);\n                      freebn(pBVar12);\n                      goto LAB_0013c99e;\n                    }" if (parenthesized_expression "(peVar10 != (ec_point *)0x0)" ( (binary_expression "peVar10 != (ec_point *)0x0" identifier != (cast_expression "(ec_point *)0x0" ( (type_descriptor "ec_point *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      pBVar13 = bigmod((Bignum_conflict)peVar10->x,\n                                       *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));\n                      ec_point_free(peVar10);\n                      iVar4 = bignum_cmp(pBVar7,pBVar13);\n                      uVar3 = (uint)(iVar4 == 0);\n                      freebn(pBVar13);\n                      freebn(pBVar12);\n                      goto LAB_0013c99e;\n                    }" { (expression_statement "pBVar13 = bigmod((Bignum_conflict)peVar10->x,\n                                       *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38));" (assignment_expression "pBVar13 = bigmod((Bignum_conflict)peVar10->x,\n                                       *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38))" identifier = (call_expression "bigmod((Bignum_conflict)peVar10->x,\n                                       *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38))" identifier (argument_list "((Bignum_conflict)peVar10->x,\n                                       *(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38))" ( (cast_expression "(Bignum_conflict)peVar10->x" ( (type_descriptor "Bignum_conflict" type_identifier) ) (field_expression "peVar10->x" identifier -> field_identifier)) , (pointer_expression "*(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)" * (cast_expression "(Bignum_conflict *)(*(long *)((long)key + 8) + 0x38)" ( (type_descriptor "Bignum_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)((long)key + 8) + 0x38)" ( (binary_expression "*(long *)((long)key + 8) + 0x38" (pointer_expression "*(long *)((long)key + 8)" * (cast_expression "(long *)((long)key + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)key + 8)" ( (binary_expression "(long)key + 8" (cast_expression "(long)key" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) )))) )))) ;) (expression_statement "ec_point_free(peVar10);" (call_expression "ec_point_free(peVar10)" identifier (argument_list "(peVar10)" ( identifier ))) ;) (expression_statement "iVar4 = bignum_cmp(pBVar7,pBVar13);" (assignment_expression "iVar4 = bignum_cmp(pBVar7,pBVar13)" identifier = (call_expression "bignum_cmp(pBVar7,pBVar13)" identifier (argument_list "(pBVar7,pBVar13)" ( identifier , identifier )))) ;) (expression_statement "uVar3 = (uint)(iVar4 == 0);" (assignment_expression "uVar3 = (uint)(iVar4 == 0)" identifier = (call_expression "(uint)(iVar4 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )))) ;) (expression_statement "freebn(pBVar13);" (call_expression "freebn(pBVar13)" identifier (argument_list "(pBVar13)" ( identifier ))) ;) (expression_statement "freebn(pBVar12);" (call_expression "freebn(pBVar12)" identifier (argument_list "(pBVar12)" ( identifier ))) ;) (goto_statement "goto LAB_0013c99e;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_0013cc19:\n                    freebn(b_00);\n                    freebn(b_01);\n                  }" else (compound_statement "{\nLAB_0013cc19:\n                    freebn(b_00);\n                    freebn(b_01);\n                  }" { (labeled_statement "LAB_0013cc19:\n                    freebn(b_00);" statement_identifier : (expression_statement "freebn(b_00);" (call_expression "freebn(b_00)" identifier (argument_list "(b_00)" ( identifier ))) ;)) (expression_statement "freebn(b_01);" (call_expression "freebn(b_01)" identifier (argument_list "(b_01)" ( identifier ))) ;) }))) (expression_statement "freebn(pBVar12);" (call_expression "freebn(pBVar12)" identifier (argument_list "(pBVar12)" ( identifier ))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) }))) })) })) })) })) })) (labeled_statement "LAB_0013c99e:\n      freebn(pBVar7);" statement_identifier : (expression_statement "freebn(pBVar7);" (call_expression "freebn(pBVar7)" identifier (argument_list "(pBVar7)" ( identifier ))) ;)) (expression_statement "freebn(pBVar8);" (call_expression "freebn(pBVar8)" identifier (argument_list "(pBVar8)" ( identifier ))) ;) (goto_statement "goto LAB_0013cc52;" goto statement_identifier ;) })) (expression_statement "freebn(pBVar7);" (call_expression "freebn(pBVar7)" identifier (argument_list "(pBVar7)" ( identifier ))) ;) })) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0013cc52:\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar3;\n  }" statement_identifier : (if_statement "if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar3;\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 uVar3;\n  }" { (return_statement "return uVar3;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "uint FUN_0013c5c7(long *param_1,undefined8 param_2,undefined4 param_3,undefined8 param_4,\n                 undefined4 param_5)\n\n{\n  uint uVar1;\n  int *piVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  long lVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  undefined8 uVar13;\n  long lVar14;\n  long in_FS_OFFSET;\n  undefined4 local_1c4;\n  undefined8 local_1c0;\n  byte local_1b5;\n  int local_1b4;\n  long local_1b0;\n  undefined1 local_1a8 [288];\n  undefined1 local_88 [72];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_1c4 = param_3;\n  local_1c0 = param_2;\n  if (param_1[2] == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  if (param_1[3] == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  if (param_1[1] == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  lVar7 = *(long *)(*param_1 + 0x70);\n  FUN_0013ad00(&local_1c0,&local_1c4,&local_1b0,&local_1b4);\n  if (local_1b0 == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  uVar3 = FUN_0010f984(local_1b4,local_1b0,*(undefined8 *)(*param_1 + 0x60));\n  if (uVar3 == 0) goto LAB_0013cc52;\n  FUN_0013ad00(&local_1c0,&local_1c4,&local_1b0,&local_1b4);\n  if (local_1b0 == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  piVar2 = (int *)param_1[1];\n  if (*piVar2 == 2) {\n    if ((((uint)piVar2[6] >> 3) * 2 == local_1b4) && (piVar2[6] == 0x100)) {\n      lVar7 = FUN_00139166(piVar2,0,0,0,0);\n      uVar3 = 0;\n      if (lVar7 != 0) {\n        iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7);\n        if (iVar4 == 0) {\n          FUN_0013b9a8(lVar7);\n          uVar3 = 0;\n        }\n        else {\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }\n      }\n    }\n    else {\n      uVar3 = 0;\n    }\n    goto LAB_0013cc52;\n  }\n  lVar10 = FUN_0013ad88(&local_1b0,&local_1b4);\n  if (lVar10 != 0) {\n    lVar11 = FUN_0013ad88(&local_1b0,&local_1b4);\n    if (lVar11 != 0) {\n      uVar1 = *(uint *)(*(undefined8 **)(lVar7 + 8) + 5);\n      if (0x40 < uVar1) {\n                    \n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }\n      uVar8 = (*(code *)**(undefined8 **)(lVar7 + 8))();\n      (**(code **)(*(long *)(lVar7 + 8) + 0x10))(uVar8,param_4,param_5);\n      (**(code **)(*(long *)(lVar7 + 8) + 0x18))(uVar8,local_88);\n      uVar3 = 0;\n      if (*(int *)param_1[1] == 0) {\n        uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0);\n        if (uVar3 != 0) {\n          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }\nLAB_0013c99e:\n      FUN_00131850(lVar10);\n      FUN_00131850(lVar11);\n      goto LAB_0013cc52;\n    }\n    FUN_00131850(lVar10);\n  }\n  uVar3 = 0;\nLAB_0013cc52:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar3;\n  }\n                    \n  __stack_chk_fail();\n}\n\n" (function_definition "uint FUN_0013c5c7(long *param_1,undefined8 param_2,undefined4 param_3,undefined8 param_4,\n                 undefined4 param_5)\n\n{\n  uint uVar1;\n  int *piVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  long lVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  undefined8 uVar13;\n  long lVar14;\n  long in_FS_OFFSET;\n  undefined4 local_1c4;\n  undefined8 local_1c0;\n  byte local_1b5;\n  int local_1b4;\n  long local_1b0;\n  undefined1 local_1a8 [288];\n  undefined1 local_88 [72];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_1c4 = param_3;\n  local_1c0 = param_2;\n  if (param_1[2] == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  if (param_1[3] == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  if (param_1[1] == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  lVar7 = *(long *)(*param_1 + 0x70);\n  FUN_0013ad00(&local_1c0,&local_1c4,&local_1b0,&local_1b4);\n  if (local_1b0 == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  uVar3 = FUN_0010f984(local_1b4,local_1b0,*(undefined8 *)(*param_1 + 0x60));\n  if (uVar3 == 0) goto LAB_0013cc52;\n  FUN_0013ad00(&local_1c0,&local_1c4,&local_1b0,&local_1b4);\n  if (local_1b0 == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  piVar2 = (int *)param_1[1];\n  if (*piVar2 == 2) {\n    if ((((uint)piVar2[6] >> 3) * 2 == local_1b4) && (piVar2[6] == 0x100)) {\n      lVar7 = FUN_00139166(piVar2,0,0,0,0);\n      uVar3 = 0;\n      if (lVar7 != 0) {\n        iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7);\n        if (iVar4 == 0) {\n          FUN_0013b9a8(lVar7);\n          uVar3 = 0;\n        }\n        else {\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }\n      }\n    }\n    else {\n      uVar3 = 0;\n    }\n    goto LAB_0013cc52;\n  }\n  lVar10 = FUN_0013ad88(&local_1b0,&local_1b4);\n  if (lVar10 != 0) {\n    lVar11 = FUN_0013ad88(&local_1b0,&local_1b4);\n    if (lVar11 != 0) {\n      uVar1 = *(uint *)(*(undefined8 **)(lVar7 + 8) + 5);\n      if (0x40 < uVar1) {\n                    \n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }\n      uVar8 = (*(code *)**(undefined8 **)(lVar7 + 8))();\n      (**(code **)(*(long *)(lVar7 + 8) + 0x10))(uVar8,param_4,param_5);\n      (**(code **)(*(long *)(lVar7 + 8) + 0x18))(uVar8,local_88);\n      uVar3 = 0;\n      if (*(int *)param_1[1] == 0) {\n        uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0);\n        if (uVar3 != 0) {\n          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }\nLAB_0013c99e:\n      FUN_00131850(lVar10);\n      FUN_00131850(lVar11);\n      goto LAB_0013cc52;\n    }\n    FUN_00131850(lVar10);\n  }\n  uVar3 = 0;\nLAB_0013cc52:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar3;\n  }\n                    \n  __stack_chk_fail();\n}" type_identifier (function_declarator "FUN_0013c5c7(long *param_1,undefined8 param_2,undefined4 param_3,undefined8 param_4,\n                 undefined4 param_5)" identifier (parameter_list "(long *param_1,undefined8 param_2,undefined4 param_3,undefined8 param_4,\n                 undefined4 param_5)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  int *piVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  long lVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  undefined8 uVar13;\n  long lVar14;\n  long in_FS_OFFSET;\n  undefined4 local_1c4;\n  undefined8 local_1c0;\n  byte local_1b5;\n  int local_1b4;\n  long local_1b0;\n  undefined1 local_1a8 [288];\n  undefined1 local_88 [72];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_1c4 = param_3;\n  local_1c0 = param_2;\n  if (param_1[2] == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  if (param_1[3] == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  if (param_1[1] == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  lVar7 = *(long *)(*param_1 + 0x70);\n  FUN_0013ad00(&local_1c0,&local_1c4,&local_1b0,&local_1b4);\n  if (local_1b0 == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  uVar3 = FUN_0010f984(local_1b4,local_1b0,*(undefined8 *)(*param_1 + 0x60));\n  if (uVar3 == 0) goto LAB_0013cc52;\n  FUN_0013ad00(&local_1c0,&local_1c4,&local_1b0,&local_1b4);\n  if (local_1b0 == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  piVar2 = (int *)param_1[1];\n  if (*piVar2 == 2) {\n    if ((((uint)piVar2[6] >> 3) * 2 == local_1b4) && (piVar2[6] == 0x100)) {\n      lVar7 = FUN_00139166(piVar2,0,0,0,0);\n      uVar3 = 0;\n      if (lVar7 != 0) {\n        iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7);\n        if (iVar4 == 0) {\n          FUN_0013b9a8(lVar7);\n          uVar3 = 0;\n        }\n        else {\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }\n      }\n    }\n    else {\n      uVar3 = 0;\n    }\n    goto LAB_0013cc52;\n  }\n  lVar10 = FUN_0013ad88(&local_1b0,&local_1b4);\n  if (lVar10 != 0) {\n    lVar11 = FUN_0013ad88(&local_1b0,&local_1b4);\n    if (lVar11 != 0) {\n      uVar1 = *(uint *)(*(undefined8 **)(lVar7 + 8) + 5);\n      if (0x40 < uVar1) {\n                    \n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }\n      uVar8 = (*(code *)**(undefined8 **)(lVar7 + 8))();\n      (**(code **)(*(long *)(lVar7 + 8) + 0x10))(uVar8,param_4,param_5);\n      (**(code **)(*(long *)(lVar7 + 8) + 0x18))(uVar8,local_88);\n      uVar3 = 0;\n      if (*(int *)param_1[1] == 0) {\n        uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0);\n        if (uVar3 != 0) {\n          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }\nLAB_0013c99e:\n      FUN_00131850(lVar10);\n      FUN_00131850(lVar11);\n      goto LAB_0013cc52;\n    }\n    FUN_00131850(lVar10);\n  }\n  uVar3 = 0;\nLAB_0013cc52:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar3;\n  }\n                    \n  __stack_chk_fail();\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar13;" type_identifier identifier ;) (declaration "long lVar14;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined4 local_1c4;" type_identifier identifier ;) (declaration "undefined8 local_1c0;" type_identifier identifier ;) (declaration "byte local_1b5;" type_identifier identifier ;) (declaration "int local_1b4;" primitive_type identifier ;) (declaration "long local_1b0;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 local_1a8 [288];" type_identifier (array_declarator "local_1a8 [288]" identifier [ number_literal ]) ;) (declaration "undefined1 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_1c4 = param_3;" (assignment_expression "local_1c4 = param_3" identifier = identifier) ;) (expression_statement "local_1c0 = param_2;" (assignment_expression "local_1c0 = param_2" identifier = identifier) ;) (if_statement "if (param_1[2] == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" if (parenthesized_expression "(param_1[2] == 0)" ( (binary_expression "param_1[2] == 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" { (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0013cc52;" goto statement_identifier ;) })) (if_statement "if (param_1[3] == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" if (parenthesized_expression "(param_1[3] == 0)" ( (binary_expression "param_1[3] == 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" { (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0013cc52;" goto statement_identifier ;) })) (if_statement "if (param_1[1] == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" if (parenthesized_expression "(param_1[1] == 0)" ( (binary_expression "param_1[1] == 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" { (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0013cc52;" goto statement_identifier ;) })) (expression_statement "lVar7 = *(long *)(*param_1 + 0x70);" (assignment_expression "lVar7 = *(long *)(*param_1 + 0x70)" identifier = (pointer_expression "*(long *)(*param_1 + 0x70)" * (cast_expression "(long *)(*param_1 + 0x70)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x70)" ( (binary_expression "*param_1 + 0x70" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (expression_statement "FUN_0013ad00(&local_1c0,&local_1c4,&local_1b0,&local_1b4);" (call_expression "FUN_0013ad00(&local_1c0,&local_1c4,&local_1b0,&local_1b4)" identifier (argument_list "(&local_1c0,&local_1c4,&local_1b0,&local_1b4)" ( (pointer_expression "&local_1c0" & identifier) , (pointer_expression "&local_1c4" & identifier) , (pointer_expression "&local_1b0" & identifier) , (pointer_expression "&local_1b4" & identifier) ))) ;) (if_statement "if (local_1b0 == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" if (parenthesized_expression "(local_1b0 == 0)" ( (binary_expression "local_1b0 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" { (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0013cc52;" goto statement_identifier ;) })) (expression_statement "uVar3 = FUN_0010f984(local_1b4,local_1b0,*(undefined8 *)(*param_1 + 0x60));" (assignment_expression "uVar3 = FUN_0010f984(local_1b4,local_1b0,*(undefined8 *)(*param_1 + 0x60))" identifier = (call_expression "FUN_0010f984(local_1b4,local_1b0,*(undefined8 *)(*param_1 + 0x60))" identifier (argument_list "(local_1b4,local_1b0,*(undefined8 *)(*param_1 + 0x60))" ( identifier , identifier , (pointer_expression "*(undefined8 *)(*param_1 + 0x60)" * (cast_expression "(undefined8 *)(*param_1 + 0x60)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x60)" ( (binary_expression "*param_1 + 0x60" (pointer_expression "*param_1" * identifier) + number_literal) )))) )))) ;) (if_statement "if (uVar3 == 0) goto LAB_0013cc52;" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013cc52;" goto statement_identifier ;)) (expression_statement "FUN_0013ad00(&local_1c0,&local_1c4,&local_1b0,&local_1b4);" (call_expression "FUN_0013ad00(&local_1c0,&local_1c4,&local_1b0,&local_1b4)" identifier (argument_list "(&local_1c0,&local_1c4,&local_1b0,&local_1b4)" ( (pointer_expression "&local_1c0" & identifier) , (pointer_expression "&local_1c4" & identifier) , (pointer_expression "&local_1b0" & identifier) , (pointer_expression "&local_1b4" & identifier) ))) ;) (if_statement "if (local_1b0 == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" if (parenthesized_expression "(local_1b0 == 0)" ( (binary_expression "local_1b0 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" { (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0013cc52;" goto statement_identifier ;) })) (expression_statement "piVar2 = (int *)param_1[1];" (assignment_expression "piVar2 = (int *)param_1[1]" identifier = (cast_expression "(int *)param_1[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (if_statement "if (*piVar2 == 2) {\n    if ((((uint)piVar2[6] >> 3) * 2 == local_1b4) && (piVar2[6] == 0x100)) {\n      lVar7 = FUN_00139166(piVar2,0,0,0,0);\n      uVar3 = 0;\n      if (lVar7 != 0) {\n        iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7);\n        if (iVar4 == 0) {\n          FUN_0013b9a8(lVar7);\n          uVar3 = 0;\n        }\n        else {\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }\n      }\n    }\n    else {\n      uVar3 = 0;\n    }\n    goto LAB_0013cc52;\n  }" if (parenthesized_expression "(*piVar2 == 2)" ( (binary_expression "*piVar2 == 2" (pointer_expression "*piVar2" * identifier) == number_literal) )) (compound_statement "{\n    if ((((uint)piVar2[6] >> 3) * 2 == local_1b4) && (piVar2[6] == 0x100)) {\n      lVar7 = FUN_00139166(piVar2,0,0,0,0);\n      uVar3 = 0;\n      if (lVar7 != 0) {\n        iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7);\n        if (iVar4 == 0) {\n          FUN_0013b9a8(lVar7);\n          uVar3 = 0;\n        }\n        else {\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }\n      }\n    }\n    else {\n      uVar3 = 0;\n    }\n    goto LAB_0013cc52;\n  }" { (if_statement "if ((((uint)piVar2[6] >> 3) * 2 == local_1b4) && (piVar2[6] == 0x100)) {\n      lVar7 = FUN_00139166(piVar2,0,0,0,0);\n      uVar3 = 0;\n      if (lVar7 != 0) {\n        iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7);\n        if (iVar4 == 0) {\n          FUN_0013b9a8(lVar7);\n          uVar3 = 0;\n        }\n        else {\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }\n      }\n    }\n    else {\n      uVar3 = 0;\n    }" if (parenthesized_expression "((((uint)piVar2[6] >> 3) * 2 == local_1b4) && (piVar2[6] == 0x100))" ( (binary_expression "(((uint)piVar2[6] >> 3) * 2 == local_1b4) && (piVar2[6] == 0x100)" (parenthesized_expression "(((uint)piVar2[6] >> 3) * 2 == local_1b4)" ( (binary_expression "((uint)piVar2[6] >> 3) * 2 == local_1b4" (binary_expression "((uint)piVar2[6] >> 3) * 2" (parenthesized_expression "((uint)piVar2[6] >> 3)" ( (binary_expression "(uint)piVar2[6] >> 3" (cast_expression "(uint)piVar2[6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar2[6]" identifier [ number_literal ])) >> number_literal) )) * number_literal) == identifier) )) && (parenthesized_expression "(piVar2[6] == 0x100)" ( (binary_expression "piVar2[6] == 0x100" (subscript_expression "piVar2[6]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n      lVar7 = FUN_00139166(piVar2,0,0,0,0);\n      uVar3 = 0;\n      if (lVar7 != 0) {\n        iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7);\n        if (iVar4 == 0) {\n          FUN_0013b9a8(lVar7);\n          uVar3 = 0;\n        }\n        else {\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }\n      }\n    }" { (expression_statement "lVar7 = FUN_00139166(piVar2,0,0,0,0);" (assignment_expression "lVar7 = FUN_00139166(piVar2,0,0,0,0)" identifier = (call_expression "FUN_00139166(piVar2,0,0,0,0)" identifier (argument_list "(piVar2,0,0,0,0)" ( identifier , number_literal , number_literal , number_literal , number_literal )))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (if_statement "if (lVar7 != 0) {\n        iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7);\n        if (iVar4 == 0) {\n          FUN_0013b9a8(lVar7);\n          uVar3 = 0;\n        }\n        else {\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "(lVar7 != 0)" ( (binary_expression "lVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7);\n        if (iVar4 == 0) {\n          FUN_0013b9a8(lVar7);\n          uVar3 = 0;\n        }\n        else {\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }\n      }" { (expression_statement "iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7);" (assignment_expression "iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7)" identifier = (call_expression "FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7)" identifier (argument_list "(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7)" ( identifier , (binary_expression "*(uint *)(param_1[1] + 0x18) >> 3" (pointer_expression "*(uint *)(param_1[1] + 0x18)" * (cast_expression "(uint *)(param_1[1] + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + 0x18)" ( (binary_expression "param_1[1] + 0x18" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) )))) >> number_literal) , identifier )))) ;) (if_statement "if (iVar4 == 0) {\n          FUN_0013b9a8(lVar7);\n          uVar3 = 0;\n        }\n        else {\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n          FUN_0013b9a8(lVar7);\n          uVar3 = 0;\n        }" { (expression_statement "FUN_0013b9a8(lVar7);" (call_expression "FUN_0013b9a8(lVar7)" identifier (argument_list "(lVar7)" ( identifier ))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }" else (compound_statement "{\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }" { (expression_statement "uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);" (assignment_expression "uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0)" identifier = (call_expression "FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0)" identifier (argument_list "((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0)" ( (binary_expression "(ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0" (call_expression "(ulong)(*(uint *)(param_1[1] + 0x18) >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(*(uint *)(param_1[1] + 0x18) >> 3)" ( (binary_expression "*(uint *)(param_1[1] + 0x18) >> 3" (pointer_expression "*(uint *)(param_1[1] + 0x18)" * (cast_expression "(uint *)(param_1[1] + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + 0x18)" ( (binary_expression "param_1[1] + 0x18" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) )))) >> number_literal) ))) + identifier) )))) ;) (expression_statement "FUN_00145d73(local_1a8);" (call_expression "FUN_00145d73(local_1a8)" identifier (argument_list "(local_1a8)" ( identifier ))) ;) (expression_statement "FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);" (call_expression "FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3)" identifier (argument_list "(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3)" ( identifier , identifier , (binary_expression "*(uint *)(param_1[1] + 0x18) >> 3" (pointer_expression "*(uint *)(param_1[1] + 0x18)" * (cast_expression "(uint *)(param_1[1] + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + 0x18)" ( (binary_expression "param_1[1] + 0x18" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) )))) >> number_literal) ))) ;) (expression_statement "uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;" (assignment_expression "uVar3 = *(uint *)(param_1[1] + 0x18) >> 3" identifier = (binary_expression "*(uint *)(param_1[1] + 0x18) >> 3" (pointer_expression "*(uint *)(param_1[1] + 0x18)" * (cast_expression "(uint *)(param_1[1] + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + 0x18)" ( (binary_expression "param_1[1] + 0x18" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) )))) >> number_literal)) ;) (if_statement "if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }" if (parenthesized_expression "(uVar3 < 2)" ( (binary_expression "uVar3 < 2" identifier < number_literal) )) (compound_statement "{\n            iVar4 = 0;\n          }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }" else (compound_statement "{\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (do_statement "do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);" do (compound_statement "{\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            }" { (expression_statement "local_1b5 = FUN_00131ea6(param_1[3],iVar4);" (assignment_expression "local_1b5 = FUN_00131ea6(param_1[3],iVar4)" identifier = (call_expression "FUN_00131ea6(param_1[3],iVar4)" identifier (argument_list "(param_1[3],iVar4)" ( (subscript_expression "param_1[3]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "FUN_00145e5b(local_1a8,&local_1b5,1);" (call_expression "FUN_00145e5b(local_1a8,&local_1b5,1)" identifier (argument_list "(local_1a8,&local_1b5,1)" ( identifier , (pointer_expression "&local_1b5" & identifier) , number_literal ))) ;) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar3 - 1 != iVar4)" ( (binary_expression "uVar3 - 1 != iVar4" (binary_expression "uVar3 - 1" identifier - number_literal) != identifier) )) ;) }))) (expression_statement "local_1b5 = FUN_00131ea6(param_1[3],iVar4);" (assignment_expression "local_1b5 = FUN_00131ea6(param_1[3],iVar4)" identifier = (call_expression "FUN_00131ea6(param_1[3],iVar4)" identifier (argument_list "(param_1[3],iVar4)" ( (subscript_expression "param_1[3]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "local_1b5 = local_1b5 & 0x7f;" (assignment_expression "local_1b5 = local_1b5 & 0x7f" identifier = (binary_expression "local_1b5 & 0x7f" identifier & number_literal)) ;) (expression_statement "iVar4 = FUN_00131eed(param_1[2],0);" (assignment_expression "iVar4 = FUN_00131eed(param_1[2],0)" identifier = (call_expression "FUN_00131eed(param_1[2],0)" identifier (argument_list "(param_1[2],0)" ( (subscript_expression "param_1[2]" identifier [ number_literal ]) , number_literal )))) ;) (expression_statement "local_1b5 = local_1b5 | (byte)(iVar4 << 7);" (assignment_expression "local_1b5 = local_1b5 | (byte)(iVar4 << 7)" identifier = (binary_expression "local_1b5 | (byte)(iVar4 << 7)" identifier | (call_expression "(byte)(iVar4 << 7)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(iVar4 << 7)" ( (binary_expression "iVar4 << 7" identifier << number_literal) ))))) ;) (expression_statement "FUN_00145e5b(local_1a8,&local_1b5,1);" (call_expression "FUN_00145e5b(local_1a8,&local_1b5,1)" identifier (argument_list "(local_1a8,&local_1b5,1)" ( identifier , (pointer_expression "&local_1b5" & identifier) , number_literal ))) ;) (expression_statement "FUN_00145e5b(local_1a8,param_4,param_5);" (call_expression "FUN_00145e5b(local_1a8,param_4,param_5)" identifier (argument_list "(local_1a8,param_4,param_5)" ( identifier , identifier , identifier ))) ;) (expression_statement "FUN_0014737f(local_1a8,local_88);" (call_expression "FUN_0014737f(local_1a8,local_88)" identifier (argument_list "(local_1a8,local_88)" ( identifier , identifier ))) ;) (expression_statement "uVar9 = FUN_00131ce3(local_88,0x40);" (assignment_expression "uVar9 = FUN_00131ce3(local_88,0x40)" identifier = (call_expression "FUN_00131ce3(local_88,0x40)" identifier (argument_list "(local_88,0x40)" ( identifier , number_literal )))) ;) (expression_statement "lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);" (assignment_expression "lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8)" identifier = (call_expression "FUN_0013bab7(param_1[1] + 0x38,uVar8)" identifier (argument_list "(param_1[1] + 0x38,uVar8)" ( (binary_expression "param_1[1] + 0x38" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) , identifier )))) ;) (expression_statement "FUN_00131850(uVar8);" (call_expression "FUN_00131850(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))) ;) (if_statement "if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (compound_statement "{\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }" { (expression_statement "FUN_0013b9a8(lVar7);" (call_expression "FUN_0013b9a8(lVar7)" identifier (argument_list "(lVar7)" ( identifier ))) ;) (expression_statement "FUN_00131850(uVar9);" (call_expression "FUN_00131850(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }" else (compound_statement "{\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }" { (expression_statement "lVar11 = FUN_0013bab7(param_1 + 1,uVar9);" (assignment_expression "lVar11 = FUN_0013bab7(param_1 + 1,uVar9)" identifier = (call_expression "FUN_0013bab7(param_1 + 1,uVar9)" identifier (argument_list "(param_1 + 1,uVar9)" ( (binary_expression "param_1 + 1" identifier + number_literal) , identifier )))) ;) (expression_statement "FUN_00131850(uVar9);" (call_expression "FUN_00131850(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) (if_statement "if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (compound_statement "{\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }" { (expression_statement "FUN_0013b9a8(lVar10);" (call_expression "FUN_0013b9a8(lVar10)" identifier (argument_list "(lVar10)" ( identifier ))) ;) (expression_statement "FUN_0013b9a8(lVar7);" (call_expression "FUN_0013b9a8(lVar7)" identifier (argument_list "(lVar7)" ( identifier ))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }" else (compound_statement "{\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }" { (expression_statement "lVar12 = FUN_00139c83(lVar7,lVar11,0);" (assignment_expression "lVar12 = FUN_00139c83(lVar7,lVar11,0)" identifier = (call_expression "FUN_00139c83(lVar7,lVar11,0)" identifier (argument_list "(lVar7,lVar11,0)" ( identifier , identifier , number_literal )))) ;) (expression_statement "FUN_0013b9a8(lVar7);" (call_expression "FUN_0013b9a8(lVar7)" identifier (argument_list "(lVar7)" ( identifier ))) ;) (expression_statement "FUN_0013b9a8(lVar11);" (call_expression "FUN_0013b9a8(lVar11)" identifier (argument_list "(lVar11)" ( identifier ))) ;) (if_statement "if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (compound_statement "{\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }" { (expression_statement "FUN_0013b9a8(lVar10);" (call_expression "FUN_0013b9a8(lVar10)" identifier (argument_list "(lVar10)" ( identifier ))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }" else (compound_statement "{\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }" { (expression_statement "iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));" (assignment_expression "iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8))" identifier = (call_expression "FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8))" identifier (argument_list "(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8))" ( (pointer_expression "*(undefined8 *)(lVar10 + 8)" * (cast_expression "(undefined8 *)(lVar10 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 8)" ( (binary_expression "lVar10 + 8" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(lVar12 + 8)" * (cast_expression "(undefined8 *)(lVar12 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 8)" ( (binary_expression "lVar12 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (if_statement "if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }" { (expression_statement "iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );" (assignment_expression "iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      )" identifier = (call_expression "FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      )" identifier (argument_list "(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      )" ( (pointer_expression "*(undefined8 *)(lVar10 + 0x10)" * (cast_expression "(undefined8 *)(lVar10 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x10)" ( (binary_expression "lVar10 + 0x10" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(lVar12 + 0x10)" * (cast_expression "(undefined8 *)(lVar12 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x10)" ( (binary_expression "lVar12 + 0x10" identifier + number_literal) )))) )))) ;) (expression_statement "uVar3 = (uint)(iVar4 == 0);" (assignment_expression "uVar3 = (uint)(iVar4 == 0)" identifier = (call_expression "(uint)(iVar4 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )))) ;) })) (expression_statement "FUN_0013b9a8(lVar10);" (call_expression "FUN_0013b9a8(lVar10)" identifier (argument_list "(lVar10)" ( identifier ))) ;) (expression_statement "FUN_0013b9a8(lVar12);" (call_expression "FUN_0013b9a8(lVar12)" identifier (argument_list "(lVar12)" ( identifier ))) ;) }))) }))) }))) }))) })) }) (else_clause "else {\n      uVar3 = 0;\n    }" else (compound_statement "{\n      uVar3 = 0;\n    }" { (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) }))) (goto_statement "goto LAB_0013cc52;" goto statement_identifier ;) })) (expression_statement "lVar10 = FUN_0013ad88(&local_1b0,&local_1b4);" (assignment_expression "lVar10 = FUN_0013ad88(&local_1b0,&local_1b4)" identifier = (call_expression "FUN_0013ad88(&local_1b0,&local_1b4)" identifier (argument_list "(&local_1b0,&local_1b4)" ( (pointer_expression "&local_1b0" & identifier) , (pointer_expression "&local_1b4" & identifier) )))) ;) (if_statement "if (lVar10 != 0) {\n    lVar11 = FUN_0013ad88(&local_1b0,&local_1b4);\n    if (lVar11 != 0) {\n      uVar1 = *(uint *)(*(undefined8 **)(lVar7 + 8) + 5);\n      if (0x40 < uVar1) {\n                    \n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }\n      uVar8 = (*(code *)**(undefined8 **)(lVar7 + 8))();\n      (**(code **)(*(long *)(lVar7 + 8) + 0x10))(uVar8,param_4,param_5);\n      (**(code **)(*(long *)(lVar7 + 8) + 0x18))(uVar8,local_88);\n      uVar3 = 0;\n      if (*(int *)param_1[1] == 0) {\n        uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0);\n        if (uVar3 != 0) {\n          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }\nLAB_0013c99e:\n      FUN_00131850(lVar10);\n      FUN_00131850(lVar11);\n      goto LAB_0013cc52;\n    }\n    FUN_00131850(lVar10);\n  }" if (parenthesized_expression "(lVar10 != 0)" ( (binary_expression "lVar10 != 0" identifier != number_literal) )) (compound_statement "{\n    lVar11 = FUN_0013ad88(&local_1b0,&local_1b4);\n    if (lVar11 != 0) {\n      uVar1 = *(uint *)(*(undefined8 **)(lVar7 + 8) + 5);\n      if (0x40 < uVar1) {\n                    \n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }\n      uVar8 = (*(code *)**(undefined8 **)(lVar7 + 8))();\n      (**(code **)(*(long *)(lVar7 + 8) + 0x10))(uVar8,param_4,param_5);\n      (**(code **)(*(long *)(lVar7 + 8) + 0x18))(uVar8,local_88);\n      uVar3 = 0;\n      if (*(int *)param_1[1] == 0) {\n        uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0);\n        if (uVar3 != 0) {\n          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }\nLAB_0013c99e:\n      FUN_00131850(lVar10);\n      FUN_00131850(lVar11);\n      goto LAB_0013cc52;\n    }\n    FUN_00131850(lVar10);\n  }" { (expression_statement "lVar11 = FUN_0013ad88(&local_1b0,&local_1b4);" (assignment_expression "lVar11 = FUN_0013ad88(&local_1b0,&local_1b4)" identifier = (call_expression "FUN_0013ad88(&local_1b0,&local_1b4)" identifier (argument_list "(&local_1b0,&local_1b4)" ( (pointer_expression "&local_1b0" & identifier) , (pointer_expression "&local_1b4" & identifier) )))) ;) (if_statement "if (lVar11 != 0) {\n      uVar1 = *(uint *)(*(undefined8 **)(lVar7 + 8) + 5);\n      if (0x40 < uVar1) {\n                    \n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }\n      uVar8 = (*(code *)**(undefined8 **)(lVar7 + 8))();\n      (**(code **)(*(long *)(lVar7 + 8) + 0x10))(uVar8,param_4,param_5);\n      (**(code **)(*(long *)(lVar7 + 8) + 0x18))(uVar8,local_88);\n      uVar3 = 0;\n      if (*(int *)param_1[1] == 0) {\n        uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0);\n        if (uVar3 != 0) {\n          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }\nLAB_0013c99e:\n      FUN_00131850(lVar10);\n      FUN_00131850(lVar11);\n      goto LAB_0013cc52;\n    }" if (parenthesized_expression "(lVar11 != 0)" ( (binary_expression "lVar11 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar1 = *(uint *)(*(undefined8 **)(lVar7 + 8) + 5);\n      if (0x40 < uVar1) {\n                    \n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }\n      uVar8 = (*(code *)**(undefined8 **)(lVar7 + 8))();\n      (**(code **)(*(long *)(lVar7 + 8) + 0x10))(uVar8,param_4,param_5);\n      (**(code **)(*(long *)(lVar7 + 8) + 0x18))(uVar8,local_88);\n      uVar3 = 0;\n      if (*(int *)param_1[1] == 0) {\n        uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0);\n        if (uVar3 != 0) {\n          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }\nLAB_0013c99e:\n      FUN_00131850(lVar10);\n      FUN_00131850(lVar11);\n      goto LAB_0013cc52;\n    }" { (expression_statement "uVar1 = *(uint *)(*(undefined8 **)(lVar7 + 8) + 5);" (assignment_expression "uVar1 = *(uint *)(*(undefined8 **)(lVar7 + 8) + 5)" identifier = (pointer_expression "*(uint *)(*(undefined8 **)(lVar7 + 8) + 5)" * (cast_expression "(uint *)(*(undefined8 **)(lVar7 + 8) + 5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(undefined8 **)(lVar7 + 8) + 5)" ( (binary_expression "*(undefined8 **)(lVar7 + 8) + 5" (pointer_expression "*(undefined8 **)(lVar7 + 8)" * (cast_expression "(undefined8 **)(lVar7 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar7 + 8)" ( (binary_expression "lVar7 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (0x40 < uVar1) {\n                    \n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }" if (parenthesized_expression "(0x40 < uVar1)" ( (binary_expression "0x40 < uVar1" number_literal < identifier) )) (compound_statement "{\n                    \n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }" { (expression_statement "__assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");" (call_expression "__assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig")" identifier (argument_list "("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig")" ( (string_literal ""digestLen <= sizeof(digest)"" " string_content ") , (string_literal ""sshecc.c"" " string_content ") , number_literal , (string_literal ""ecdsa_verifysig"" " string_content ") ))) ;) })) (expression_statement "uVar8 = (*(code *)**(undefined8 **)(lVar7 + 8))();" (assignment_expression "uVar8 = (*(code *)**(undefined8 **)(lVar7 + 8))()" identifier = (call_expression "(*(code *)**(undefined8 **)(lVar7 + 8))()" (parenthesized_expression "(*(code *)**(undefined8 **)(lVar7 + 8))" ( (pointer_expression "*(code *)**(undefined8 **)(lVar7 + 8)" * (cast_expression "(code *)**(undefined8 **)(lVar7 + 8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined8 **)(lVar7 + 8)" * (pointer_expression "*(undefined8 **)(lVar7 + 8)" * (cast_expression "(undefined8 **)(lVar7 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar7 + 8)" ( (binary_expression "lVar7 + 8" identifier + number_literal) ))))))) )) (argument_list "()" ( )))) ;) (expression_statement "(**(code **)(*(long *)(lVar7 + 8) + 0x10))(uVar8,param_4,param_5);" (call_expression "(**(code **)(*(long *)(lVar7 + 8) + 0x10))(uVar8,param_4,param_5)" (parenthesized_expression "(**(code **)(*(long *)(lVar7 + 8) + 0x10))" ( (pointer_expression "**(code **)(*(long *)(lVar7 + 8) + 0x10)" * (pointer_expression "*(code **)(*(long *)(lVar7 + 8) + 0x10)" * (cast_expression "(code **)(*(long *)(lVar7 + 8) + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(lVar7 + 8) + 0x10)" ( (binary_expression "*(long *)(lVar7 + 8) + 0x10" (pointer_expression "*(long *)(lVar7 + 8)" * (cast_expression "(long *)(lVar7 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 8)" ( (binary_expression "lVar7 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar8,param_4,param_5)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(*(long *)(lVar7 + 8) + 0x18))(uVar8,local_88);" (call_expression "(**(code **)(*(long *)(lVar7 + 8) + 0x18))(uVar8,local_88)" (parenthesized_expression "(**(code **)(*(long *)(lVar7 + 8) + 0x18))" ( (pointer_expression "**(code **)(*(long *)(lVar7 + 8) + 0x18)" * (pointer_expression "*(code **)(*(long *)(lVar7 + 8) + 0x18)" * (cast_expression "(code **)(*(long *)(lVar7 + 8) + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(lVar7 + 8) + 0x18)" ( (binary_expression "*(long *)(lVar7 + 8) + 0x18" (pointer_expression "*(long *)(lVar7 + 8)" * (cast_expression "(long *)(lVar7 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 8)" ( (binary_expression "lVar7 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar8,local_88)" ( identifier , identifier ))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (if_statement "if (*(int *)param_1[1] == 0) {\n        uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0);\n        if (uVar3 != 0) {\n          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "(*(int *)param_1[1] == 0)" ( (binary_expression "*(int *)param_1[1] == 0" (pointer_expression "*(int *)param_1[1]" * (cast_expression "(int *)param_1[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) == number_literal) )) (compound_statement "{\n        uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0);\n        if (uVar3 != 0) {\n          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }" { (expression_statement "uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0);" (assignment_expression "uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0)" identifier = (call_expression "FUN_00132034(lVar10,PTR_DAT_001822f0)" identifier (argument_list "(lVar10,PTR_DAT_001822f0)" ( identifier , identifier )))) ;) (if_statement "if (uVar3 != 0) {\n          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }" { (expression_statement "iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));" (assignment_expression "iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38))" identifier = (call_expression "FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38))" identifier (argument_list "(lVar10,*(undefined8 *)(param_1[1] + 0x38))" ( identifier , (pointer_expression "*(undefined8 *)(param_1[1] + 0x38)" * (cast_expression "(undefined8 *)(param_1[1] + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + 0x38)" ( (binary_expression "param_1[1] + 0x38" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) )))) )))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (if_statement "if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }" { (expression_statement "uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);" (assignment_expression "uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0)" identifier = (call_expression "FUN_00132034(lVar11,PTR_DAT_001822f0)" identifier (argument_list "(lVar11,PTR_DAT_001822f0)" ( identifier , identifier )))) ;) (if_statement "if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }" { (expression_statement "iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));" (assignment_expression "iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38))" identifier = (call_expression "FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38))" identifier (argument_list "(lVar11,*(undefined8 *)(param_1[1] + 0x38))" ( identifier , (pointer_expression "*(undefined8 *)(param_1[1] + 0x38)" * (cast_expression "(undefined8 *)(param_1[1] + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + 0x38)" ( (binary_expression "param_1[1] + 0x38" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) )))) )))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (if_statement "if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }" { (expression_statement "uVar9 = FUN_00131c11(local_88,uVar1);" (assignment_expression "uVar9 = FUN_00131c11(local_88,uVar1)" identifier = (call_expression "FUN_00131c11(local_88,uVar1)" identifier (argument_list "(local_88,uVar1)" ( identifier , identifier )))) ;) (expression_statement "iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));" (assignment_expression "iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38))" identifier = (call_expression "FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38))" identifier (argument_list "(*(undefined8 *)(param_1[1] + 0x38))" ( (pointer_expression "*(undefined8 *)(param_1[1] + 0x38)" * (cast_expression "(undefined8 *)(param_1[1] + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + 0x38)" ( (binary_expression "param_1[1] + 0x38" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) )))) )))) ;) (expression_statement "iVar5 = FUN_00131e13(uVar9);" (assignment_expression "iVar5 = FUN_00131e13(uVar9)" identifier = (call_expression "FUN_00131e13(uVar9)" identifier (argument_list "(uVar9)" ( identifier )))) ;) (expression_statement "uVar8 = uVar9;" (assignment_expression "uVar8 = uVar9" identifier = identifier) ;) (if_statement "if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }" if (parenthesized_expression "(iVar4 < iVar5)" ( (binary_expression "iVar4 < iVar5" identifier < identifier) )) (compound_statement "{\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }" { (expression_statement "uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);" (assignment_expression "uVar8 = FUN_00132271(uVar9,iVar5 - iVar4)" identifier = (call_expression "FUN_00132271(uVar9,iVar5 - iVar4)" identifier (argument_list "(uVar9,iVar5 - iVar4)" ( identifier , (binary_expression "iVar5 - iVar4" identifier - identifier) )))) ;) (expression_statement "FUN_00131850(uVar9);" (call_expression "FUN_00131850(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) })) (expression_statement "uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));" (assignment_expression "uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38))" identifier = (call_expression "FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38))" identifier (argument_list "(uVar8,*(undefined8 *)(param_1[1] + 0x38))" ( identifier , (pointer_expression "*(undefined8 *)(param_1[1] + 0x38)" * (cast_expression "(undefined8 *)(param_1[1] + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + 0x38)" ( (binary_expression "param_1[1] + 0x38" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) )))) )))) ;) (expression_statement "FUN_00131850(uVar8);" (call_expression "FUN_00131850(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))) ;) (expression_statement "lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));" (assignment_expression "lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38))" identifier = (call_expression "FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38))" identifier (argument_list "(lVar11,*(undefined8 *)(param_1[1] + 0x38))" ( identifier , (pointer_expression "*(undefined8 *)(param_1[1] + 0x38)" * (cast_expression "(undefined8 *)(param_1[1] + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + 0x38)" ( (binary_expression "param_1[1] + 0x38" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) )))) )))) ;) (if_statement "if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }" { (expression_statement "FUN_00131850(uVar9);" (call_expression "FUN_00131850(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }" else (compound_statement "{\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }" { (expression_statement "uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));" (assignment_expression "uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38))" identifier = (call_expression "FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38))" identifier (argument_list "(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38))" ( identifier , identifier , (pointer_expression "*(undefined8 *)(param_1[1] + 0x38)" * (cast_expression "(undefined8 *)(param_1[1] + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + 0x38)" ( (binary_expression "param_1[1] + 0x38" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) )))) )))) ;) (expression_statement "uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));" (assignment_expression "uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38))" identifier = (call_expression "FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38))" identifier (argument_list "(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38))" ( identifier , identifier , (pointer_expression "*(undefined8 *)(param_1[1] + 0x38)" * (cast_expression "(undefined8 *)(param_1[1] + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + 0x38)" ( (binary_expression "param_1[1] + 0x38" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) )))) )))) ;) (expression_statement "FUN_00131850(lVar7);" (call_expression "FUN_00131850(lVar7)" identifier (argument_list "(lVar7)" ( identifier ))) ;) (if_statement "if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }" if (parenthesized_expression "(*(int *)param_1[1] == 0)" ( (binary_expression "*(int *)param_1[1] == 0" (pointer_expression "*(int *)param_1[1]" * (cast_expression "(int *)param_1[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) == number_literal) )) (compound_statement "{\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }" { (expression_statement "uVar6 = FUN_0013911b();" (assignment_expression "uVar6 = FUN_0013911b()" identifier = (call_expression "FUN_0013911b()" identifier (argument_list "()" ( )))) ;) (expression_statement "lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);" (assignment_expression "lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6)" identifier = (call_expression "FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6)" identifier (argument_list "(param_1[1] + 0x40,uVar8,uVar6)" ( (binary_expression "param_1[1] + 0x40" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) , identifier , identifier )))) ;) (if_statement "if (lVar7 == 0) goto LAB_0013cc19;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013cc19;" goto statement_identifier ;)) (expression_statement "lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);" (assignment_expression "lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6)" identifier = (call_expression "FUN_0013b9f1(param_1 + 1,uVar13,uVar6)" identifier (argument_list "(param_1 + 1,uVar13,uVar6)" ( (binary_expression "param_1 + 1" identifier + number_literal) , identifier , identifier )))) ;) (if_statement "if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (compound_statement "{\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }" { (expression_statement "FUN_0013b9a8(lVar7);" (call_expression "FUN_0013b9a8(lVar7)" identifier (argument_list "(lVar7)" ( identifier ))) ;) (goto_statement "goto LAB_0013cc19;" goto statement_identifier ;) })) (expression_statement "lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);" (assignment_expression "lVar14 = FUN_00139c83(lVar7,lVar12,uVar6)" identifier = (call_expression "FUN_00139c83(lVar7,lVar12,uVar6)" identifier (argument_list "(lVar7,lVar12,uVar6)" ( identifier , identifier , identifier )))) ;) (expression_statement "FUN_0013b9a8(lVar7);" (call_expression "FUN_0013b9a8(lVar7)" identifier (argument_list "(lVar7)" ( identifier ))) ;) (expression_statement "FUN_0013b9a8(lVar12);" (call_expression "FUN_0013b9a8(lVar12)" identifier (argument_list "(lVar12)" ( identifier ))) ;) (expression_statement "iVar4 = FUN_00139232(lVar14);" (assignment_expression "iVar4 = FUN_00139232(lVar14)" identifier = (call_expression "FUN_00139232(lVar14)" identifier (argument_list "(lVar14)" ( identifier )))) ;) (if_statement "if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }" { (expression_statement "FUN_0013b9a8(lVar14);" (call_expression "FUN_0013b9a8(lVar14)" identifier (argument_list "(lVar14)" ( identifier ))) ;) (goto_statement "goto LAB_0013cc19;" goto statement_identifier ;) })) (expression_statement "FUN_00131850(uVar8);" (call_expression "FUN_00131850(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))) ;) (expression_statement "FUN_00131850(uVar13);" (call_expression "FUN_00131850(uVar13)" identifier (argument_list "(uVar13)" ( identifier ))) ;) (if_statement "if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }" if (parenthesized_expression "(lVar14 != 0)" ( (binary_expression "lVar14 != 0" identifier != number_literal) )) (compound_statement "{\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }" { (expression_statement "uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));" (assignment_expression "uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38))" identifier = (call_expression "FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38))" identifier (argument_list "(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38))" ( (pointer_expression "*(undefined8 *)(lVar14 + 8)" * (cast_expression "(undefined8 *)(lVar14 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 8)" ( (binary_expression "lVar14 + 8" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(param_1[1] + 0x38)" * (cast_expression "(undefined8 *)(param_1[1] + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + 0x38)" ( (binary_expression "param_1[1] + 0x38" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) )))) )))) ;) (expression_statement "FUN_0013b9a8(lVar14);" (call_expression "FUN_0013b9a8(lVar14)" identifier (argument_list "(lVar14)" ( identifier ))) ;) (expression_statement "iVar4 = FUN_00132034(lVar10,uVar8);" (assignment_expression "iVar4 = FUN_00132034(lVar10,uVar8)" identifier = (call_expression "FUN_00132034(lVar10,uVar8)" identifier (argument_list "(lVar10,uVar8)" ( identifier , identifier )))) ;) (expression_statement "uVar3 = (uint)(iVar4 == 0);" (assignment_expression "uVar3 = (uint)(iVar4 == 0)" identifier = (call_expression "(uint)(iVar4 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )))) ;) (expression_statement "FUN_00131850(uVar8);" (call_expression "FUN_00131850(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))) ;) (expression_statement "FUN_00131850(uVar9);" (call_expression "FUN_00131850(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) (goto_statement "goto LAB_0013c99e;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }" else (compound_statement "{\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }" { (labeled_statement "LAB_0013cc19:\n                    FUN_00131850(uVar8);" statement_identifier : (expression_statement "FUN_00131850(uVar8);" (call_expression "FUN_00131850(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))) ;)) (expression_statement "FUN_00131850(uVar13);" (call_expression "FUN_00131850(uVar13)" identifier (argument_list "(uVar13)" ( identifier ))) ;) }))) (expression_statement "FUN_00131850(uVar9);" (call_expression "FUN_00131850(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) }))) })) })) })) })) })) (labeled_statement "LAB_0013c99e:\n      FUN_00131850(lVar10);" statement_identifier : (expression_statement "FUN_00131850(lVar10);" (call_expression "FUN_00131850(lVar10)" identifier (argument_list "(lVar10)" ( identifier ))) ;)) (expression_statement "FUN_00131850(lVar11);" (call_expression "FUN_00131850(lVar11)" identifier (argument_list "(lVar11)" ( identifier ))) ;) (goto_statement "goto LAB_0013cc52;" goto statement_identifier ;) })) (expression_statement "FUN_00131850(lVar10);" (call_expression "FUN_00131850(lVar10)" identifier (argument_list "(lVar10)" ( identifier ))) ;) })) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0013cc52:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar3;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar3;\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 uVar3;\n  }" { (return_statement "return uVar3;" return identifier ;) }))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (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 (pointer_expression * IDENT) + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> LIT) )) * LIT) == IDENT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , LIT , LIT )))) ;) (expression_statement (assignment_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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) >> LIT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) >> LIT) ))) + IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) >> LIT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) != IDENT) )) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (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) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (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) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) }))) }))) }))) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) )) (argument_list ( )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (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 (subscript_expression IDENT [ LIT ]) + LIT) )))) )))) ;) (expression_statement (assignment_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 , IDENT )))) ;) (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 (subscript_expression IDENT [ LIT ]) + LIT) )))) )))) ;) (expression_statement (assignment_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 , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT - IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (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 (subscript_expression IDENT [ LIT ]) + LIT) )))) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (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 (subscript_expression IDENT [ LIT ]) + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (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 (subscript_expression IDENT [ LIT ]) + 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 (subscript_expression IDENT [ LIT ]) + LIT) )))) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (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) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (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 (assignment_expression IDENT = LIT) ;) }))) })) })) })) })) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "uint FUN_0013c5c7(long *param_1,undefined8 param_2,undefined4 param_3,undefined8 param_4,\n                 undefined4 param_5)\n\n{\n  uint uVar1;\n  int *piVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  long lVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  undefined8 uVar13;\n  long lVar14;\n  long in_FS_OFFSET;\n  undefined4 local_1c4;\n  undefined8 local_1c0;\n  byte local_1b5;\n  int local_1b4;\n  long local_1b0;\n  undefined1 local_1a8 [288];\n  undefined1 local_88 [72];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_1c4 = param_3;\n  local_1c0 = param_2;\n  if (param_1[2] == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  if (param_1[3] == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  if (param_1[1] == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  lVar7 = *(long *)(*param_1 + 0x70);\n  FUN_0013ad00(&local_1c0,&local_1c4,&local_1b0,&local_1b4);\n  if (local_1b0 == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  uVar3 = FUN_0010f984(local_1b4,local_1b0,*(undefined8 *)(*param_1 + 0x60));\n  if (uVar3 == 0) goto LAB_0013cc52;\n  FUN_0013ad00(&local_1c0,&local_1c4,&local_1b0,&local_1b4);\n  if (local_1b0 == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  piVar2 = (int *)param_1[1];\n  if (*piVar2 == 2) {\n    if ((((uint)piVar2[6] >> 3) * 2 == local_1b4) && (piVar2[6] == 0x100)) {\n      lVar7 = FUN_00139166(piVar2,0,0,0,0);\n      uVar3 = 0;\n      if (lVar7 != 0) {\n        iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7);\n        if (iVar4 == 0) {\n          FUN_0013b9a8(lVar7);\n          uVar3 = 0;\n        }\n        else {\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }\n      }\n    }\n    else {\n      uVar3 = 0;\n    }\n    goto LAB_0013cc52;\n  }\n  lVar10 = FUN_0013ad88(&local_1b0,&local_1b4);\n  if (lVar10 != 0) {\n    lVar11 = FUN_0013ad88(&local_1b0,&local_1b4);\n    if (lVar11 != 0) {\n      uVar1 = *(uint *)(*(undefined8 **)(lVar7 + 8) + 5);\n      if (0x40 < uVar1) {\n                    \n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }\n      uVar8 = (*(code *)**(undefined8 **)(lVar7 + 8))();\n      (**(code **)(*(long *)(lVar7 + 8) + 0x10))(uVar8,param_4,param_5);\n      (**(code **)(*(long *)(lVar7 + 8) + 0x18))(uVar8,local_88);\n      uVar3 = 0;\n      if (*(int *)param_1[1] == 0) {\n        uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0);\n        if (uVar3 != 0) {\n          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }\nLAB_0013c99e:\n      FUN_00131850(lVar10);\n      FUN_00131850(lVar11);\n      goto LAB_0013cc52;\n    }\n    FUN_00131850(lVar10);\n  }\n  uVar3 = 0;\nLAB_0013cc52:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar3;\n  }\n                    \n  __stack_chk_fail();\n}" (type_identifier "uint") (function_declarator "FUN_0013c5c7(long *param_1,undefined8 param_2,undefined4 param_3,undefined8 param_4,\n                 undefined4 param_5)" (identifier "FUN_0013c5c7") (parameter_list "(long *param_1,undefined8 param_2,undefined4 param_3,undefined8 param_4,\n                 undefined4 param_5)" (( "(") (parameter_declaration "long *param_1" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined8 param_4" (type_identifier "undefined8") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) () ")"))) (compound_statement "{\n  uint uVar1;\n  int *piVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  long lVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  undefined8 uVar13;\n  long lVar14;\n  long in_FS_OFFSET;\n  undefined4 local_1c4;\n  undefined8 local_1c0;\n  byte local_1b5;\n  int local_1b4;\n  long local_1b0;\n  undefined1 local_1a8 [288];\n  undefined1 local_88 [72];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_1c4 = param_3;\n  local_1c0 = param_2;\n  if (param_1[2] == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  if (param_1[3] == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  if (param_1[1] == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  lVar7 = *(long *)(*param_1 + 0x70);\n  FUN_0013ad00(&local_1c0,&local_1c4,&local_1b0,&local_1b4);\n  if (local_1b0 == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  uVar3 = FUN_0010f984(local_1b4,local_1b0,*(undefined8 *)(*param_1 + 0x60));\n  if (uVar3 == 0) goto LAB_0013cc52;\n  FUN_0013ad00(&local_1c0,&local_1c4,&local_1b0,&local_1b4);\n  if (local_1b0 == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }\n  piVar2 = (int *)param_1[1];\n  if (*piVar2 == 2) {\n    if ((((uint)piVar2[6] >> 3) * 2 == local_1b4) && (piVar2[6] == 0x100)) {\n      lVar7 = FUN_00139166(piVar2,0,0,0,0);\n      uVar3 = 0;\n      if (lVar7 != 0) {\n        iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7);\n        if (iVar4 == 0) {\n          FUN_0013b9a8(lVar7);\n          uVar3 = 0;\n        }\n        else {\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }\n      }\n    }\n    else {\n      uVar3 = 0;\n    }\n    goto LAB_0013cc52;\n  }\n  lVar10 = FUN_0013ad88(&local_1b0,&local_1b4);\n  if (lVar10 != 0) {\n    lVar11 = FUN_0013ad88(&local_1b0,&local_1b4);\n    if (lVar11 != 0) {\n      uVar1 = *(uint *)(*(undefined8 **)(lVar7 + 8) + 5);\n      if (0x40 < uVar1) {\n                    \n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }\n      uVar8 = (*(code *)**(undefined8 **)(lVar7 + 8))();\n      (**(code **)(*(long *)(lVar7 + 8) + 0x10))(uVar8,param_4,param_5);\n      (**(code **)(*(long *)(lVar7 + 8) + 0x18))(uVar8,local_88);\n      uVar3 = 0;\n      if (*(int *)param_1[1] == 0) {\n        uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0);\n        if (uVar3 != 0) {\n          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }\nLAB_0013c99e:\n      FUN_00131850(lVar10);\n      FUN_00131850(lVar11);\n      goto LAB_0013cc52;\n    }\n    FUN_00131850(lVar10);\n  }\n  uVar3 = 0;\nLAB_0013cc52:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar3;\n  }\n                    \n  __stack_chk_fail();\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "long lVar7;" (sized_type_specifier "long" (long "long")) (identifier "lVar7") (; ";")) (declaration "undefined8 uVar8;" (type_identifier "undefined8") (identifier "uVar8") (; ";")) (declaration "undefined8 uVar9;" (type_identifier "undefined8") (identifier "uVar9") (; ";")) (declaration "long lVar10;" (sized_type_specifier "long" (long "long")) (identifier "lVar10") (; ";")) (declaration "long lVar11;" (sized_type_specifier "long" (long "long")) (identifier "lVar11") (; ";")) (declaration "long lVar12;" (sized_type_specifier "long" (long "long")) (identifier "lVar12") (; ";")) (declaration "undefined8 uVar13;" (type_identifier "undefined8") (identifier "uVar13") (; ";")) (declaration "long lVar14;" (sized_type_specifier "long" (long "long")) (identifier "lVar14") (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "undefined4 local_1c4;" (type_identifier "undefined4") (identifier "local_1c4") (; ";")) (declaration "undefined8 local_1c0;" (type_identifier "undefined8") (identifier "local_1c0") (; ";")) (declaration "byte local_1b5;" (type_identifier "byte") (identifier "local_1b5") (; ";")) (declaration "int local_1b4;" (primitive_type "int") (identifier "local_1b4") (; ";")) (declaration "long local_1b0;" (sized_type_specifier "long" (long "long")) (identifier "local_1b0") (; ";")) (declaration "undefined1 local_1a8 [288];" (type_identifier "undefined1") (array_declarator "local_1a8 [288]" (identifier "local_1a8") ([ "[") (number_literal "288") (] "]")) (; ";")) (declaration "undefined1 local_88 [72];" (type_identifier "undefined1") (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_1c4 = param_3;" (assignment_expression "local_1c4 = param_3" (identifier "local_1c4") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_1c0 = param_2;" (assignment_expression "local_1c0 = param_2" (identifier "local_1c0") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (param_1[2] == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" (if "if") (parenthesized_expression "(param_1[2] == 0)" (( "(") (binary_expression "param_1[2] == 0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" ({ "{") (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" (identifier "uVar3") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0013cc52;" (goto "goto") (statement_identifier "LAB_0013cc52") (; ";")) (} "}"))) (if_statement "if (param_1[3] == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" (if "if") (parenthesized_expression "(param_1[3] == 0)" (( "(") (binary_expression "param_1[3] == 0" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" ({ "{") (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" (identifier "uVar3") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0013cc52;" (goto "goto") (statement_identifier "LAB_0013cc52") (; ";")) (} "}"))) (if_statement "if (param_1[1] == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" (if "if") (parenthesized_expression "(param_1[1] == 0)" (( "(") (binary_expression "param_1[1] == 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" ({ "{") (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" (identifier "uVar3") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0013cc52;" (goto "goto") (statement_identifier "LAB_0013cc52") (; ";")) (} "}"))) (expression_statement "lVar7 = *(long *)(*param_1 + 0x70);" (assignment_expression "lVar7 = *(long *)(*param_1 + 0x70)" (identifier "lVar7") (= "=") (pointer_expression "*(long *)(*param_1 + 0x70)" (* "*") (cast_expression "(long *)(*param_1 + 0x70)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x70)" (( "(") (binary_expression "*param_1 + 0x70" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x70")) () ")"))))) (; ";")) (expression_statement "FUN_0013ad00(&local_1c0,&local_1c4,&local_1b0,&local_1b4);" (call_expression "FUN_0013ad00(&local_1c0,&local_1c4,&local_1b0,&local_1b4)" (identifier "FUN_0013ad00") (argument_list "(&local_1c0,&local_1c4,&local_1b0,&local_1b4)" (( "(") (pointer_expression "&local_1c0" (& "&") (identifier "local_1c0")) (, ",") (pointer_expression "&local_1c4" (& "&") (identifier "local_1c4")) (, ",") (pointer_expression "&local_1b0" (& "&") (identifier "local_1b0")) (, ",") (pointer_expression "&local_1b4" (& "&") (identifier "local_1b4")) () ")"))) (; ";")) (if_statement "if (local_1b0 == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" (if "if") (parenthesized_expression "(local_1b0 == 0)" (( "(") (binary_expression "local_1b0 == 0" (identifier "local_1b0") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" ({ "{") (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" (identifier "uVar3") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0013cc52;" (goto "goto") (statement_identifier "LAB_0013cc52") (; ";")) (} "}"))) (expression_statement "uVar3 = FUN_0010f984(local_1b4,local_1b0,*(undefined8 *)(*param_1 + 0x60));" (assignment_expression "uVar3 = FUN_0010f984(local_1b4,local_1b0,*(undefined8 *)(*param_1 + 0x60))" (identifier "uVar3") (= "=") (call_expression "FUN_0010f984(local_1b4,local_1b0,*(undefined8 *)(*param_1 + 0x60))" (identifier "FUN_0010f984") (argument_list "(local_1b4,local_1b0,*(undefined8 *)(*param_1 + 0x60))" (( "(") (identifier "local_1b4") (, ",") (identifier "local_1b0") (, ",") (pointer_expression "*(undefined8 *)(*param_1 + 0x60)" (* "*") (cast_expression "(undefined8 *)(*param_1 + 0x60)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x60)" (( "(") (binary_expression "*param_1 + 0x60" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x60")) () ")")))) () ")")))) (; ";")) (if_statement "if (uVar3 == 0) goto LAB_0013cc52;" (if "if") (parenthesized_expression "(uVar3 == 0)" (( "(") (binary_expression "uVar3 == 0" (identifier "uVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0013cc52;" (goto "goto") (statement_identifier "LAB_0013cc52") (; ";"))) (expression_statement "FUN_0013ad00(&local_1c0,&local_1c4,&local_1b0,&local_1b4);" (call_expression "FUN_0013ad00(&local_1c0,&local_1c4,&local_1b0,&local_1b4)" (identifier "FUN_0013ad00") (argument_list "(&local_1c0,&local_1c4,&local_1b0,&local_1b4)" (( "(") (pointer_expression "&local_1c0" (& "&") (identifier "local_1c0")) (, ",") (pointer_expression "&local_1c4" (& "&") (identifier "local_1c4")) (, ",") (pointer_expression "&local_1b0" (& "&") (identifier "local_1b0")) (, ",") (pointer_expression "&local_1b4" (& "&") (identifier "local_1b4")) () ")"))) (; ";")) (if_statement "if (local_1b0 == 0) {\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" (if "if") (parenthesized_expression "(local_1b0 == 0)" (( "(") (binary_expression "local_1b0 == 0" (identifier "local_1b0") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar3 = 0;\n    goto LAB_0013cc52;\n  }" ({ "{") (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" (identifier "uVar3") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0013cc52;" (goto "goto") (statement_identifier "LAB_0013cc52") (; ";")) (} "}"))) (expression_statement "piVar2 = (int *)param_1[1];" (assignment_expression "piVar2 = (int *)param_1[1]" (identifier "piVar2") (= "=") (cast_expression "(int *)param_1[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if (*piVar2 == 2) {\n    if ((((uint)piVar2[6] >> 3) * 2 == local_1b4) && (piVar2[6] == 0x100)) {\n      lVar7 = FUN_00139166(piVar2,0,0,0,0);\n      uVar3 = 0;\n      if (lVar7 != 0) {\n        iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7);\n        if (iVar4 == 0) {\n          FUN_0013b9a8(lVar7);\n          uVar3 = 0;\n        }\n        else {\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }\n      }\n    }\n    else {\n      uVar3 = 0;\n    }\n    goto LAB_0013cc52;\n  }" (if "if") (parenthesized_expression "(*piVar2 == 2)" (( "(") (binary_expression "*piVar2 == 2" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n    if ((((uint)piVar2[6] >> 3) * 2 == local_1b4) && (piVar2[6] == 0x100)) {\n      lVar7 = FUN_00139166(piVar2,0,0,0,0);\n      uVar3 = 0;\n      if (lVar7 != 0) {\n        iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7);\n        if (iVar4 == 0) {\n          FUN_0013b9a8(lVar7);\n          uVar3 = 0;\n        }\n        else {\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }\n      }\n    }\n    else {\n      uVar3 = 0;\n    }\n    goto LAB_0013cc52;\n  }" ({ "{") (if_statement "if ((((uint)piVar2[6] >> 3) * 2 == local_1b4) && (piVar2[6] == 0x100)) {\n      lVar7 = FUN_00139166(piVar2,0,0,0,0);\n      uVar3 = 0;\n      if (lVar7 != 0) {\n        iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7);\n        if (iVar4 == 0) {\n          FUN_0013b9a8(lVar7);\n          uVar3 = 0;\n        }\n        else {\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }\n      }\n    }\n    else {\n      uVar3 = 0;\n    }" (if "if") (parenthesized_expression "((((uint)piVar2[6] >> 3) * 2 == local_1b4) && (piVar2[6] == 0x100))" (( "(") (binary_expression "(((uint)piVar2[6] >> 3) * 2 == local_1b4) && (piVar2[6] == 0x100)" (parenthesized_expression "(((uint)piVar2[6] >> 3) * 2 == local_1b4)" (( "(") (binary_expression "((uint)piVar2[6] >> 3) * 2 == local_1b4" (binary_expression "((uint)piVar2[6] >> 3) * 2" (parenthesized_expression "((uint)piVar2[6] >> 3)" (( "(") (binary_expression "(uint)piVar2[6] >> 3" (cast_expression "(uint)piVar2[6]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar2[6]" (identifier "piVar2") ([ "[") (number_literal "6") (] "]"))) (>> ">>") (number_literal "3")) () ")")) (* "*") (number_literal "2")) (== "==") (identifier "local_1b4")) () ")")) (&& "&&") (parenthesized_expression "(piVar2[6] == 0x100)" (( "(") (binary_expression "piVar2[6] == 0x100" (subscript_expression "piVar2[6]" (identifier "piVar2") ([ "[") (number_literal "6") (] "]")) (== "==") (number_literal "0x100")) () ")"))) () ")")) (compound_statement "{\n      lVar7 = FUN_00139166(piVar2,0,0,0,0);\n      uVar3 = 0;\n      if (lVar7 != 0) {\n        iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7);\n        if (iVar4 == 0) {\n          FUN_0013b9a8(lVar7);\n          uVar3 = 0;\n        }\n        else {\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }\n      }\n    }" ({ "{") (expression_statement "lVar7 = FUN_00139166(piVar2,0,0,0,0);" (assignment_expression "lVar7 = FUN_00139166(piVar2,0,0,0,0)" (identifier "lVar7") (= "=") (call_expression "FUN_00139166(piVar2,0,0,0,0)" (identifier "FUN_00139166") (argument_list "(piVar2,0,0,0,0)" (( "(") (identifier "piVar2") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" (identifier "uVar3") (= "=") (number_literal "0")) (; ";")) (if_statement "if (lVar7 != 0) {\n        iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7);\n        if (iVar4 == 0) {\n          FUN_0013b9a8(lVar7);\n          uVar3 = 0;\n        }\n        else {\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(lVar7 != 0)" (( "(") (binary_expression "lVar7 != 0" (identifier "lVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7);\n        if (iVar4 == 0) {\n          FUN_0013b9a8(lVar7);\n          uVar3 = 0;\n        }\n        else {\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7);" (assignment_expression "iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7)" (identifier "iVar4") (= "=") (call_expression "FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7)" (identifier "FUN_0013b2ef") (argument_list "(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7)" (( "(") (identifier "local_1b0") (, ",") (binary_expression "*(uint *)(param_1[1] + 0x18) >> 3" (pointer_expression "*(uint *)(param_1[1] + 0x18)" (* "*") (cast_expression "(uint *)(param_1[1] + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[1] + 0x18)" (( "(") (binary_expression "param_1[1] + 0x18" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x18")) () ")")))) (>> ">>") (number_literal "3")) (, ",") (identifier "lVar7") () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n          FUN_0013b9a8(lVar7);\n          uVar3 = 0;\n        }\n        else {\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_0013b9a8(lVar7);\n          uVar3 = 0;\n        }" ({ "{") (expression_statement "FUN_0013b9a8(lVar7);" (call_expression "FUN_0013b9a8(lVar7)" (identifier "FUN_0013b9a8") (argument_list "(lVar7)" (( "(") (identifier "lVar7") () ")"))) (; ";")) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" (identifier "uVar3") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }" (else "else") (compound_statement "{\n          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);\n          FUN_00145d73(local_1a8);\n          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);\n          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;\n          if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }\n          local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n          local_1b5 = local_1b5 & 0x7f;\n          iVar4 = FUN_00131eed(param_1[2],0);\n          local_1b5 = local_1b5 | (byte)(iVar4 << 7);\n          FUN_00145e5b(local_1a8,&local_1b5,1);\n          FUN_00145e5b(local_1a8,param_4,param_5);\n          FUN_0014737f(local_1a8,local_88);\n          uVar9 = FUN_00131ce3(local_88,0x40);\n          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);\n          FUN_00131850(uVar8);\n          if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }\n        }" ({ "{") (expression_statement "uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);" (assignment_expression "uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0)" (identifier "uVar8") (= "=") (call_expression "FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0)" (identifier "FUN_00131ce3") (argument_list "((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0)" (( "(") (binary_expression "(ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0" (call_expression "(ulong)(*(uint *)(param_1[1] + 0x18) >> 3)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(*(uint *)(param_1[1] + 0x18) >> 3)" (( "(") (binary_expression "*(uint *)(param_1[1] + 0x18) >> 3" (pointer_expression "*(uint *)(param_1[1] + 0x18)" (* "*") (cast_expression "(uint *)(param_1[1] + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[1] + 0x18)" (( "(") (binary_expression "param_1[1] + 0x18" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x18")) () ")")))) (>> ">>") (number_literal "3")) () ")"))) (+ "+") (identifier "local_1b0")) () ")")))) (; ";")) (expression_statement "FUN_00145d73(local_1a8);" (call_expression "FUN_00145d73(local_1a8)" (identifier "FUN_00145d73") (argument_list "(local_1a8)" (( "(") (identifier "local_1a8") () ")"))) (; ";")) (expression_statement "FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);" (call_expression "FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3)" (identifier "FUN_00145e5b") (argument_list "(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3)" (( "(") (identifier "local_1a8") (, ",") (identifier "local_1b0") (, ",") (binary_expression "*(uint *)(param_1[1] + 0x18) >> 3" (pointer_expression "*(uint *)(param_1[1] + 0x18)" (* "*") (cast_expression "(uint *)(param_1[1] + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[1] + 0x18)" (( "(") (binary_expression "param_1[1] + 0x18" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x18")) () ")")))) (>> ">>") (number_literal "3")) () ")"))) (; ";")) (expression_statement "uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;" (assignment_expression "uVar3 = *(uint *)(param_1[1] + 0x18) >> 3" (identifier "uVar3") (= "=") (binary_expression "*(uint *)(param_1[1] + 0x18) >> 3" (pointer_expression "*(uint *)(param_1[1] + 0x18)" (* "*") (cast_expression "(uint *)(param_1[1] + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[1] + 0x18)" (( "(") (binary_expression "param_1[1] + 0x18" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x18")) () ")")))) (>> ">>") (number_literal "3"))) (; ";")) (if_statement "if (uVar3 < 2) {\n            iVar4 = 0;\n          }\n          else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }" (if "if") (parenthesized_expression "(uVar3 < 2)" (( "(") (binary_expression "uVar3 < 2" (identifier "uVar3") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n            iVar4 = 0;\n          }" ({ "{") (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }" (else "else") (compound_statement "{\n            iVar4 = 0;\n            do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);\n          }" ({ "{") (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            } while (uVar3 - 1 != iVar4);" (do "do") (compound_statement "{\n              local_1b5 = FUN_00131ea6(param_1[3],iVar4);\n              FUN_00145e5b(local_1a8,&local_1b5,1);\n              iVar4 = iVar4 + 1;\n            }" ({ "{") (expression_statement "local_1b5 = FUN_00131ea6(param_1[3],iVar4);" (assignment_expression "local_1b5 = FUN_00131ea6(param_1[3],iVar4)" (identifier "local_1b5") (= "=") (call_expression "FUN_00131ea6(param_1[3],iVar4)" (identifier "FUN_00131ea6") (argument_list "(param_1[3],iVar4)" (( "(") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (, ",") (identifier "iVar4") () ")")))) (; ";")) (expression_statement "FUN_00145e5b(local_1a8,&local_1b5,1);" (call_expression "FUN_00145e5b(local_1a8,&local_1b5,1)" (identifier "FUN_00145e5b") (argument_list "(local_1a8,&local_1b5,1)" (( "(") (identifier "local_1a8") (, ",") (pointer_expression "&local_1b5" (& "&") (identifier "local_1b5")) (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar3 - 1 != iVar4)" (( "(") (binary_expression "uVar3 - 1 != iVar4" (binary_expression "uVar3 - 1" (identifier "uVar3") (- "-") (number_literal "1")) (!= "!=") (identifier "iVar4")) () ")")) (; ";")) (} "}")))) (expression_statement "local_1b5 = FUN_00131ea6(param_1[3],iVar4);" (assignment_expression "local_1b5 = FUN_00131ea6(param_1[3],iVar4)" (identifier "local_1b5") (= "=") (call_expression "FUN_00131ea6(param_1[3],iVar4)" (identifier "FUN_00131ea6") (argument_list "(param_1[3],iVar4)" (( "(") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (, ",") (identifier "iVar4") () ")")))) (; ";")) (expression_statement "local_1b5 = local_1b5 & 0x7f;" (assignment_expression "local_1b5 = local_1b5 & 0x7f" (identifier "local_1b5") (= "=") (binary_expression "local_1b5 & 0x7f" (identifier "local_1b5") (& "&") (number_literal "0x7f"))) (; ";")) (expression_statement "iVar4 = FUN_00131eed(param_1[2],0);" (assignment_expression "iVar4 = FUN_00131eed(param_1[2],0)" (identifier "iVar4") (= "=") (call_expression "FUN_00131eed(param_1[2],0)" (identifier "FUN_00131eed") (argument_list "(param_1[2],0)" (( "(") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "local_1b5 = local_1b5 | (byte)(iVar4 << 7);" (assignment_expression "local_1b5 = local_1b5 | (byte)(iVar4 << 7)" (identifier "local_1b5") (= "=") (binary_expression "local_1b5 | (byte)(iVar4 << 7)" (identifier "local_1b5") (| "|") (call_expression "(byte)(iVar4 << 7)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(iVar4 << 7)" (( "(") (binary_expression "iVar4 << 7" (identifier "iVar4") (<< "<<") (number_literal "7")) () ")"))))) (; ";")) (expression_statement "FUN_00145e5b(local_1a8,&local_1b5,1);" (call_expression "FUN_00145e5b(local_1a8,&local_1b5,1)" (identifier "FUN_00145e5b") (argument_list "(local_1a8,&local_1b5,1)" (( "(") (identifier "local_1a8") (, ",") (pointer_expression "&local_1b5" (& "&") (identifier "local_1b5")) (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "FUN_00145e5b(local_1a8,param_4,param_5);" (call_expression "FUN_00145e5b(local_1a8,param_4,param_5)" (identifier "FUN_00145e5b") (argument_list "(local_1a8,param_4,param_5)" (( "(") (identifier "local_1a8") (, ",") (identifier "param_4") (, ",") (identifier "param_5") () ")"))) (; ";")) (expression_statement "FUN_0014737f(local_1a8,local_88);" (call_expression "FUN_0014737f(local_1a8,local_88)" (identifier "FUN_0014737f") (argument_list "(local_1a8,local_88)" (( "(") (identifier "local_1a8") (, ",") (identifier "local_88") () ")"))) (; ";")) (expression_statement "uVar9 = FUN_00131ce3(local_88,0x40);" (assignment_expression "uVar9 = FUN_00131ce3(local_88,0x40)" (identifier "uVar9") (= "=") (call_expression "FUN_00131ce3(local_88,0x40)" (identifier "FUN_00131ce3") (argument_list "(local_88,0x40)" (( "(") (identifier "local_88") (, ",") (number_literal "0x40") () ")")))) (; ";")) (expression_statement "lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);" (assignment_expression "lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8)" (identifier "lVar10") (= "=") (call_expression "FUN_0013bab7(param_1[1] + 0x38,uVar8)" (identifier "FUN_0013bab7") (argument_list "(param_1[1] + 0x38,uVar8)" (( "(") (binary_expression "param_1[1] + 0x38" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x38")) (, ",") (identifier "uVar8") () ")")))) (; ";")) (expression_statement "FUN_00131850(uVar8);" (call_expression "FUN_00131850(uVar8)" (identifier "FUN_00131850") (argument_list "(uVar8)" (( "(") (identifier "uVar8") () ")"))) (; ";")) (if_statement "if (lVar10 == 0) {\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }\n          else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            FUN_0013b9a8(lVar7);\n            FUN_00131850(uVar9);\n            uVar3 = 0;\n          }" ({ "{") (expression_statement "FUN_0013b9a8(lVar7);" (call_expression "FUN_0013b9a8(lVar7)" (identifier "FUN_0013b9a8") (argument_list "(lVar7)" (( "(") (identifier "lVar7") () ")"))) (; ";")) (expression_statement "FUN_00131850(uVar9);" (call_expression "FUN_00131850(uVar9)" (identifier "FUN_00131850") (argument_list "(uVar9)" (( "(") (identifier "uVar9") () ")"))) (; ";")) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" (identifier "uVar3") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }" (else "else") (compound_statement "{\n            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);\n            FUN_00131850(uVar9);\n            if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }\n          }" ({ "{") (expression_statement "lVar11 = FUN_0013bab7(param_1 + 1,uVar9);" (assignment_expression "lVar11 = FUN_0013bab7(param_1 + 1,uVar9)" (identifier "lVar11") (= "=") (call_expression "FUN_0013bab7(param_1 + 1,uVar9)" (identifier "FUN_0013bab7") (argument_list "(param_1 + 1,uVar9)" (( "(") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1")) (, ",") (identifier "uVar9") () ")")))) (; ";")) (expression_statement "FUN_00131850(uVar9);" (call_expression "FUN_00131850(uVar9)" (identifier "FUN_00131850") (argument_list "(uVar9)" (( "(") (identifier "uVar9") () ")"))) (; ";")) (if_statement "if (lVar11 == 0) {\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }\n            else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }" (if "if") (parenthesized_expression "(lVar11 == 0)" (( "(") (binary_expression "lVar11 == 0" (identifier "lVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              FUN_0013b9a8(lVar10);\n              FUN_0013b9a8(lVar7);\n              uVar3 = 0;\n            }" ({ "{") (expression_statement "FUN_0013b9a8(lVar10);" (call_expression "FUN_0013b9a8(lVar10)" (identifier "FUN_0013b9a8") (argument_list "(lVar10)" (( "(") (identifier "lVar10") () ")"))) (; ";")) (expression_statement "FUN_0013b9a8(lVar7);" (call_expression "FUN_0013b9a8(lVar7)" (identifier "FUN_0013b9a8") (argument_list "(lVar7)" (( "(") (identifier "lVar7") () ")"))) (; ";")) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" (identifier "uVar3") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }" (else "else") (compound_statement "{\n              lVar12 = FUN_00139c83(lVar7,lVar11,0);\n              FUN_0013b9a8(lVar7);\n              FUN_0013b9a8(lVar11);\n              if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }\n            }" ({ "{") (expression_statement "lVar12 = FUN_00139c83(lVar7,lVar11,0);" (assignment_expression "lVar12 = FUN_00139c83(lVar7,lVar11,0)" (identifier "lVar12") (= "=") (call_expression "FUN_00139c83(lVar7,lVar11,0)" (identifier "FUN_00139c83") (argument_list "(lVar7,lVar11,0)" (( "(") (identifier "lVar7") (, ",") (identifier "lVar11") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "FUN_0013b9a8(lVar7);" (call_expression "FUN_0013b9a8(lVar7)" (identifier "FUN_0013b9a8") (argument_list "(lVar7)" (( "(") (identifier "lVar7") () ")"))) (; ";")) (expression_statement "FUN_0013b9a8(lVar11);" (call_expression "FUN_0013b9a8(lVar11)" (identifier "FUN_0013b9a8") (argument_list "(lVar11)" (( "(") (identifier "lVar11") () ")"))) (; ";")) (if_statement "if (lVar12 == 0) {\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }\n              else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }" (if "if") (parenthesized_expression "(lVar12 == 0)" (( "(") (binary_expression "lVar12 == 0" (identifier "lVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                FUN_0013b9a8(lVar10);\n                uVar3 = 0;\n              }" ({ "{") (expression_statement "FUN_0013b9a8(lVar10);" (call_expression "FUN_0013b9a8(lVar10)" (identifier "FUN_0013b9a8") (argument_list "(lVar10)" (( "(") (identifier "lVar10") () ")"))) (; ";")) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" (identifier "uVar3") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }" (else "else") (compound_statement "{\n                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));\n                uVar3 = 0;\n                if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }\n                FUN_0013b9a8(lVar10);\n                FUN_0013b9a8(lVar12);\n              }" ({ "{") (expression_statement "iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));" (assignment_expression "iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8))" (identifier "iVar4") (= "=") (call_expression "FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8))" (identifier "FUN_00132034") (argument_list "(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8))" (( "(") (pointer_expression "*(undefined8 *)(lVar10 + 8)" (* "*") (cast_expression "(undefined8 *)(lVar10 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 8)" (( "(") (binary_expression "lVar10 + 8" (identifier "lVar10") (+ "+") (number_literal "8")) () ")")))) (, ",") (pointer_expression "*(undefined8 *)(lVar12 + 8)" (* "*") (cast_expression "(undefined8 *)(lVar12 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 8)" (( "(") (binary_expression "lVar12 + 8" (identifier "lVar12") (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" (identifier "uVar3") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar4 == 0) {\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );\n                  uVar3 = (uint)(iVar4 == 0);\n                }" ({ "{") (expression_statement "iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      );" (assignment_expression "iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      )" (identifier "iVar4") (= "=") (call_expression "FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      )" (identifier "FUN_00132034") (argument_list "(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)\n                                      )" (( "(") (pointer_expression "*(undefined8 *)(lVar10 + 0x10)" (* "*") (cast_expression "(undefined8 *)(lVar10 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0x10)" (( "(") (binary_expression "lVar10 + 0x10" (identifier "lVar10") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (pointer_expression "*(undefined8 *)(lVar12 + 0x10)" (* "*") (cast_expression "(undefined8 *)(lVar12 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x10)" (( "(") (binary_expression "lVar12 + 0x10" (identifier "lVar12") (+ "+") (number_literal "0x10")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar3 = (uint)(iVar4 == 0);" (assignment_expression "uVar3 = (uint)(iVar4 == 0)" (identifier "uVar3") (= "=") (call_expression "(uint)(iVar4 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")))) (; ";")) (} "}"))) (expression_statement "FUN_0013b9a8(lVar10);" (call_expression "FUN_0013b9a8(lVar10)" (identifier "FUN_0013b9a8") (argument_list "(lVar10)" (( "(") (identifier "lVar10") () ")"))) (; ";")) (expression_statement "FUN_0013b9a8(lVar12);" (call_expression "FUN_0013b9a8(lVar12)" (identifier "FUN_0013b9a8") (argument_list "(lVar12)" (( "(") (identifier "lVar12") () ")"))) (; ";")) (} "}")))) (} "}")))) (} "}")))) (} "}")))) (} "}"))) (} "}")) (else_clause "else {\n      uVar3 = 0;\n    }" (else "else") (compound_statement "{\n      uVar3 = 0;\n    }" ({ "{") (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" (identifier "uVar3") (= "=") (number_literal "0")) (; ";")) (} "}")))) (goto_statement "goto LAB_0013cc52;" (goto "goto") (statement_identifier "LAB_0013cc52") (; ";")) (} "}"))) (expression_statement "lVar10 = FUN_0013ad88(&local_1b0,&local_1b4);" (assignment_expression "lVar10 = FUN_0013ad88(&local_1b0,&local_1b4)" (identifier "lVar10") (= "=") (call_expression "FUN_0013ad88(&local_1b0,&local_1b4)" (identifier "FUN_0013ad88") (argument_list "(&local_1b0,&local_1b4)" (( "(") (pointer_expression "&local_1b0" (& "&") (identifier "local_1b0")) (, ",") (pointer_expression "&local_1b4" (& "&") (identifier "local_1b4")) () ")")))) (; ";")) (if_statement "if (lVar10 != 0) {\n    lVar11 = FUN_0013ad88(&local_1b0,&local_1b4);\n    if (lVar11 != 0) {\n      uVar1 = *(uint *)(*(undefined8 **)(lVar7 + 8) + 5);\n      if (0x40 < uVar1) {\n                    \n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }\n      uVar8 = (*(code *)**(undefined8 **)(lVar7 + 8))();\n      (**(code **)(*(long *)(lVar7 + 8) + 0x10))(uVar8,param_4,param_5);\n      (**(code **)(*(long *)(lVar7 + 8) + 0x18))(uVar8,local_88);\n      uVar3 = 0;\n      if (*(int *)param_1[1] == 0) {\n        uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0);\n        if (uVar3 != 0) {\n          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }\nLAB_0013c99e:\n      FUN_00131850(lVar10);\n      FUN_00131850(lVar11);\n      goto LAB_0013cc52;\n    }\n    FUN_00131850(lVar10);\n  }" (if "if") (parenthesized_expression "(lVar10 != 0)" (( "(") (binary_expression "lVar10 != 0" (identifier "lVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    lVar11 = FUN_0013ad88(&local_1b0,&local_1b4);\n    if (lVar11 != 0) {\n      uVar1 = *(uint *)(*(undefined8 **)(lVar7 + 8) + 5);\n      if (0x40 < uVar1) {\n                    \n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }\n      uVar8 = (*(code *)**(undefined8 **)(lVar7 + 8))();\n      (**(code **)(*(long *)(lVar7 + 8) + 0x10))(uVar8,param_4,param_5);\n      (**(code **)(*(long *)(lVar7 + 8) + 0x18))(uVar8,local_88);\n      uVar3 = 0;\n      if (*(int *)param_1[1] == 0) {\n        uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0);\n        if (uVar3 != 0) {\n          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }\nLAB_0013c99e:\n      FUN_00131850(lVar10);\n      FUN_00131850(lVar11);\n      goto LAB_0013cc52;\n    }\n    FUN_00131850(lVar10);\n  }" ({ "{") (expression_statement "lVar11 = FUN_0013ad88(&local_1b0,&local_1b4);" (assignment_expression "lVar11 = FUN_0013ad88(&local_1b0,&local_1b4)" (identifier "lVar11") (= "=") (call_expression "FUN_0013ad88(&local_1b0,&local_1b4)" (identifier "FUN_0013ad88") (argument_list "(&local_1b0,&local_1b4)" (( "(") (pointer_expression "&local_1b0" (& "&") (identifier "local_1b0")) (, ",") (pointer_expression "&local_1b4" (& "&") (identifier "local_1b4")) () ")")))) (; ";")) (if_statement "if (lVar11 != 0) {\n      uVar1 = *(uint *)(*(undefined8 **)(lVar7 + 8) + 5);\n      if (0x40 < uVar1) {\n                    \n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }\n      uVar8 = (*(code *)**(undefined8 **)(lVar7 + 8))();\n      (**(code **)(*(long *)(lVar7 + 8) + 0x10))(uVar8,param_4,param_5);\n      (**(code **)(*(long *)(lVar7 + 8) + 0x18))(uVar8,local_88);\n      uVar3 = 0;\n      if (*(int *)param_1[1] == 0) {\n        uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0);\n        if (uVar3 != 0) {\n          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }\nLAB_0013c99e:\n      FUN_00131850(lVar10);\n      FUN_00131850(lVar11);\n      goto LAB_0013cc52;\n    }" (if "if") (parenthesized_expression "(lVar11 != 0)" (( "(") (binary_expression "lVar11 != 0" (identifier "lVar11") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar1 = *(uint *)(*(undefined8 **)(lVar7 + 8) + 5);\n      if (0x40 < uVar1) {\n                    \n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }\n      uVar8 = (*(code *)**(undefined8 **)(lVar7 + 8))();\n      (**(code **)(*(long *)(lVar7 + 8) + 0x10))(uVar8,param_4,param_5);\n      (**(code **)(*(long *)(lVar7 + 8) + 0x18))(uVar8,local_88);\n      uVar3 = 0;\n      if (*(int *)param_1[1] == 0) {\n        uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0);\n        if (uVar3 != 0) {\n          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }\nLAB_0013c99e:\n      FUN_00131850(lVar10);\n      FUN_00131850(lVar11);\n      goto LAB_0013cc52;\n    }" ({ "{") (expression_statement "uVar1 = *(uint *)(*(undefined8 **)(lVar7 + 8) + 5);" (assignment_expression "uVar1 = *(uint *)(*(undefined8 **)(lVar7 + 8) + 5)" (identifier "uVar1") (= "=") (pointer_expression "*(uint *)(*(undefined8 **)(lVar7 + 8) + 5)" (* "*") (cast_expression "(uint *)(*(undefined8 **)(lVar7 + 8) + 5)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(undefined8 **)(lVar7 + 8) + 5)" (( "(") (binary_expression "*(undefined8 **)(lVar7 + 8) + 5" (pointer_expression "*(undefined8 **)(lVar7 + 8)" (* "*") (cast_expression "(undefined8 **)(lVar7 + 8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar7 + 8)" (( "(") (binary_expression "lVar7 + 8" (identifier "lVar7") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "5")) () ")"))))) (; ";")) (if_statement "if (0x40 < uVar1) {\n                    \n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }" (if "if") (parenthesized_expression "(0x40 < uVar1)" (( "(") (binary_expression "0x40 < uVar1" (number_literal "0x40") (< "<") (identifier "uVar1")) () ")")) (compound_statement "{\n                    \n        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");\n      }" ({ "{") (expression_statement "__assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");" (call_expression "__assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig")" (identifier "__assert_fail") (argument_list "("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig")" (( "(") (string_literal ""digestLen <= sizeof(digest)"" (" """) (string_content "digestLen <= sizeof(digest)") (" """)) (, ",") (string_literal ""sshecc.c"" (" """) (string_content "sshecc.c") (" """)) (, ",") (number_literal "0x950") (, ",") (string_literal ""ecdsa_verifysig"" (" """) (string_content "ecdsa_verifysig") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar8 = (*(code *)**(undefined8 **)(lVar7 + 8))();" (assignment_expression "uVar8 = (*(code *)**(undefined8 **)(lVar7 + 8))()" (identifier "uVar8") (= "=") (call_expression "(*(code *)**(undefined8 **)(lVar7 + 8))()" (parenthesized_expression "(*(code *)**(undefined8 **)(lVar7 + 8))" (( "(") (pointer_expression "*(code *)**(undefined8 **)(lVar7 + 8)" (* "*") (cast_expression "(code *)**(undefined8 **)(lVar7 + 8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined8 **)(lVar7 + 8)" (* "*") (pointer_expression "*(undefined8 **)(lVar7 + 8)" (* "*") (cast_expression "(undefined8 **)(lVar7 + 8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar7 + 8)" (( "(") (binary_expression "lVar7 + 8" (identifier "lVar7") (+ "+") (number_literal "8")) () ")"))))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "(**(code **)(*(long *)(lVar7 + 8) + 0x10))(uVar8,param_4,param_5);" (call_expression "(**(code **)(*(long *)(lVar7 + 8) + 0x10))(uVar8,param_4,param_5)" (parenthesized_expression "(**(code **)(*(long *)(lVar7 + 8) + 0x10))" (( "(") (pointer_expression "**(code **)(*(long *)(lVar7 + 8) + 0x10)" (* "*") (pointer_expression "*(code **)(*(long *)(lVar7 + 8) + 0x10)" (* "*") (cast_expression "(code **)(*(long *)(lVar7 + 8) + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(lVar7 + 8) + 0x10)" (( "(") (binary_expression "*(long *)(lVar7 + 8) + 0x10" (pointer_expression "*(long *)(lVar7 + 8)" (* "*") (cast_expression "(long *)(lVar7 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar7 + 8)" (( "(") (binary_expression "lVar7 + 8" (identifier "lVar7") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (argument_list "(uVar8,param_4,param_5)" (( "(") (identifier "uVar8") (, ",") (identifier "param_4") (, ",") (identifier "param_5") () ")"))) (; ";")) (expression_statement "(**(code **)(*(long *)(lVar7 + 8) + 0x18))(uVar8,local_88);" (call_expression "(**(code **)(*(long *)(lVar7 + 8) + 0x18))(uVar8,local_88)" (parenthesized_expression "(**(code **)(*(long *)(lVar7 + 8) + 0x18))" (( "(") (pointer_expression "**(code **)(*(long *)(lVar7 + 8) + 0x18)" (* "*") (pointer_expression "*(code **)(*(long *)(lVar7 + 8) + 0x18)" (* "*") (cast_expression "(code **)(*(long *)(lVar7 + 8) + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(lVar7 + 8) + 0x18)" (( "(") (binary_expression "*(long *)(lVar7 + 8) + 0x18" (pointer_expression "*(long *)(lVar7 + 8)" (* "*") (cast_expression "(long *)(lVar7 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar7 + 8)" (( "(") (binary_expression "lVar7 + 8" (identifier "lVar7") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (argument_list "(uVar8,local_88)" (( "(") (identifier "uVar8") (, ",") (identifier "local_88") () ")"))) (; ";")) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" (identifier "uVar3") (= "=") (number_literal "0")) (; ";")) (if_statement "if (*(int *)param_1[1] == 0) {\n        uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0);\n        if (uVar3 != 0) {\n          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(*(int *)param_1[1] == 0)" (( "(") (binary_expression "*(int *)param_1[1] == 0" (pointer_expression "*(int *)param_1[1]" (* "*") (cast_expression "(int *)param_1[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0);\n        if (uVar3 != 0) {\n          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0);" (assignment_expression "uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0)" (identifier "uVar3") (= "=") (call_expression "FUN_00132034(lVar10,PTR_DAT_001822f0)" (identifier "FUN_00132034") (argument_list "(lVar10,PTR_DAT_001822f0)" (( "(") (identifier "lVar10") (, ",") (identifier "PTR_DAT_001822f0") () ")")))) (; ";")) (if_statement "if (uVar3 != 0) {\n          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "(uVar3 != 0)" (( "(") (binary_expression "uVar3 != 0" (identifier "uVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));\n          uVar3 = 0;\n          if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }\n        }" ({ "{") (expression_statement "iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));" (assignment_expression "iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38))" (identifier "iVar4") (= "=") (call_expression "FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38))" (identifier "FUN_00132034") (argument_list "(lVar10,*(undefined8 *)(param_1[1] + 0x38))" (( "(") (identifier "lVar10") (, ",") (pointer_expression "*(undefined8 *)(param_1[1] + 0x38)" (* "*") (cast_expression "(undefined8 *)(param_1[1] + 0x38)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[1] + 0x38)" (( "(") (binary_expression "param_1[1] + 0x38" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x38")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" (identifier "uVar3") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar4 < 0) {\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }" (if "if") (parenthesized_expression "(iVar4 < 0)" (( "(") (binary_expression "iVar4 < 0" (identifier "iVar4") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);\n            if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }\n          }" ({ "{") (expression_statement "uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);" (assignment_expression "uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0)" (identifier "uVar3") (= "=") (call_expression "FUN_00132034(lVar11,PTR_DAT_001822f0)" (identifier "FUN_00132034") (argument_list "(lVar11,PTR_DAT_001822f0)" (( "(") (identifier "lVar11") (, ",") (identifier "PTR_DAT_001822f0") () ")")))) (; ";")) (if_statement "if (uVar3 != 0) {\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }" (if "if") (parenthesized_expression "(uVar3 != 0)" (( "(") (binary_expression "uVar3 != 0" (identifier "uVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n              uVar3 = 0;\n              if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }\n            }" ({ "{") (expression_statement "iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));" (assignment_expression "iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38))" (identifier "iVar4") (= "=") (call_expression "FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38))" (identifier "FUN_00132034") (argument_list "(lVar11,*(undefined8 *)(param_1[1] + 0x38))" (( "(") (identifier "lVar11") (, ",") (pointer_expression "*(undefined8 *)(param_1[1] + 0x38)" (* "*") (cast_expression "(undefined8 *)(param_1[1] + 0x38)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[1] + 0x38)" (( "(") (binary_expression "param_1[1] + 0x38" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x38")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" (identifier "uVar3") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar4 < 0) {\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }" (if "if") (parenthesized_expression "(iVar4 < 0)" (( "(") (binary_expression "iVar4 < 0" (identifier "iVar4") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                uVar9 = FUN_00131c11(local_88,uVar1);\n                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));\n                iVar5 = FUN_00131e13(uVar9);\n                uVar8 = uVar9;\n                if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }\n                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));\n                FUN_00131850(uVar8);\n                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));\n                if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n              }" ({ "{") (expression_statement "uVar9 = FUN_00131c11(local_88,uVar1);" (assignment_expression "uVar9 = FUN_00131c11(local_88,uVar1)" (identifier "uVar9") (= "=") (call_expression "FUN_00131c11(local_88,uVar1)" (identifier "FUN_00131c11") (argument_list "(local_88,uVar1)" (( "(") (identifier "local_88") (, ",") (identifier "uVar1") () ")")))) (; ";")) (expression_statement "iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));" (assignment_expression "iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38))" (identifier "iVar4") (= "=") (call_expression "FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38))" (identifier "FUN_00131e13") (argument_list "(*(undefined8 *)(param_1[1] + 0x38))" (( "(") (pointer_expression "*(undefined8 *)(param_1[1] + 0x38)" (* "*") (cast_expression "(undefined8 *)(param_1[1] + 0x38)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[1] + 0x38)" (( "(") (binary_expression "param_1[1] + 0x38" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x38")) () ")")))) () ")")))) (; ";")) (expression_statement "iVar5 = FUN_00131e13(uVar9);" (assignment_expression "iVar5 = FUN_00131e13(uVar9)" (identifier "iVar5") (= "=") (call_expression "FUN_00131e13(uVar9)" (identifier "FUN_00131e13") (argument_list "(uVar9)" (( "(") (identifier "uVar9") () ")")))) (; ";")) (expression_statement "uVar8 = uVar9;" (assignment_expression "uVar8 = uVar9" (identifier "uVar8") (= "=") (identifier "uVar9")) (; ";")) (if_statement "if (iVar4 < iVar5) {\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }" (if "if") (parenthesized_expression "(iVar4 < iVar5)" (( "(") (binary_expression "iVar4 < iVar5" (identifier "iVar4") (< "<") (identifier "iVar5")) () ")")) (compound_statement "{\n                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);\n                  FUN_00131850(uVar9);\n                }" ({ "{") (expression_statement "uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);" (assignment_expression "uVar8 = FUN_00132271(uVar9,iVar5 - iVar4)" (identifier "uVar8") (= "=") (call_expression "FUN_00132271(uVar9,iVar5 - iVar4)" (identifier "FUN_00132271") (argument_list "(uVar9,iVar5 - iVar4)" (( "(") (identifier "uVar9") (, ",") (binary_expression "iVar5 - iVar4" (identifier "iVar5") (- "-") (identifier "iVar4")) () ")")))) (; ";")) (expression_statement "FUN_00131850(uVar9);" (call_expression "FUN_00131850(uVar9)" (identifier "FUN_00131850") (argument_list "(uVar9)" (( "(") (identifier "uVar9") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));" (assignment_expression "uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38))" (identifier "uVar9") (= "=") (call_expression "FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38))" (identifier "FUN_00132ba8") (argument_list "(uVar8,*(undefined8 *)(param_1[1] + 0x38))" (( "(") (identifier "uVar8") (, ",") (pointer_expression "*(undefined8 *)(param_1[1] + 0x38)" (* "*") (cast_expression "(undefined8 *)(param_1[1] + 0x38)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[1] + 0x38)" (( "(") (binary_expression "param_1[1] + 0x38" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x38")) () ")")))) () ")")))) (; ";")) (expression_statement "FUN_00131850(uVar8);" (call_expression "FUN_00131850(uVar8)" (identifier "FUN_00131850") (argument_list "(uVar8)" (( "(") (identifier "uVar8") () ")"))) (; ";")) (expression_statement "lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));" (assignment_expression "lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38))" (identifier "lVar7") (= "=") (call_expression "FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38))" (identifier "FUN_001331ed") (argument_list "(lVar11,*(undefined8 *)(param_1[1] + 0x38))" (( "(") (identifier "lVar11") (, ",") (pointer_expression "*(undefined8 *)(param_1[1] + 0x38)" (* "*") (cast_expression "(undefined8 *)(param_1[1] + 0x38)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[1] + 0x38)" (( "(") (binary_expression "param_1[1] + 0x38" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x38")) () ")")))) () ")")))) (; ";")) (if_statement "if (lVar7 == 0) {\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }\n                else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }" (if "if") (parenthesized_expression "(lVar7 == 0)" (( "(") (binary_expression "lVar7 == 0" (identifier "lVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }" ({ "{") (expression_statement "FUN_00131850(uVar9);" (call_expression "FUN_00131850(uVar9)" (identifier "FUN_00131850") (argument_list "(uVar9)" (( "(") (identifier "uVar9") () ")"))) (; ";")) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" (identifier "uVar3") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }" (else "else") (compound_statement "{\n                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));\n                  FUN_00131850(lVar7);\n                  if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }\n                  FUN_00131850(uVar9);\n                  uVar3 = 0;\n                }" ({ "{") (expression_statement "uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));" (assignment_expression "uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38))" (identifier "uVar8") (= "=") (call_expression "FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38))" (identifier "FUN_0013186e") (argument_list "(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38))" (( "(") (identifier "uVar9") (, ",") (identifier "lVar7") (, ",") (pointer_expression "*(undefined8 *)(param_1[1] + 0x38)" (* "*") (cast_expression "(undefined8 *)(param_1[1] + 0x38)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[1] + 0x38)" (( "(") (binary_expression "param_1[1] + 0x38" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x38")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));" (assignment_expression "uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38))" (identifier "uVar13") (= "=") (call_expression "FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38))" (identifier "FUN_0013186e") (argument_list "(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38))" (( "(") (identifier "lVar10") (, ",") (identifier "lVar7") (, ",") (pointer_expression "*(undefined8 *)(param_1[1] + 0x38)" (* "*") (cast_expression "(undefined8 *)(param_1[1] + 0x38)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[1] + 0x38)" (( "(") (binary_expression "param_1[1] + 0x38" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x38")) () ")")))) () ")")))) (; ";")) (expression_statement "FUN_00131850(lVar7);" (call_expression "FUN_00131850(lVar7)" (identifier "FUN_00131850") (argument_list "(lVar7)" (( "(") (identifier "lVar7") () ")"))) (; ";")) (if_statement "if (*(int *)param_1[1] == 0) {\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }\n                  else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }" (if "if") (parenthesized_expression "(*(int *)param_1[1] == 0)" (( "(") (binary_expression "*(int *)param_1[1] == 0" (pointer_expression "*(int *)param_1[1]" (* "*") (cast_expression "(int *)param_1[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    uVar6 = FUN_0013911b();\n                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);\n                    if (lVar7 == 0) goto LAB_0013cc19;\n                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);\n                    if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }\n                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);\n                    FUN_0013b9a8(lVar7);\n                    FUN_0013b9a8(lVar12);\n                    iVar4 = FUN_00139232(lVar14);\n                    if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                    if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }\n                  }" ({ "{") (expression_statement "uVar6 = FUN_0013911b();" (assignment_expression "uVar6 = FUN_0013911b()" (identifier "uVar6") (= "=") (call_expression "FUN_0013911b()" (identifier "FUN_0013911b") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);" (assignment_expression "lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6)" (identifier "lVar7") (= "=") (call_expression "FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6)" (identifier "FUN_0013b9f1") (argument_list "(param_1[1] + 0x40,uVar8,uVar6)" (( "(") (binary_expression "param_1[1] + 0x40" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x40")) (, ",") (identifier "uVar8") (, ",") (identifier "uVar6") () ")")))) (; ";")) (if_statement "if (lVar7 == 0) goto LAB_0013cc19;" (if "if") (parenthesized_expression "(lVar7 == 0)" (( "(") (binary_expression "lVar7 == 0" (identifier "lVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0013cc19;" (goto "goto") (statement_identifier "LAB_0013cc19") (; ";"))) (expression_statement "lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);" (assignment_expression "lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6)" (identifier "lVar12") (= "=") (call_expression "FUN_0013b9f1(param_1 + 1,uVar13,uVar6)" (identifier "FUN_0013b9f1") (argument_list "(param_1 + 1,uVar13,uVar6)" (( "(") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1")) (, ",") (identifier "uVar13") (, ",") (identifier "uVar6") () ")")))) (; ";")) (if_statement "if (lVar12 == 0) {\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }" (if "if") (parenthesized_expression "(lVar12 == 0)" (( "(") (binary_expression "lVar12 == 0" (identifier "lVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      FUN_0013b9a8(lVar7);\n                      goto LAB_0013cc19;\n                    }" ({ "{") (expression_statement "FUN_0013b9a8(lVar7);" (call_expression "FUN_0013b9a8(lVar7)" (identifier "FUN_0013b9a8") (argument_list "(lVar7)" (( "(") (identifier "lVar7") () ")"))) (; ";")) (goto_statement "goto LAB_0013cc19;" (goto "goto") (statement_identifier "LAB_0013cc19") (; ";")) (} "}"))) (expression_statement "lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);" (assignment_expression "lVar14 = FUN_00139c83(lVar7,lVar12,uVar6)" (identifier "lVar14") (= "=") (call_expression "FUN_00139c83(lVar7,lVar12,uVar6)" (identifier "FUN_00139c83") (argument_list "(lVar7,lVar12,uVar6)" (( "(") (identifier "lVar7") (, ",") (identifier "lVar12") (, ",") (identifier "uVar6") () ")")))) (; ";")) (expression_statement "FUN_0013b9a8(lVar7);" (call_expression "FUN_0013b9a8(lVar7)" (identifier "FUN_0013b9a8") (argument_list "(lVar7)" (( "(") (identifier "lVar7") () ")"))) (; ";")) (expression_statement "FUN_0013b9a8(lVar12);" (call_expression "FUN_0013b9a8(lVar12)" (identifier "FUN_0013b9a8") (argument_list "(lVar12)" (( "(") (identifier "lVar12") () ")"))) (; ";")) (expression_statement "iVar4 = FUN_00139232(lVar14);" (assignment_expression "iVar4 = FUN_00139232(lVar14)" (identifier "iVar4") (= "=") (call_expression "FUN_00139232(lVar14)" (identifier "FUN_00139232") (argument_list "(lVar14)" (( "(") (identifier "lVar14") () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      FUN_0013b9a8(lVar14);\n                      goto LAB_0013cc19;\n                    }" ({ "{") (expression_statement "FUN_0013b9a8(lVar14);" (call_expression "FUN_0013b9a8(lVar14)" (identifier "FUN_0013b9a8") (argument_list "(lVar14)" (( "(") (identifier "lVar14") () ")"))) (; ";")) (goto_statement "goto LAB_0013cc19;" (goto "goto") (statement_identifier "LAB_0013cc19") (; ";")) (} "}"))) (expression_statement "FUN_00131850(uVar8);" (call_expression "FUN_00131850(uVar8)" (identifier "FUN_00131850") (argument_list "(uVar8)" (( "(") (identifier "uVar8") () ")"))) (; ";")) (expression_statement "FUN_00131850(uVar13);" (call_expression "FUN_00131850(uVar13)" (identifier "FUN_00131850") (argument_list "(uVar13)" (( "(") (identifier "uVar13") () ")"))) (; ";")) (if_statement "if (lVar14 != 0) {\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }" (if "if") (parenthesized_expression "(lVar14 != 0)" (( "(") (binary_expression "lVar14 != 0" (identifier "lVar14") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));\n                      FUN_0013b9a8(lVar14);\n                      iVar4 = FUN_00132034(lVar10,uVar8);\n                      uVar3 = (uint)(iVar4 == 0);\n                      FUN_00131850(uVar8);\n                      FUN_00131850(uVar9);\n                      goto LAB_0013c99e;\n                    }" ({ "{") (expression_statement "uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38));" (assignment_expression "uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38))" (identifier "uVar8") (= "=") (call_expression "FUN_00132ba8(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38))" (identifier "FUN_00132ba8") (argument_list "(*(undefined8 *)(lVar14 + 8),\n                                           *(undefined8 *)(param_1[1] + 0x38))" (( "(") (pointer_expression "*(undefined8 *)(lVar14 + 8)" (* "*") (cast_expression "(undefined8 *)(lVar14 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar14 + 8)" (( "(") (binary_expression "lVar14 + 8" (identifier "lVar14") (+ "+") (number_literal "8")) () ")")))) (, ",") (pointer_expression "*(undefined8 *)(param_1[1] + 0x38)" (* "*") (cast_expression "(undefined8 *)(param_1[1] + 0x38)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[1] + 0x38)" (( "(") (binary_expression "param_1[1] + 0x38" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x38")) () ")")))) () ")")))) (; ";")) (expression_statement "FUN_0013b9a8(lVar14);" (call_expression "FUN_0013b9a8(lVar14)" (identifier "FUN_0013b9a8") (argument_list "(lVar14)" (( "(") (identifier "lVar14") () ")"))) (; ";")) (expression_statement "iVar4 = FUN_00132034(lVar10,uVar8);" (assignment_expression "iVar4 = FUN_00132034(lVar10,uVar8)" (identifier "iVar4") (= "=") (call_expression "FUN_00132034(lVar10,uVar8)" (identifier "FUN_00132034") (argument_list "(lVar10,uVar8)" (( "(") (identifier "lVar10") (, ",") (identifier "uVar8") () ")")))) (; ";")) (expression_statement "uVar3 = (uint)(iVar4 == 0);" (assignment_expression "uVar3 = (uint)(iVar4 == 0)" (identifier "uVar3") (= "=") (call_expression "(uint)(iVar4 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")))) (; ";")) (expression_statement "FUN_00131850(uVar8);" (call_expression "FUN_00131850(uVar8)" (identifier "FUN_00131850") (argument_list "(uVar8)" (( "(") (identifier "uVar8") () ")"))) (; ";")) (expression_statement "FUN_00131850(uVar9);" (call_expression "FUN_00131850(uVar9)" (identifier "FUN_00131850") (argument_list "(uVar9)" (( "(") (identifier "uVar9") () ")"))) (; ";")) (goto_statement "goto LAB_0013c99e;" (goto "goto") (statement_identifier "LAB_0013c99e") (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }" (else "else") (compound_statement "{\nLAB_0013cc19:\n                    FUN_00131850(uVar8);\n                    FUN_00131850(uVar13);\n                  }" ({ "{") (labeled_statement "LAB_0013cc19:\n                    FUN_00131850(uVar8);" (statement_identifier "LAB_0013cc19") (: ":") (expression_statement "FUN_00131850(uVar8);" (call_expression "FUN_00131850(uVar8)" (identifier "FUN_00131850") (argument_list "(uVar8)" (( "(") (identifier "uVar8") () ")"))) (; ";"))) (expression_statement "FUN_00131850(uVar13);" (call_expression "FUN_00131850(uVar13)" (identifier "FUN_00131850") (argument_list "(uVar13)" (( "(") (identifier "uVar13") () ")"))) (; ";")) (} "}")))) (expression_statement "FUN_00131850(uVar9);" (call_expression "FUN_00131850(uVar9)" (identifier "FUN_00131850") (argument_list "(uVar9)" (( "(") (identifier "uVar9") () ")"))) (; ";")) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" (identifier "uVar3") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (labeled_statement "LAB_0013c99e:\n      FUN_00131850(lVar10);" (statement_identifier "LAB_0013c99e") (: ":") (expression_statement "FUN_00131850(lVar10);" (call_expression "FUN_00131850(lVar10)" (identifier "FUN_00131850") (argument_list "(lVar10)" (( "(") (identifier "lVar10") () ")"))) (; ";"))) (expression_statement "FUN_00131850(lVar11);" (call_expression "FUN_00131850(lVar11)" (identifier "FUN_00131850") (argument_list "(lVar11)" (( "(") (identifier "lVar11") () ")"))) (; ";")) (goto_statement "goto LAB_0013cc52;" (goto "goto") (statement_identifier "LAB_0013cc52") (; ";")) (} "}"))) (expression_statement "FUN_00131850(lVar10);" (call_expression "FUN_00131850(lVar10)" (identifier "FUN_00131850") (argument_list "(lVar10)" (( "(") (identifier "lVar10") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" (identifier "uVar3") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0013cc52:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar3;\n  }" (statement_identifier "LAB_0013cc52") (: ":") (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar3;\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 uVar3;\n  }" ({ "{") (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}")))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

int function_1(void *key,char *sig,int siglen,char *data,int datalen)

{
  type_1 var_31;
  long var_45;
  long var_30;
  type_2 *curve;
  type_1 var_5;
  int var_11;
  int var_35;
  type_3 *var_9;
  type_4 var_28;
  type_4 var_29;
  type_3 *var_22;
  type_3 *var_23;
  type_3 *var_25;
  type_5 uVar11;
  type_4 pBVar12;
  type_4 var_39;
  type_4 b_00;
  type_4 b_01;
  long var_1;
  int local_1c4;
  char *local_1c0;
  type_6 var_18;
  int var_7;
  char *var_3;
  type_7 hs;
  type_6 digest [64];
  
  var_45 = *(long *)(var_1 + 0x28);
  local_1c4 = siglen;
  local_1c0 = sig;
  if (*(long *)((long)key + 0x10) == 0) {
    var_5 = 0;
    goto LAB_0013cc52;
  }
  if (*(long *)((long)key + 0x18) == 0) {
    var_5 = 0;
    goto LAB_0013cc52;
  }
  if (*(long *)((long)key + 8) == 0) {
    var_5 = 0;
    goto LAB_0013cc52;
  }
                    /* WARNING: Load size is inaccurate */
  var_30 = *(long *)(*key + 0x70);
  var_2(&local_1c0,&local_1c4,&var_3,&var_7);
  if (var_3 == (char *)0x0) {
    var_5 = 0;
    goto LAB_0013cc52;
  }
                    /* WARNING: Load size is inaccurate */
  var_5 = var_4(var_7,var_3,*(char **)(*key + 0x60));
  if (var_5 == 0) goto LAB_0013cc52;
  var_2(&local_1c0,&local_1c4,&var_3,&var_7);
  if (var_3 == (char *)0x0) {
    var_5 = 0;
    goto LAB_0013cc52;
  }
  curve = *(type_2 **)((long)key + 8);
  if (curve->type == var_6) {
    if (((curve->fieldBits >> 3) * 2 == var_7) && (curve->fieldBits == 0x100)) {
      var_9 = var_8(curve,(type_8)0x0,(type_8)0x0,(type_8)0x0,'\0');
      var_5 = 0;
      if (var_9 != (type_3 *)0x0) {
        var_11 = var_10(var_3,*(type_1 *)(*(long *)((long)key + 8) + 0x18) >> 3,var_9);
        if (var_11 == 0) {
          var_12(var_9);
          var_5 = 0;
        }
        else {
          var_5 = *(type_1 *)(*(long *)((long)key + 8) + 0x18) >> 3;
          var_28 = var_13((type_6 *)(var_3 + var_5),var_5);
          var_14((type_9 *)&hs);
          var_15(&hs,var_3,*(type_1 *)(*(long *)((long)key + 8) + 0x18) >> 3);
          var_5 = *(type_1 *)(*(long *)((long)key + 8) + 0x18) >> 3;
          if (var_5 < 2) {
            var_11 = 0;
          }
          else {
            var_11 = 0;
            do {
              var_35 = var_16(*(type_4 *)((long)key + 0x18),var_11);
              var_18 = (type_6)var_35;
              var_15(&hs,&var_18,1);
              var_11 = var_11 + 1;
            } while (var_5 - 1 != var_11);
          }
          var_11 = var_16(*(type_4 *)((long)key + 0x18),var_11);
          var_18 = (type_10)var_11 & 0x7f;
          var_11 = var_17(*(type_4 *)((long)key + 0x10),0);
          var_18 = var_18 | (type_10)(var_11 << 7);
          var_15(&hs,&var_18,1);
          var_15(&hs,data,datalen);
          var_19(&hs,digest);
          var_29 = var_13(digest,0x40);
          var_22 = var_20((type_3 *)(*(long *)((long)key + 8) + 0x38),var_28);
          var_21(var_28);
          if (var_22 == (type_3 *)0x0) {
            var_12(var_9);
            var_21(var_29);
            var_5 = 0;
          }
          else {
            var_23 = var_20((type_3 *)((long)key + 8),var_29);
            var_21(var_29);
            if (var_23 == (type_3 *)0x0) {
              var_12(var_22);
              var_12(var_9);
              var_5 = 0;
            }
            else {
              var_25 = var_24(var_9,var_23,0);
              var_12(var_9);
              var_12(var_23);
              if (var_25 == (type_3 *)0x0) {
                var_12(var_22);
                var_5 = 0;
              }
              else {
                var_11 = var_26((type_4)var_22->x,(type_4)var_25->x);
                var_5 = 0;
                if (var_11 == 0) {
                  var_11 = var_26((type_4)var_22->y,(type_4)var_25->y);
                  var_5 = (type_1)(var_11 == 0);
                }
                var_12(var_22);
                var_12(var_25);
              }
            }
          }
        }
      }
    }
    else {
      var_5 = 0;
    }
    goto LAB_0013cc52;
  }
  var_28 = (type_4)var_27(&var_3,&var_7);
  if (var_28 != (type_4)0x0) {
    var_29 = (type_4)var_27(&var_3,&var_7);
    if (var_29 != (type_4)0x0) {
      var_31 = *(type_1 *)(*(type_5 **)(var_30 + 8) + 5);
      if (0x40 < var_31) {
                    /* WARNING: Subroutine does not return */
        var_32("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");
      }
      uVar11 = (*(type_11 *)**(type_5 **)(var_30 + 8))();
      (**(type_11 **)(*(long *)(var_30 + 8) + 0x10))(uVar11,data,datalen);
      (**(type_11 **)(*(long *)(var_30 + 8) + 0x18))(uVar11,digest);
      var_5 = 0;
      if (**(int **)((long)key + 8) == 0) {
        var_5 = var_26(var_28,Zero);
        if (var_5 != 0) {
          var_11 = var_26(var_28,*(type_4 *)(*(long *)((long)key + 8) + 0x38));
          var_5 = 0;
          if (var_11 < 0) {
            var_5 = var_26(var_29,Zero);
            if (var_5 != 0) {
              var_11 = var_26(var_29,*(type_4 *)(*(long *)((long)key + 8) + 0x38));
              var_5 = 0;
              if (var_11 < 0) {
                pBVar12 = var_33(digest,var_31);
                var_11 = var_34(*(type_4 *)(*(long *)((long)key + 8) + 0x38));
                var_35 = var_34(pBVar12);
                var_39 = pBVar12;
                if (var_11 < var_35) {
                  var_39 = var_36(pBVar12,var_35 - var_11);
                  var_21(pBVar12);
                }
                pBVar12 = var_37(var_39,*(type_4 *)(*(long *)((long)key + 8) + 0x38));
                var_21(var_39);
                var_39 = var_38(var_29,*(type_4 *)(*(long *)((long)key + 8) + 0x38));
                if (var_39 == (type_4)0x0) {
                  var_21(pBVar12);
                  var_5 = 0;
                }
                else {
                  b_00 = var_40(pBVar12,var_39,
                                *(type_4 *)(*(long *)((long)key + 8) + 0x38));
                  b_01 = var_40(var_28,var_39,*(type_4 *)(*(long *)((long)key + 8) + 0x38)
                               );
                  var_21(var_39);
                  if ((*(type_2 **)((long)key + 8))->type == var_41) {
                    var_11 = var_42(*(type_2 **)((long)key + 8));
                    var_9 = var_43((type_3 *)(*(long *)((long)key + 8) + 0x40),b_00,var_11);
                    if (var_9 == (type_3 *)0x0) goto LAB_0013cc19;
                    var_22 = var_43((type_3 *)((long)key + 8),b_01,var_11);
                    if (var_22 == (type_3 *)0x0) {
                      var_12(var_9);
                      goto LAB_0013cc19;
                    }
                    var_23 = var_24(var_9,var_22,var_11);
                    var_12(var_9);
                    var_12(var_22);
                    var_11 = var_44(var_23);
                    if (var_11 == 0) {
                      var_12(var_23);
                      goto LAB_0013cc19;
                    }
                    var_21(b_00);
                    var_21(b_01);
                    if (var_23 != (type_3 *)0x0) {
                      var_39 = var_37((type_4)var_23->x,
                                       *(type_4 *)(*(long *)((long)key + 8) + 0x38));
                      var_12(var_23);
                      var_11 = var_26(var_28,var_39);
                      var_5 = (type_1)(var_11 == 0);
                      var_21(var_39);
                      var_21(pBVar12);
                      goto LAB_0013c99e;
                    }
                  }
                  else {
LAB_0013cc19:
                    var_21(b_00);
                    var_21(b_01);
                  }
                  var_21(pBVar12);
                  var_5 = 0;
                }
              }
            }
          }
        }
      }
LAB_0013c99e:
      var_21(var_28);
      var_21(var_29);
      goto LAB_0013cc52;
    }
    var_21(var_28);
  }
  var_5 = 0;
LAB_0013cc52:
  if (var_45 == *(long *)(var_1 + 0x28)) {
    return var_5;
  }
                    /* WARNING: Subroutine does not return */
  var_46();
}


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

uint MASKED(long *param_1,undefined8 param_2,undefined4 param_3,undefined8 param_4,
                 undefined4 param_5)

{
  uint uVar1;
  int *piVar2;
  uint uVar3;
  int iVar4;
  int iVar5;
  undefined4 uVar6;
  long lVar7;
  undefined8 uVar8;
  undefined8 uVar9;
  long lVar10;
  long lVar11;
  long lVar12;
  undefined8 uVar13;
  long lVar14;
  long in_FS_OFFSET;
  undefined4 local_1c4;
  undefined8 local_1c0;
  byte local_1b5;
  int local_1b4;
  long local_1b0;
  undefined1 local_1a8 [288];
  undefined1 local_88 [72];
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  local_1c4 = param_3;
  local_1c0 = param_2;
  if (param_1[2] == 0) {
    uVar3 = 0;
    goto LAB_0013cc52;
  }
  if (param_1[3] == 0) {
    uVar3 = 0;
    goto LAB_0013cc52;
  }
  if (param_1[1] == 0) {
    uVar3 = 0;
    goto LAB_0013cc52;
  }
  lVar7 = *(long *)(*param_1 + 0x70);
  FUN_0013ad00(&local_1c0,&local_1c4,&local_1b0,&local_1b4);
  if (local_1b0 == 0) {
    uVar3 = 0;
    goto LAB_0013cc52;
  }
  uVar3 = FUN_0010f984(local_1b4,local_1b0,*(undefined8 *)(*param_1 + 0x60));
  if (uVar3 == 0) goto LAB_0013cc52;
  FUN_0013ad00(&local_1c0,&local_1c4,&local_1b0,&local_1b4);
  if (local_1b0 == 0) {
    uVar3 = 0;
    goto LAB_0013cc52;
  }
  piVar2 = (int *)param_1[1];
  if (*piVar2 == 2) {
    if ((((uint)piVar2[6] >> 3) * 2 == local_1b4) && (piVar2[6] == 0x100)) {
      lVar7 = FUN_00139166(piVar2,0,0,0,0);
      uVar3 = 0;
      if (lVar7 != 0) {
        iVar4 = FUN_0013b2ef(local_1b0,*(uint *)(param_1[1] + 0x18) >> 3,lVar7);
        if (iVar4 == 0) {
          FUN_0013b9a8(lVar7);
          uVar3 = 0;
        }
        else {
          uVar8 = FUN_00131ce3((ulong)(*(uint *)(param_1[1] + 0x18) >> 3) + local_1b0);
          FUN_00145d73(local_1a8);
          FUN_00145e5b(local_1a8,local_1b0,*(uint *)(param_1[1] + 0x18) >> 3);
          uVar3 = *(uint *)(param_1[1] + 0x18) >> 3;
          if (uVar3 < 2) {
            iVar4 = 0;
          }
          else {
            iVar4 = 0;
            do {
              local_1b5 = FUN_00131ea6(param_1[3],iVar4);
              FUN_00145e5b(local_1a8,&local_1b5,1);
              iVar4 = iVar4 + 1;
            } while (uVar3 - 1 != iVar4);
          }
          local_1b5 = FUN_00131ea6(param_1[3],iVar4);
          local_1b5 = local_1b5 & 0x7f;
          iVar4 = FUN_00131eed(param_1[2],0);
          local_1b5 = local_1b5 | (byte)(iVar4 << 7);
          FUN_00145e5b(local_1a8,&local_1b5,1);
          FUN_00145e5b(local_1a8,param_4,param_5);
          FUN_0014737f(local_1a8,local_88);
          uVar9 = FUN_00131ce3(local_88,0x40);
          lVar10 = FUN_0013bab7(param_1[1] + 0x38,uVar8);
          FUN_00131850(uVar8);
          if (lVar10 == 0) {
            FUN_0013b9a8(lVar7);
            FUN_00131850(uVar9);
            uVar3 = 0;
          }
          else {
            lVar11 = FUN_0013bab7(param_1 + 1,uVar9);
            FUN_00131850(uVar9);
            if (lVar11 == 0) {
              FUN_0013b9a8(lVar10);
              FUN_0013b9a8(lVar7);
              uVar3 = 0;
            }
            else {
              lVar12 = FUN_00139c83(lVar7,lVar11,0);
              FUN_0013b9a8(lVar7);
              FUN_0013b9a8(lVar11);
              if (lVar12 == 0) {
                FUN_0013b9a8(lVar10);
                uVar3 = 0;
              }
              else {
                iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 8),*(undefined8 *)(lVar12 + 8));
                uVar3 = 0;
                if (iVar4 == 0) {
                  iVar4 = FUN_00132034(*(undefined8 *)(lVar10 + 0x10),*(undefined8 *)(lVar12 + 0x10)
                                      );
                  uVar3 = (uint)(iVar4 == 0);
                }
                FUN_0013b9a8(lVar10);
                FUN_0013b9a8(lVar12);
              }
            }
          }
        }
      }
    }
    else {
      uVar3 = 0;
    }
    goto LAB_0013cc52;
  }
  lVar10 = FUN_0013ad88(&local_1b0,&local_1b4);
  if (lVar10 != 0) {
    lVar11 = FUN_0013ad88(&local_1b0,&local_1b4);
    if (lVar11 != 0) {
      uVar1 = *(uint *)(*(undefined8 **)(lVar7 + 8) + 5);
      if (0x40 < uVar1) {
                    /* WARNING: Subroutine does not return */
        __assert_fail("digestLen <= sizeof(digest)","sshecc.c",0x950,"ecdsa_verifysig");
      }
      uVar8 = (*(code *)**(undefined8 **)(lVar7 + 8))();
      (**(code **)(*(long *)(lVar7 + 8) + 0x10))(uVar8,param_4,param_5);
      (**(code **)(*(long *)(lVar7 + 8) + 0x18))(uVar8,local_88);
      uVar3 = 0;
      if (*(int *)param_1[1] == 0) {
        uVar3 = FUN_00132034(lVar10,PTR_DAT_001822f0);
        if (uVar3 != 0) {
          iVar4 = FUN_00132034(lVar10,*(undefined8 *)(param_1[1] + 0x38));
          uVar3 = 0;
          if (iVar4 < 0) {
            uVar3 = FUN_00132034(lVar11,PTR_DAT_001822f0);
            if (uVar3 != 0) {
              iVar4 = FUN_00132034(lVar11,*(undefined8 *)(param_1[1] + 0x38));
              uVar3 = 0;
              if (iVar4 < 0) {
                uVar9 = FUN_00131c11(local_88,uVar1);
                iVar4 = FUN_00131e13(*(undefined8 *)(param_1[1] + 0x38));
                iVar5 = FUN_00131e13(uVar9);
                uVar8 = uVar9;
                if (iVar4 < iVar5) {
                  uVar8 = FUN_00132271(uVar9,iVar5 - iVar4);
                  FUN_00131850(uVar9);
                }
                uVar9 = FUN_00132ba8(uVar8,*(undefined8 *)(param_1[1] + 0x38));
                FUN_00131850(uVar8);
                lVar7 = FUN_001331ed(lVar11,*(undefined8 *)(param_1[1] + 0x38));
                if (lVar7 == 0) {
                  FUN_00131850(uVar9);
                  uVar3 = 0;
                }
                else {
                  uVar8 = FUN_0013186e(uVar9,lVar7,*(undefined8 *)(param_1[1] + 0x38));
                  uVar13 = FUN_0013186e(lVar10,lVar7,*(undefined8 *)(param_1[1] + 0x38));
                  FUN_00131850(lVar7);
                  if (*(int *)param_1[1] == 0) {
                    uVar6 = FUN_0013911b();
                    lVar7 = FUN_0013b9f1(param_1[1] + 0x40,uVar8,uVar6);
                    if (lVar7 == 0) goto LAB_0013cc19;
                    lVar12 = FUN_0013b9f1(param_1 + 1,uVar13,uVar6);
                    if (lVar12 == 0) {
                      FUN_0013b9a8(lVar7);
                      goto LAB_0013cc19;
                    }
                    lVar14 = FUN_00139c83(lVar7,lVar12,uVar6);
                    FUN_0013b9a8(lVar7);
                    FUN_0013b9a8(lVar12);
                    iVar4 = FUN_00139232(lVar14);
                    if (iVar4 == 0) {
                      FUN_0013b9a8(lVar14);
                      goto LAB_0013cc19;
                    }
                    FUN_00131850(uVar8);
                    FUN_00131850(uVar13);
                    if (lVar14 != 0) {
                      uVar8 = FUN_00132ba8(*(undefined8 *)(lVar14 + 8),
                                           *(undefined8 *)(param_1[1] + 0x38));
                      FUN_0013b9a8(lVar14);
                      iVar4 = FUN_00132034(lVar10,uVar8);
                      uVar3 = (uint)(iVar4 == 0);
                      FUN_00131850(uVar8);
                      FUN_00131850(uVar9);
                      goto LAB_0013c99e;
                    }
                  }
                  else {
LAB_0013cc19:
                    FUN_00131850(uVar8);
                    FUN_00131850(uVar13);
                  }
                  FUN_00131850(uVar9);
                  uVar3 = 0;
                }
              }
            }
          }
        }
      }
LAB_0013c99e:
      FUN_00131850(lVar10);
      FUN_00131850(lVar11);
      goto LAB_0013cc52;
    }
    FUN_00131850(lVar10);
  }
  uVar3 = 0;
LAB_0013cc52:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return uVar3;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}

