
int dump_certs_pkeys_bag
              (BIO *out,PKCS12_SAFEBAG *bag,char *pass,int passlen,int options,char *pempass,
              EVP_CIPHER *enc)

{
  int iVar1;
  uint uVar2;
  stack_st_X509_ATTRIBUTE *psVar3;
  stack_st_PKCS12_SAFEBAG *bags;
  PKCS8_PRIV_KEY_INFO *pPVar4;
  EVP_PKEY *pEVar5;
  undefined8 uVar6;
  long lVar7;
  X509 *x;
  ASN1_OBJECT *a;
  long in_FS_OFFSET;
  X509_ALGOR *tp8alg;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS12_SAFEBAG_get0_attrs(bag);
  iVar1 = PKCS12_SAFEBAG_get_nid(bag);
  if (iVar1 == 0x97) {
    if ((options & 4U) != 0) {
      BIO_printf((BIO *)bio_err,"Shrouded Keybag: ");
      uVar6 = PKCS12_SAFEBAG_get0_pkcs8(bag);
      X509_SIG_get0(uVar6,&tp8alg,0);
      alg_print(tp8alg);
    }
    uVar2 = options & 1;
    if (uVar2 == 0) {
      print_attribs(out,psVar3,"Bag Attributes");
      pPVar4 = PKCS12_decrypt_skey((PKCS12_SAFEBAG *)bag,pass,passlen);
      if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {
        pEVar5 = EVP_PKCS82PKEY(pPVar4);
        if (pEVar5 == (EVP_PKEY *)0x0) {
          PKCS8_PRIV_KEY_INFO_free(pPVar4);
        }
        else {
          psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS8_pkey_get0_attrs(pPVar4);
          print_attribs(out,psVar3,"Key Attributes");
          PKCS8_PRIV_KEY_INFO_free(pPVar4);
          uVar2 = PEM_write_bio_PrivateKey
                            ((BIO *)out,pEVar5,(EVP_CIPHER *)enc,(uchar *)0x0,0,(undefined1 *)0x0,
                             pempass);
          EVP_PKEY_free(pEVar5);
        }
      }
    }
    goto LAB_0014f4e5;
  }
  if (iVar1 < 0x98) {
    if (iVar1 == 0x96) {
      if ((options & 4U) != 0) {
        BIO_printf((BIO *)bio_err,"Key bag\n");
      }
      uVar2 = options & 1;
      if (uVar2 == 0) {
        print_attribs(out,psVar3,"Bag Attributes");
        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(bag);
        pEVar5 = EVP_PKCS82PKEY(pPVar4);
        if (pEVar5 != (EVP_PKEY *)0x0) {
          psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS8_pkey_get0_attrs(pPVar4);
          print_attribs(out,psVar3,"Key Attributes");
          uVar2 = PEM_write_bio_PrivateKey
                            ((BIO *)out,pEVar5,(EVP_CIPHER *)enc,(uchar *)0x0,0,(undefined1 *)0x0,
                             pempass);
          EVP_PKEY_free(pEVar5);
        }
      }
      goto LAB_0014f4e5;
    }
  }
  else {
    if (iVar1 == 0x98) {
      if ((options & 4U) != 0) {
        BIO_printf((BIO *)bio_err,"Certificate bag\n");
      }
      uVar2 = options & 2;
      if ((options & 2U) == 0) {
        lVar7 = PKCS12_SAFEBAG_get0_attr(bag,0x9d);
        if (lVar7 == 0) {
          if ((options & 8U) != 0) {
            uVar2 = 1;
            goto LAB_0014f4e5;
          }
        }
        else if ((options & 0x10U) != 0) {
          uVar2 = 1;
          goto LAB_0014f4e5;
        }
        print_attribs(out,psVar3,"Bag Attributes");
        iVar1 = PKCS12_SAFEBAG_get_bag_nid(bag);
        if (iVar1 == 0x9e) {
          x = (X509 *)PKCS12_SAFEBAG_get1_cert(bag);
          if (x != (X509 *)0x0) {
            dump_cert_text(out,(X509 *)x);
            uVar2 = PEM_write_bio_X509((BIO *)out,x);
            X509_free(x);
          }
        }
        else {
          uVar2 = 1;
        }
      }
      else {
        uVar2 = 1;
      }
      goto LAB_0014f4e5;
    }
    if (iVar1 == 0x9b) {
      if ((options & 4U) != 0) {
        BIO_printf((BIO *)bio_err,"Safe Contents bag\n");
      }
      print_attribs(out,psVar3,"Bag Attributes");
      bags = (stack_st_PKCS12_SAFEBAG *)PKCS12_SAFEBAG_get0_safes(bag);
      uVar2 = dump_certs_pkeys_bags(out,bags,pass,passlen,options,pempass,enc);
      goto LAB_0014f4e5;
    }
  }
  BIO_printf((BIO *)bio_err,"Warning unsupported bag type: ");
  a = (ASN1_OBJECT *)PKCS12_SAFEBAG_get0_type(bag);
  i2a_ASN1_OBJECT((BIO *)bio_err,a);
  BIO_printf((BIO *)bio_err,"\n");
  uVar2 = 1;
LAB_0014f4e5:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return uVar2;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}



uint FUN_0014f424(BIO *param_1,PKCS12_SAFEBAG *param_2,char *param_3,int param_4,uint param_5,
                 void *param_6,EVP_CIPHER *param_7)

{
  int iVar1;
  uint uVar2;
  undefined8 uVar3;
  PKCS8_PRIV_KEY_INFO *pPVar4;
  EVP_PKEY *pEVar5;
  undefined8 uVar6;
  long lVar7;
  X509 *x;
  ASN1_OBJECT *a;
  long in_FS_OFFSET;
  undefined8 local_48;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  uVar3 = PKCS12_SAFEBAG_get0_attrs(param_2);
  iVar1 = PKCS12_SAFEBAG_get_nid(param_2);
  if (iVar1 == 0x97) {
    if ((param_5 & 4) != 0) {
      BIO_printf(DAT_001b76b0,"Shrouded Keybag: ");
      uVar6 = PKCS12_SAFEBAG_get0_pkcs8(param_2);
      X509_SIG_get0(uVar6,&local_48,0);
      FUN_0014ee52(local_48);
    }
    uVar2 = param_5 & 1;
    if ((param_5 & 1) == 0) {
      FUN_0014f216(param_1,uVar3,"Bag Attributes");
      pPVar4 = PKCS12_decrypt_skey(param_2,param_3,param_4);
      if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {
        pEVar5 = EVP_PKCS82PKEY(pPVar4);
        if (pEVar5 == (EVP_PKEY *)0x0) {
          PKCS8_PRIV_KEY_INFO_free(pPVar4);
        }
        else {
          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);
          FUN_0014f216(param_1,uVar3,"Key Attributes");
          PKCS8_PRIV_KEY_INFO_free(pPVar4);
          uVar2 = PEM_write_bio_PrivateKey
                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);
          EVP_PKEY_free(pEVar5);
        }
      }
    }
    goto LAB_0014f4e5;
  }
  if (iVar1 < 0x98) {
    if (iVar1 == 0x96) {
      if ((param_5 & 4) != 0) {
        BIO_printf(DAT_001b76b0,"Key bag\n");
      }
      uVar2 = param_5 & 1;
      if ((param_5 & 1) == 0) {
        FUN_0014f216(param_1,uVar3,"Bag Attributes");
        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2);
        pEVar5 = EVP_PKCS82PKEY(pPVar4);
        if (pEVar5 != (EVP_PKEY *)0x0) {
          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);
          FUN_0014f216(param_1,uVar3,"Key Attributes");
          uVar2 = PEM_write_bio_PrivateKey
                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);
          EVP_PKEY_free(pEVar5);
        }
      }
      goto LAB_0014f4e5;
    }
  }
  else {
    if (iVar1 == 0x98) {
      if ((param_5 & 4) != 0) {
        BIO_printf(DAT_001b76b0,"Certificate bag\n");
      }
      uVar2 = param_5 & 2;
      if ((param_5 & 2) == 0) {
        lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);
        if (lVar7 == 0) {
          if ((param_5 & 8) != 0) {
            uVar2 = 1;
            goto LAB_0014f4e5;
          }
        }
        else if ((param_5 & 0x10) != 0) {
          uVar2 = 1;
          goto LAB_0014f4e5;
        }
        FUN_0014f216(param_1,uVar3,"Bag Attributes");
        iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);
        if (iVar1 == 0x9e) {
          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);
          if (x != (X509 *)0x0) {
            FUN_0017ba67(param_1,x);
            uVar2 = PEM_write_bio_X509(param_1,x);
            X509_free(x);
          }
        }
        else {
          uVar2 = 1;
        }
      }
      else {
        uVar2 = 1;
      }
      goto LAB_0014f4e5;
    }
    if (iVar1 == 0x9b) {
      if ((param_5 & 4) != 0) {
        BIO_printf(DAT_001b76b0,"Safe Contents bag\n");
      }
      FUN_0014f216(param_1,uVar3,"Bag Attributes");
      uVar3 = PKCS12_SAFEBAG_get0_safes(param_2);
      uVar2 = FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7);
      goto LAB_0014f4e5;
    }
  }
  BIO_printf(DAT_001b76b0,"Warning unsupported bag type: ");
  a = (ASN1_OBJECT *)PKCS12_SAFEBAG_get0_type(param_2);
  i2a_ASN1_OBJECT(DAT_001b76b0,a);
  BIO_printf(DAT_001b76b0,"\n");
  uVar2 = 1;
LAB_0014f4e5:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return uVar2;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x38
MOV R13,RDI
MOV RBX,RSI
MOV qword ptr [RSP + 0x10],RDX
MOV dword ptr [RSP + 0x1c],ECX
MOV EBP,R8D
MOV qword ptr [RSP + 0x8],R9
MOV R15,qword ptr [RSP + 0x70]
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x28],RAX
XOR EAX,EAX
MOV RDI,RSI
CALL 0x00132220
MOV R14,RAX
MOV RDI,RBX
CALL 0x001330f0
CMP EAX,0x97
JZ 0x0014f5c7
JLE 0x0014f50b
CMP EAX,0x98
JZ 0x0014f6cb
CMP EAX,0x9b
JNZ 0x0014f7af
TEST BPL,0x4
JNZ 0x0014f792
LEA RDX,[0x18d657]
MOV RSI,R14
MOV RDI,R13
CALL 0x0014f216
MOV RDI,RBX
CALL 0x0012eb80
SUB RSP,0x8
PUSH R15
MOV R9,qword ptr [RSP + 0x18]
MOV R8D,EBP
MOV ECX,dword ptr [RSP + 0x2c]
MOV RDX,qword ptr [RSP + 0x20]
MOV RSI,RAX
MOV RDI,R13
CALL 0x0014f811
MOV R12D,EAX
ADD RSP,0x10
MOV EAX,R12D
MOV RCX,qword ptr [RSP + 0x28]
XOR RCX,qword ptr FS:[0x28]
JNZ 0x0014f80c
ADD RSP,0x38
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
CMP EAX,0x96
JNZ 0x0014f7af
TEST BPL,0x4
JNZ 0x0014f5aa
AND EBP,0x1
MOV R12D,EBP
JNZ 0x0014f4e5
LEA RDX,[0x18d657]
MOV RSI,R14
MOV RDI,R13
CALL 0x0014f216
MOV RDI,RBX
CALL 0x0012f0c0
MOV RBP,RAX
MOV RDI,RAX
CALL 0x001304d0
MOV RBX,RAX
TEST RAX,RAX
JZ 0x0014f4e5
MOV RDI,RBP
CALL 0x001308a0
LEA RDX,[0x18d666]
MOV RSI,RAX
MOV RDI,R13
CALL 0x0014f216
SUB RSP,0x8
PUSH qword ptr [RSP + 0x10]
MOV R9D,0x0
MOV R8D,0x0
MOV ECX,0x0
MOV RDX,R15
MOV RSI,RBX
MOV RDI,R13
CALL 0x00133190
MOV R12D,EAX
MOV RDI,RBX
CALL 0x001322d0
ADD RSP,0x10
JMP 0x0014f4e5
LEA RSI,[0x18d64e]
MOV RDI,qword ptr [0x001b76b0]
MOV EAX,0x0
CALL 0x0012e210
JMP 0x0014f520
TEST BPL,0x4
JNZ 0x0014f67d
AND EBP,0x1
MOV R12D,EBP
JNZ 0x0014f4e5
LEA RDX,[0x18d657]
MOV RSI,R14
MOV RDI,R13
CALL 0x0014f216
MOV EDX,dword ptr [RSP + 0x1c]
MOV RSI,qword ptr [RSP + 0x10]
MOV RDI,RBX
CALL 0x00131060
MOV RBX,RAX
TEST RAX,RAX
JZ 0x0014f4e5
MOV RDI,RAX
CALL 0x001304d0
MOV RBP,RAX
TEST RAX,RAX
JZ 0x0014f6be
MOV RDI,RBX
CALL 0x001308a0
LEA RDX,[0x18d666]
MOV RSI,RAX
MOV RDI,R13
CALL 0x0014f216
MOV RDI,RBX
CALL 0x001330b0
SUB RSP,0x8
PUSH qword ptr [RSP + 0x10]
MOV R9D,0x0
MOV R8D,0x0
MOV ECX,0x0
MOV RDX,R15
MOV RSI,RBP
MOV RDI,R13
CALL 0x00133190
MOV R12D,EAX
MOV RDI,RBP
CALL 0x001322d0
ADD RSP,0x10
JMP 0x0014f4e5
LEA RSI,[0x18d675]
MOV RDI,qword ptr [0x001b76b0]
MOV EAX,0x0
CALL 0x0012e210
MOV RDI,RBX
CALL 0x00131850
LEA RSI,[RSP + 0x20]
MOV EDX,0x0
MOV RDI,RAX
CALL 0x00132530
MOV RDI,qword ptr [RSP + 0x20]
CALL 0x0014ee52
JMP 0x0014f5d1
MOV RDI,RBX
CALL 0x001330b0
JMP 0x0014f4e5
TEST BPL,0x4
JNZ 0x0014f6e5
MOV R12D,EBP
AND R12D,0x2
JZ 0x0014f6ff
MOV R12D,0x1
JMP 0x0014f4e5
LEA RSI,[0x18d687]
MOV RDI,qword ptr [0x001b76b0]
MOV EAX,0x0
CALL 0x0012e210
JMP 0x0014f6d1
MOV ESI,0x9d
MOV RDI,RBX
CALL 0x00131700
TEST RAX,RAX
JZ 0x0014f747
TEST BPL,0x10
JNZ 0x0014f801
LEA RDX,[0x18d657]
MOV RSI,R14
MOV RDI,R13
CALL 0x0014f216
MOV RDI,RBX
CALL 0x00133200
CMP EAX,0x9e
JZ 0x0014f758
MOV R12D,0x1
JMP 0x0014f4e5
TEST BPL,0x8
JZ 0x0014f71b
MOV R12D,0x1
JMP 0x0014f4e5
MOV RDI,RBX
CALL 0x00132190
MOV RBX,RAX
TEST RAX,RAX
JZ 0x0014f4e5
MOV RSI,RAX
MOV RDI,R13
CALL 0x0017ba67
MOV RSI,RBX
MOV RDI,R13
CALL 0x0012f550
MOV R12D,EAX
MOV RDI,RBX
CALL 0x00133298
JMP 0x0014f4e5
LEA RSI,[0x18d698]
MOV RDI,qword ptr [0x001b76b0]
MOV EAX,0x0
CALL 0x0012e210
JMP 0x0014f4a2
LEA RSI,[0x18da08]
MOV RDI,qword ptr [0x001b76b0]
MOV EAX,0x0
CALL 0x0012e210
MOV RDI,RBX
CALL 0x001315d0
MOV RSI,RAX
MOV RDI,qword ptr [0x001b76b0]
CALL 0x0012f200
LEA RSI,[0x18c9a1]
MOV RDI,qword ptr [0x001b76b0]
MOV EAX,0x0
CALL 0x0012e210
MOV R12D,0x1
JMP 0x0014f4e5
MOV R12D,0x1
JMP 0x0014f4e5
CALL 0x00131690
(translation_unit "uint FUN_0014f424(BIO *param_1,PKCS12_SAFEBAG *param_2,char *param_3,int param_4,uint param_5,\n                 void *param_6,EVP_CIPHER *param_7)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined8 uVar3;\n  PKCS8_PRIV_KEY_INFO *pPVar4;\n  EVP_PKEY *pEVar5;\n  undefined8 uVar6;\n  long lVar7;\n  X509 *x;\n  ASN1_OBJECT *a;\n  long in_FS_OFFSET;\n  undefined8 local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar3 = PKCS12_SAFEBAG_get0_attrs(param_2);\n  iVar1 = PKCS12_SAFEBAG_get_nid(param_2);\n  if (iVar1 == 0x97) {\n    if ((param_5 & 4) != 0) {\n      BIO_printf(DAT_001b76b0,"Shrouded Keybag: ");\n      uVar6 = PKCS12_SAFEBAG_get0_pkcs8(param_2);\n      X509_SIG_get0(uVar6,&local_48,0);\n      FUN_0014ee52(local_48);\n    }\n    uVar2 = param_5 & 1;\n    if ((param_5 & 1) == 0) {\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      pPVar4 = PKCS12_decrypt_skey(param_2,param_3,param_4);\n      if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n    }\n    goto LAB_0014f4e5;\n  }\n  if (iVar1 < 0x98) {\n    if (iVar1 == 0x96) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Key bag\n");\n      }\n      uVar2 = param_5 & 1;\n      if ((param_5 & 1) == 0) {\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n      goto LAB_0014f4e5;\n    }\n  }\n  else {\n    if (iVar1 == 0x98) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Certificate bag\n");\n      }\n      uVar2 = param_5 & 2;\n      if ((param_5 & 2) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);\n        if (lVar7 == 0) {\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }\n      goto LAB_0014f4e5;\n    }\n    if (iVar1 == 0x9b) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Safe Contents bag\n");\n      }\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      uVar3 = PKCS12_SAFEBAG_get0_safes(param_2);\n      uVar2 = FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7);\n      goto LAB_0014f4e5;\n    }\n  }\n  BIO_printf(DAT_001b76b0,"Warning unsupported bag type: ");\n  a = (ASN1_OBJECT *)PKCS12_SAFEBAG_get0_type(param_2);\n  i2a_ASN1_OBJECT(DAT_001b76b0,a);\n  BIO_printf(DAT_001b76b0,"\n");\n  uVar2 = 1;\nLAB_0014f4e5:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" (function_definition "uint FUN_0014f424(BIO *param_1,PKCS12_SAFEBAG *param_2,char *param_3,int param_4,uint param_5,\n                 void *param_6,EVP_CIPHER *param_7)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined8 uVar3;\n  PKCS8_PRIV_KEY_INFO *pPVar4;\n  EVP_PKEY *pEVar5;\n  undefined8 uVar6;\n  long lVar7;\n  X509 *x;\n  ASN1_OBJECT *a;\n  long in_FS_OFFSET;\n  undefined8 local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar3 = PKCS12_SAFEBAG_get0_attrs(param_2);\n  iVar1 = PKCS12_SAFEBAG_get_nid(param_2);\n  if (iVar1 == 0x97) {\n    if ((param_5 & 4) != 0) {\n      BIO_printf(DAT_001b76b0,"Shrouded Keybag: ");\n      uVar6 = PKCS12_SAFEBAG_get0_pkcs8(param_2);\n      X509_SIG_get0(uVar6,&local_48,0);\n      FUN_0014ee52(local_48);\n    }\n    uVar2 = param_5 & 1;\n    if ((param_5 & 1) == 0) {\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      pPVar4 = PKCS12_decrypt_skey(param_2,param_3,param_4);\n      if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n    }\n    goto LAB_0014f4e5;\n  }\n  if (iVar1 < 0x98) {\n    if (iVar1 == 0x96) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Key bag\n");\n      }\n      uVar2 = param_5 & 1;\n      if ((param_5 & 1) == 0) {\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n      goto LAB_0014f4e5;\n    }\n  }\n  else {\n    if (iVar1 == 0x98) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Certificate bag\n");\n      }\n      uVar2 = param_5 & 2;\n      if ((param_5 & 2) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);\n        if (lVar7 == 0) {\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }\n      goto LAB_0014f4e5;\n    }\n    if (iVar1 == 0x9b) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Safe Contents bag\n");\n      }\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      uVar3 = PKCS12_SAFEBAG_get0_safes(param_2);\n      uVar2 = FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7);\n      goto LAB_0014f4e5;\n    }\n  }\n  BIO_printf(DAT_001b76b0,"Warning unsupported bag type: ");\n  a = (ASN1_OBJECT *)PKCS12_SAFEBAG_get0_type(param_2);\n  i2a_ASN1_OBJECT(DAT_001b76b0,a);\n  BIO_printf(DAT_001b76b0,"\n");\n  uVar2 = 1;\nLAB_0014f4e5:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" type_identifier (function_declarator "FUN_0014f424(BIO *param_1,PKCS12_SAFEBAG *param_2,char *param_3,int param_4,uint param_5,\n                 void *param_6,EVP_CIPHER *param_7)" identifier (parameter_list "(BIO *param_1,PKCS12_SAFEBAG *param_2,char *param_3,int param_4,uint param_5,\n                 void *param_6,EVP_CIPHER *param_7)" ( (parameter_declaration "BIO *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "PKCS12_SAFEBAG *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "uint param_5" type_identifier identifier) , (parameter_declaration "void *param_6" primitive_type (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "EVP_CIPHER *param_7" type_identifier (pointer_declarator "*param_7" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  undefined8 uVar3;\n  PKCS8_PRIV_KEY_INFO *pPVar4;\n  EVP_PKEY *pEVar5;\n  undefined8 uVar6;\n  long lVar7;\n  X509 *x;\n  ASN1_OBJECT *a;\n  long in_FS_OFFSET;\n  undefined8 local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar3 = PKCS12_SAFEBAG_get0_attrs(param_2);\n  iVar1 = PKCS12_SAFEBAG_get_nid(param_2);\n  if (iVar1 == 0x97) {\n    if ((param_5 & 4) != 0) {\n      BIO_printf(DAT_001b76b0,"Shrouded Keybag: ");\n      uVar6 = PKCS12_SAFEBAG_get0_pkcs8(param_2);\n      X509_SIG_get0(uVar6,&local_48,0);\n      FUN_0014ee52(local_48);\n    }\n    uVar2 = param_5 & 1;\n    if ((param_5 & 1) == 0) {\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      pPVar4 = PKCS12_decrypt_skey(param_2,param_3,param_4);\n      if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n    }\n    goto LAB_0014f4e5;\n  }\n  if (iVar1 < 0x98) {\n    if (iVar1 == 0x96) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Key bag\n");\n      }\n      uVar2 = param_5 & 1;\n      if ((param_5 & 1) == 0) {\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n      goto LAB_0014f4e5;\n    }\n  }\n  else {\n    if (iVar1 == 0x98) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Certificate bag\n");\n      }\n      uVar2 = param_5 & 2;\n      if ((param_5 & 2) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);\n        if (lVar7 == 0) {\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }\n      goto LAB_0014f4e5;\n    }\n    if (iVar1 == 0x9b) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Safe Contents bag\n");\n      }\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      uVar3 = PKCS12_SAFEBAG_get0_safes(param_2);\n      uVar2 = FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7);\n      goto LAB_0014f4e5;\n    }\n  }\n  BIO_printf(DAT_001b76b0,"Warning unsupported bag type: ");\n  a = (ASN1_OBJECT *)PKCS12_SAFEBAG_get0_type(param_2);\n  i2a_ASN1_OBJECT(DAT_001b76b0,a);\n  BIO_printf(DAT_001b76b0,"\n");\n  uVar2 = 1;\nLAB_0014f4e5:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "PKCS8_PRIV_KEY_INFO *pPVar4;" type_identifier (pointer_declarator "*pPVar4" * identifier) ;) (declaration "EVP_PKEY *pEVar5;" type_identifier (pointer_declarator "*pEVar5" * identifier) ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "X509 *x;" type_identifier (pointer_declarator "*x" * identifier) ;) (declaration "ASN1_OBJECT *a;" type_identifier (pointer_declarator "*a" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_48;" type_identifier identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = PKCS12_SAFEBAG_get0_attrs(param_2);" (assignment_expression "uVar3 = PKCS12_SAFEBAG_get0_attrs(param_2)" identifier = (call_expression "PKCS12_SAFEBAG_get0_attrs(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "iVar1 = PKCS12_SAFEBAG_get_nid(param_2);" (assignment_expression "iVar1 = PKCS12_SAFEBAG_get_nid(param_2)" identifier = (call_expression "PKCS12_SAFEBAG_get_nid(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar1 == 0x97) {\n    if ((param_5 & 4) != 0) {\n      BIO_printf(DAT_001b76b0,"Shrouded Keybag: ");\n      uVar6 = PKCS12_SAFEBAG_get0_pkcs8(param_2);\n      X509_SIG_get0(uVar6,&local_48,0);\n      FUN_0014ee52(local_48);\n    }\n    uVar2 = param_5 & 1;\n    if ((param_5 & 1) == 0) {\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      pPVar4 = PKCS12_decrypt_skey(param_2,param_3,param_4);\n      if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n    }\n    goto LAB_0014f4e5;\n  }" if (parenthesized_expression "(iVar1 == 0x97)" ( (binary_expression "iVar1 == 0x97" identifier == number_literal) )) (compound_statement "{\n    if ((param_5 & 4) != 0) {\n      BIO_printf(DAT_001b76b0,"Shrouded Keybag: ");\n      uVar6 = PKCS12_SAFEBAG_get0_pkcs8(param_2);\n      X509_SIG_get0(uVar6,&local_48,0);\n      FUN_0014ee52(local_48);\n    }\n    uVar2 = param_5 & 1;\n    if ((param_5 & 1) == 0) {\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      pPVar4 = PKCS12_decrypt_skey(param_2,param_3,param_4);\n      if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n    }\n    goto LAB_0014f4e5;\n  }" { (if_statement "if ((param_5 & 4) != 0) {\n      BIO_printf(DAT_001b76b0,"Shrouded Keybag: ");\n      uVar6 = PKCS12_SAFEBAG_get0_pkcs8(param_2);\n      X509_SIG_get0(uVar6,&local_48,0);\n      FUN_0014ee52(local_48);\n    }" if (parenthesized_expression "((param_5 & 4) != 0)" ( (binary_expression "(param_5 & 4) != 0" (parenthesized_expression "(param_5 & 4)" ( (binary_expression "param_5 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      BIO_printf(DAT_001b76b0,"Shrouded Keybag: ");\n      uVar6 = PKCS12_SAFEBAG_get0_pkcs8(param_2);\n      X509_SIG_get0(uVar6,&local_48,0);\n      FUN_0014ee52(local_48);\n    }" { (expression_statement "BIO_printf(DAT_001b76b0,"Shrouded Keybag: ");" (call_expression "BIO_printf(DAT_001b76b0,"Shrouded Keybag: ")" identifier (argument_list "(DAT_001b76b0,"Shrouded Keybag: ")" ( identifier , (string_literal ""Shrouded Keybag: "" " string_content ") ))) ;) (expression_statement "uVar6 = PKCS12_SAFEBAG_get0_pkcs8(param_2);" (assignment_expression "uVar6 = PKCS12_SAFEBAG_get0_pkcs8(param_2)" identifier = (call_expression "PKCS12_SAFEBAG_get0_pkcs8(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "X509_SIG_get0(uVar6,&local_48,0);" (call_expression "X509_SIG_get0(uVar6,&local_48,0)" identifier (argument_list "(uVar6,&local_48,0)" ( identifier , (pointer_expression "&local_48" & identifier) , number_literal ))) ;) (expression_statement "FUN_0014ee52(local_48);" (call_expression "FUN_0014ee52(local_48)" identifier (argument_list "(local_48)" ( identifier ))) ;) })) (expression_statement "uVar2 = param_5 & 1;" (assignment_expression "uVar2 = param_5 & 1" identifier = (binary_expression "param_5 & 1" identifier & number_literal)) ;) (if_statement "if ((param_5 & 1) == 0) {\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      pPVar4 = PKCS12_decrypt_skey(param_2,param_3,param_4);\n      if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n    }" if (parenthesized_expression "((param_5 & 1) == 0)" ( (binary_expression "(param_5 & 1) == 0" (parenthesized_expression "(param_5 & 1)" ( (binary_expression "param_5 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      pPVar4 = PKCS12_decrypt_skey(param_2,param_3,param_4);\n      if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n    }" { (expression_statement "FUN_0014f216(param_1,uVar3,"Bag Attributes");" (call_expression "FUN_0014f216(param_1,uVar3,"Bag Attributes")" identifier (argument_list "(param_1,uVar3,"Bag Attributes")" ( identifier , identifier , (string_literal ""Bag Attributes"" " string_content ") ))) ;) (expression_statement "pPVar4 = PKCS12_decrypt_skey(param_2,param_3,param_4);" (assignment_expression "pPVar4 = PKCS12_decrypt_skey(param_2,param_3,param_4)" identifier = (call_expression "PKCS12_decrypt_skey(param_2,param_3,param_4)" identifier (argument_list "(param_2,param_3,param_4)" ( identifier , identifier , identifier )))) ;) (if_statement "if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }" if (parenthesized_expression "(pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0)" ( (binary_expression "pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0" identifier != (cast_expression "(PKCS8_PRIV_KEY_INFO *)0x0" ( (type_descriptor "PKCS8_PRIV_KEY_INFO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }" { (expression_statement "pEVar5 = EVP_PKCS82PKEY(pPVar4);" (assignment_expression "pEVar5 = EVP_PKCS82PKEY(pPVar4)" identifier = (call_expression "EVP_PKCS82PKEY(pPVar4)" identifier (argument_list "(pPVar4)" ( identifier )))) ;) (if_statement "if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }" if (parenthesized_expression "(pEVar5 == (EVP_PKEY *)0x0)" ( (binary_expression "pEVar5 == (EVP_PKEY *)0x0" identifier == (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }" { (expression_statement "PKCS8_PRIV_KEY_INFO_free(pPVar4);" (call_expression "PKCS8_PRIV_KEY_INFO_free(pPVar4)" identifier (argument_list "(pPVar4)" ( identifier ))) ;) }) (else_clause "else {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }" else (compound_statement "{\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }" { (expression_statement "uVar3 = PKCS8_pkey_get0_attrs(pPVar4);" (assignment_expression "uVar3 = PKCS8_pkey_get0_attrs(pPVar4)" identifier = (call_expression "PKCS8_pkey_get0_attrs(pPVar4)" identifier (argument_list "(pPVar4)" ( identifier )))) ;) (expression_statement "FUN_0014f216(param_1,uVar3,"Key Attributes");" (call_expression "FUN_0014f216(param_1,uVar3,"Key Attributes")" identifier (argument_list "(param_1,uVar3,"Key Attributes")" ( identifier , identifier , (string_literal ""Key Attributes"" " string_content ") ))) ;) (expression_statement "PKCS8_PRIV_KEY_INFO_free(pPVar4);" (call_expression "PKCS8_PRIV_KEY_INFO_free(pPVar4)" identifier (argument_list "(pPVar4)" ( identifier ))) ;) (expression_statement "uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);" (assignment_expression "uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6)" identifier = (call_expression "PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6)" identifier (argument_list "(param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6)" ( identifier , identifier , identifier , (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal , (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) ;) (expression_statement "EVP_PKEY_free(pEVar5);" (call_expression "EVP_PKEY_free(pEVar5)" identifier (argument_list "(pEVar5)" ( identifier ))) ;) }))) })) })) (goto_statement "goto LAB_0014f4e5;" goto statement_identifier ;) })) (if_statement "if (iVar1 < 0x98) {\n    if (iVar1 == 0x96) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Key bag\n");\n      }\n      uVar2 = param_5 & 1;\n      if ((param_5 & 1) == 0) {\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n      goto LAB_0014f4e5;\n    }\n  }\n  else {\n    if (iVar1 == 0x98) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Certificate bag\n");\n      }\n      uVar2 = param_5 & 2;\n      if ((param_5 & 2) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);\n        if (lVar7 == 0) {\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }\n      goto LAB_0014f4e5;\n    }\n    if (iVar1 == 0x9b) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Safe Contents bag\n");\n      }\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      uVar3 = PKCS12_SAFEBAG_get0_safes(param_2);\n      uVar2 = FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7);\n      goto LAB_0014f4e5;\n    }\n  }" if (parenthesized_expression "(iVar1 < 0x98)" ( (binary_expression "iVar1 < 0x98" identifier < number_literal) )) (compound_statement "{\n    if (iVar1 == 0x96) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Key bag\n");\n      }\n      uVar2 = param_5 & 1;\n      if ((param_5 & 1) == 0) {\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n      goto LAB_0014f4e5;\n    }\n  }" { (if_statement "if (iVar1 == 0x96) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Key bag\n");\n      }\n      uVar2 = param_5 & 1;\n      if ((param_5 & 1) == 0) {\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n      goto LAB_0014f4e5;\n    }" if (parenthesized_expression "(iVar1 == 0x96)" ( (binary_expression "iVar1 == 0x96" identifier == number_literal) )) (compound_statement "{\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Key bag\n");\n      }\n      uVar2 = param_5 & 1;\n      if ((param_5 & 1) == 0) {\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n      goto LAB_0014f4e5;\n    }" { (if_statement "if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Key bag\n");\n      }" if (parenthesized_expression "((param_5 & 4) != 0)" ( (binary_expression "(param_5 & 4) != 0" (parenthesized_expression "(param_5 & 4)" ( (binary_expression "param_5 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        BIO_printf(DAT_001b76b0,"Key bag\n");\n      }" { (expression_statement "BIO_printf(DAT_001b76b0,"Key bag\n");" (call_expression "BIO_printf(DAT_001b76b0,"Key bag\n")" identifier (argument_list "(DAT_001b76b0,"Key bag\n")" ( identifier , (string_literal ""Key bag\n"" " string_content escape_sequence ") ))) ;) })) (expression_statement "uVar2 = param_5 & 1;" (assignment_expression "uVar2 = param_5 & 1" identifier = (binary_expression "param_5 & 1" identifier & number_literal)) ;) (if_statement "if ((param_5 & 1) == 0) {\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }" if (parenthesized_expression "((param_5 & 1) == 0)" ( (binary_expression "(param_5 & 1) == 0" (parenthesized_expression "(param_5 & 1)" ( (binary_expression "param_5 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }" { (expression_statement "FUN_0014f216(param_1,uVar3,"Bag Attributes");" (call_expression "FUN_0014f216(param_1,uVar3,"Bag Attributes")" identifier (argument_list "(param_1,uVar3,"Bag Attributes")" ( identifier , identifier , (string_literal ""Bag Attributes"" " string_content ") ))) ;) (expression_statement "pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2);" (assignment_expression "pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2)" identifier = (cast_expression "(PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2)" ( (type_descriptor "PKCS8_PRIV_KEY_INFO *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "PKCS12_SAFEBAG_get0_p8inf(param_2)" identifier (argument_list "(param_2)" ( identifier ))))) ;) (expression_statement "pEVar5 = EVP_PKCS82PKEY(pPVar4);" (assignment_expression "pEVar5 = EVP_PKCS82PKEY(pPVar4)" identifier = (call_expression "EVP_PKCS82PKEY(pPVar4)" identifier (argument_list "(pPVar4)" ( identifier )))) ;) (if_statement "if (pEVar5 != (EVP_PKEY *)0x0) {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }" if (parenthesized_expression "(pEVar5 != (EVP_PKEY *)0x0)" ( (binary_expression "pEVar5 != (EVP_PKEY *)0x0" identifier != (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }" { (expression_statement "uVar3 = PKCS8_pkey_get0_attrs(pPVar4);" (assignment_expression "uVar3 = PKCS8_pkey_get0_attrs(pPVar4)" identifier = (call_expression "PKCS8_pkey_get0_attrs(pPVar4)" identifier (argument_list "(pPVar4)" ( identifier )))) ;) (expression_statement "FUN_0014f216(param_1,uVar3,"Key Attributes");" (call_expression "FUN_0014f216(param_1,uVar3,"Key Attributes")" identifier (argument_list "(param_1,uVar3,"Key Attributes")" ( identifier , identifier , (string_literal ""Key Attributes"" " string_content ") ))) ;) (expression_statement "uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);" (assignment_expression "uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6)" identifier = (call_expression "PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6)" identifier (argument_list "(param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6)" ( identifier , identifier , identifier , (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal , (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) ;) (expression_statement "EVP_PKEY_free(pEVar5);" (call_expression "EVP_PKEY_free(pEVar5)" identifier (argument_list "(pEVar5)" ( identifier ))) ;) })) })) (goto_statement "goto LAB_0014f4e5;" goto statement_identifier ;) })) }) (else_clause "else {\n    if (iVar1 == 0x98) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Certificate bag\n");\n      }\n      uVar2 = param_5 & 2;\n      if ((param_5 & 2) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);\n        if (lVar7 == 0) {\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }\n      goto LAB_0014f4e5;\n    }\n    if (iVar1 == 0x9b) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Safe Contents bag\n");\n      }\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      uVar3 = PKCS12_SAFEBAG_get0_safes(param_2);\n      uVar2 = FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7);\n      goto LAB_0014f4e5;\n    }\n  }" else (compound_statement "{\n    if (iVar1 == 0x98) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Certificate bag\n");\n      }\n      uVar2 = param_5 & 2;\n      if ((param_5 & 2) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);\n        if (lVar7 == 0) {\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }\n      goto LAB_0014f4e5;\n    }\n    if (iVar1 == 0x9b) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Safe Contents bag\n");\n      }\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      uVar3 = PKCS12_SAFEBAG_get0_safes(param_2);\n      uVar2 = FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7);\n      goto LAB_0014f4e5;\n    }\n  }" { (if_statement "if (iVar1 == 0x98) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Certificate bag\n");\n      }\n      uVar2 = param_5 & 2;\n      if ((param_5 & 2) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);\n        if (lVar7 == 0) {\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }\n      goto LAB_0014f4e5;\n    }" if (parenthesized_expression "(iVar1 == 0x98)" ( (binary_expression "iVar1 == 0x98" identifier == number_literal) )) (compound_statement "{\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Certificate bag\n");\n      }\n      uVar2 = param_5 & 2;\n      if ((param_5 & 2) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);\n        if (lVar7 == 0) {\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }\n      goto LAB_0014f4e5;\n    }" { (if_statement "if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Certificate bag\n");\n      }" if (parenthesized_expression "((param_5 & 4) != 0)" ( (binary_expression "(param_5 & 4) != 0" (parenthesized_expression "(param_5 & 4)" ( (binary_expression "param_5 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        BIO_printf(DAT_001b76b0,"Certificate bag\n");\n      }" { (expression_statement "BIO_printf(DAT_001b76b0,"Certificate bag\n");" (call_expression "BIO_printf(DAT_001b76b0,"Certificate bag\n")" identifier (argument_list "(DAT_001b76b0,"Certificate bag\n")" ( identifier , (string_literal ""Certificate bag\n"" " string_content escape_sequence ") ))) ;) })) (expression_statement "uVar2 = param_5 & 2;" (assignment_expression "uVar2 = param_5 & 2" identifier = (binary_expression "param_5 & 2" identifier & number_literal)) ;) (if_statement "if ((param_5 & 2) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);\n        if (lVar7 == 0) {\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }" if (parenthesized_expression "((param_5 & 2) == 0)" ( (binary_expression "(param_5 & 2) == 0" (parenthesized_expression "(param_5 & 2)" ( (binary_expression "param_5 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);\n        if (lVar7 == 0) {\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }" { (expression_statement "lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);" (assignment_expression "lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d)" identifier = (call_expression "PKCS12_SAFEBAG_get0_attr(param_2,0x9d)" identifier (argument_list "(param_2,0x9d)" ( identifier , number_literal )))) ;) (if_statement "if (lVar7 == 0) {\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }" { (if_statement "if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }" if (parenthesized_expression "((param_5 & 8) != 0)" ( (binary_expression "(param_5 & 8) != 0" (parenthesized_expression "(param_5 & 8)" ( (binary_expression "param_5 & 8" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }" { (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0014f4e5;" goto statement_identifier ;) })) }) (else_clause "else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }" else (if_statement "if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }" if (parenthesized_expression "((param_5 & 0x10) != 0)" ( (binary_expression "(param_5 & 0x10) != 0" (parenthesized_expression "(param_5 & 0x10)" ( (binary_expression "param_5 & 0x10" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }" { (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0014f4e5;" goto statement_identifier ;) })))) (expression_statement "FUN_0014f216(param_1,uVar3,"Bag Attributes");" (call_expression "FUN_0014f216(param_1,uVar3,"Bag Attributes")" identifier (argument_list "(param_1,uVar3,"Bag Attributes")" ( identifier , identifier , (string_literal ""Bag Attributes"" " string_content ") ))) ;) (expression_statement "iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);" (assignment_expression "iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2)" identifier = (call_expression "PKCS12_SAFEBAG_get_bag_nid(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }" if (parenthesized_expression "(iVar1 == 0x9e)" ( (binary_expression "iVar1 == 0x9e" identifier == number_literal) )) (compound_statement "{\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }" { (expression_statement "x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);" (assignment_expression "x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2)" identifier = (cast_expression "(X509 *)PKCS12_SAFEBAG_get1_cert(param_2)" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "PKCS12_SAFEBAG_get1_cert(param_2)" identifier (argument_list "(param_2)" ( identifier ))))) ;) (if_statement "if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }" if (parenthesized_expression "(x != (X509 *)0x0)" ( (binary_expression "x != (X509 *)0x0" identifier != (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }" { (expression_statement "FUN_0017ba67(param_1,x);" (call_expression "FUN_0017ba67(param_1,x)" identifier (argument_list "(param_1,x)" ( identifier , identifier ))) ;) (expression_statement "uVar2 = PEM_write_bio_X509(param_1,x);" (assignment_expression "uVar2 = PEM_write_bio_X509(param_1,x)" identifier = (call_expression "PEM_write_bio_X509(param_1,x)" identifier (argument_list "(param_1,x)" ( identifier , identifier )))) ;) (expression_statement "X509_free(x);" (call_expression "X509_free(x)" identifier (argument_list "(x)" ( identifier ))) ;) })) }) (else_clause "else {\n          uVar2 = 1;\n        }" else (compound_statement "{\n          uVar2 = 1;\n        }" { (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n        uVar2 = 1;\n      }" else (compound_statement "{\n        uVar2 = 1;\n      }" { (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) }))) (goto_statement "goto LAB_0014f4e5;" goto statement_identifier ;) })) (if_statement "if (iVar1 == 0x9b) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Safe Contents bag\n");\n      }\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      uVar3 = PKCS12_SAFEBAG_get0_safes(param_2);\n      uVar2 = FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7);\n      goto LAB_0014f4e5;\n    }" if (parenthesized_expression "(iVar1 == 0x9b)" ( (binary_expression "iVar1 == 0x9b" identifier == number_literal) )) (compound_statement "{\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Safe Contents bag\n");\n      }\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      uVar3 = PKCS12_SAFEBAG_get0_safes(param_2);\n      uVar2 = FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7);\n      goto LAB_0014f4e5;\n    }" { (if_statement "if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Safe Contents bag\n");\n      }" if (parenthesized_expression "((param_5 & 4) != 0)" ( (binary_expression "(param_5 & 4) != 0" (parenthesized_expression "(param_5 & 4)" ( (binary_expression "param_5 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        BIO_printf(DAT_001b76b0,"Safe Contents bag\n");\n      }" { (expression_statement "BIO_printf(DAT_001b76b0,"Safe Contents bag\n");" (call_expression "BIO_printf(DAT_001b76b0,"Safe Contents bag\n")" identifier (argument_list "(DAT_001b76b0,"Safe Contents bag\n")" ( identifier , (string_literal ""Safe Contents bag\n"" " string_content escape_sequence ") ))) ;) })) (expression_statement "FUN_0014f216(param_1,uVar3,"Bag Attributes");" (call_expression "FUN_0014f216(param_1,uVar3,"Bag Attributes")" identifier (argument_list "(param_1,uVar3,"Bag Attributes")" ( identifier , identifier , (string_literal ""Bag Attributes"" " string_content ") ))) ;) (expression_statement "uVar3 = PKCS12_SAFEBAG_get0_safes(param_2);" (assignment_expression "uVar3 = PKCS12_SAFEBAG_get0_safes(param_2)" identifier = (call_expression "PKCS12_SAFEBAG_get0_safes(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "uVar2 = FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7);" (assignment_expression "uVar2 = FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7)" identifier = (call_expression "FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7)" identifier (argument_list "(param_1,uVar3,param_3,param_4,param_5,param_6,param_7)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (goto_statement "goto LAB_0014f4e5;" goto statement_identifier ;) })) }))) (expression_statement "BIO_printf(DAT_001b76b0,"Warning unsupported bag type: ");" (call_expression "BIO_printf(DAT_001b76b0,"Warning unsupported bag type: ")" identifier (argument_list "(DAT_001b76b0,"Warning unsupported bag type: ")" ( identifier , (string_literal ""Warning unsupported bag type: "" " string_content ") ))) ;) (expression_statement "a = (ASN1_OBJECT *)PKCS12_SAFEBAG_get0_type(param_2);" (assignment_expression "a = (ASN1_OBJECT *)PKCS12_SAFEBAG_get0_type(param_2)" identifier = (cast_expression "(ASN1_OBJECT *)PKCS12_SAFEBAG_get0_type(param_2)" ( (type_descriptor "ASN1_OBJECT *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "PKCS12_SAFEBAG_get0_type(param_2)" identifier (argument_list "(param_2)" ( identifier ))))) ;) (expression_statement "i2a_ASN1_OBJECT(DAT_001b76b0,a);" (call_expression "i2a_ASN1_OBJECT(DAT_001b76b0,a)" identifier (argument_list "(DAT_001b76b0,a)" ( identifier , identifier ))) ;) (expression_statement "BIO_printf(DAT_001b76b0,"\n");" (call_expression "BIO_printf(DAT_001b76b0,"\n")" identifier (argument_list "(DAT_001b76b0,"\n")" ( identifier , (string_literal ""\n"" " escape_sequence ") ))) ;) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0014f4e5:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar2;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar2;\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 uVar2;\n  }" { (return_statement "return uVar2;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "int dump_certs_pkeys_bag\n              (BIO *out,PKCS12_SAFEBAG *bag,char *pass,int passlen,int options,char *pempass,\n              EVP_CIPHER *enc)\n\n{\n  int iVar1;\n  uint uVar2;\n  stack_st_X509_ATTRIBUTE *psVar3;\n  stack_st_PKCS12_SAFEBAG *bags;\n  PKCS8_PRIV_KEY_INFO *pPVar4;\n  EVP_PKEY *pEVar5;\n  undefined8 uVar6;\n  long lVar7;\n  X509 *x;\n  ASN1_OBJECT *a;\n  long in_FS_OFFSET;\n  X509_ALGOR *tp8alg;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS12_SAFEBAG_get0_attrs(bag);\n  iVar1 = PKCS12_SAFEBAG_get_nid(bag);\n  if (iVar1 == 0x97) {\n    if ((options & 4U) != 0) {\n      BIO_printf((BIO *)bio_err,"Shrouded Keybag: ");\n      uVar6 = PKCS12_SAFEBAG_get0_pkcs8(bag);\n      X509_SIG_get0(uVar6,&tp8alg,0);\n      alg_print(tp8alg);\n    }\n    uVar2 = options & 1;\n    if (uVar2 == 0) {\n      print_attribs(out,psVar3,"Bag Attributes");\n      pPVar4 = PKCS12_decrypt_skey((PKCS12_SAFEBAG *)bag,pass,passlen);\n      if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS8_pkey_get0_attrs(pPVar4);\n          print_attribs(out,psVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            ((BIO *)out,pEVar5,(EVP_CIPHER *)enc,(uchar *)0x0,0,(undefined1 *)0x0,\n                             pempass);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n    }\n    goto LAB_0014f4e5;\n  }\n  if (iVar1 < 0x98) {\n    if (iVar1 == 0x96) {\n      if ((options & 4U) != 0) {\n        BIO_printf((BIO *)bio_err,"Key bag\n");\n      }\n      uVar2 = options & 1;\n      if (uVar2 == 0) {\n        print_attribs(out,psVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(bag);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS8_pkey_get0_attrs(pPVar4);\n          print_attribs(out,psVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            ((BIO *)out,pEVar5,(EVP_CIPHER *)enc,(uchar *)0x0,0,(undefined1 *)0x0,\n                             pempass);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n      goto LAB_0014f4e5;\n    }\n  }\n  else {\n    if (iVar1 == 0x98) {\n      if ((options & 4U) != 0) {\n        BIO_printf((BIO *)bio_err,"Certificate bag\n");\n      }\n      uVar2 = options & 2;\n      if ((options & 2U) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(bag,0x9d);\n        if (lVar7 == 0) {\n          if ((options & 8U) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((options & 0x10U) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        print_attribs(out,psVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(bag);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(bag);\n          if (x != (X509 *)0x0) {\n            dump_cert_text(out,(X509 *)x);\n            uVar2 = PEM_write_bio_X509((BIO *)out,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }\n      goto LAB_0014f4e5;\n    }\n    if (iVar1 == 0x9b) {\n      if ((options & 4U) != 0) {\n        BIO_printf((BIO *)bio_err,"Safe Contents bag\n");\n      }\n      print_attribs(out,psVar3,"Bag Attributes");\n      bags = (stack_st_PKCS12_SAFEBAG *)PKCS12_SAFEBAG_get0_safes(bag);\n      uVar2 = dump_certs_pkeys_bags(out,bags,pass,passlen,options,pempass,enc);\n      goto LAB_0014f4e5;\n    }\n  }\n  BIO_printf((BIO *)bio_err,"Warning unsupported bag type: ");\n  a = (ASN1_OBJECT *)PKCS12_SAFEBAG_get0_type(bag);\n  i2a_ASN1_OBJECT((BIO *)bio_err,a);\n  BIO_printf((BIO *)bio_err,"\n");\n  uVar2 = 1;\nLAB_0014f4e5:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" (function_definition "int dump_certs_pkeys_bag\n              (BIO *out,PKCS12_SAFEBAG *bag,char *pass,int passlen,int options,char *pempass,\n              EVP_CIPHER *enc)\n\n{\n  int iVar1;\n  uint uVar2;\n  stack_st_X509_ATTRIBUTE *psVar3;\n  stack_st_PKCS12_SAFEBAG *bags;\n  PKCS8_PRIV_KEY_INFO *pPVar4;\n  EVP_PKEY *pEVar5;\n  undefined8 uVar6;\n  long lVar7;\n  X509 *x;\n  ASN1_OBJECT *a;\n  long in_FS_OFFSET;\n  X509_ALGOR *tp8alg;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS12_SAFEBAG_get0_attrs(bag);\n  iVar1 = PKCS12_SAFEBAG_get_nid(bag);\n  if (iVar1 == 0x97) {\n    if ((options & 4U) != 0) {\n      BIO_printf((BIO *)bio_err,"Shrouded Keybag: ");\n      uVar6 = PKCS12_SAFEBAG_get0_pkcs8(bag);\n      X509_SIG_get0(uVar6,&tp8alg,0);\n      alg_print(tp8alg);\n    }\n    uVar2 = options & 1;\n    if (uVar2 == 0) {\n      print_attribs(out,psVar3,"Bag Attributes");\n      pPVar4 = PKCS12_decrypt_skey((PKCS12_SAFEBAG *)bag,pass,passlen);\n      if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS8_pkey_get0_attrs(pPVar4);\n          print_attribs(out,psVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            ((BIO *)out,pEVar5,(EVP_CIPHER *)enc,(uchar *)0x0,0,(undefined1 *)0x0,\n                             pempass);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n    }\n    goto LAB_0014f4e5;\n  }\n  if (iVar1 < 0x98) {\n    if (iVar1 == 0x96) {\n      if ((options & 4U) != 0) {\n        BIO_printf((BIO *)bio_err,"Key bag\n");\n      }\n      uVar2 = options & 1;\n      if (uVar2 == 0) {\n        print_attribs(out,psVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(bag);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS8_pkey_get0_attrs(pPVar4);\n          print_attribs(out,psVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            ((BIO *)out,pEVar5,(EVP_CIPHER *)enc,(uchar *)0x0,0,(undefined1 *)0x0,\n                             pempass);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n      goto LAB_0014f4e5;\n    }\n  }\n  else {\n    if (iVar1 == 0x98) {\n      if ((options & 4U) != 0) {\n        BIO_printf((BIO *)bio_err,"Certificate bag\n");\n      }\n      uVar2 = options & 2;\n      if ((options & 2U) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(bag,0x9d);\n        if (lVar7 == 0) {\n          if ((options & 8U) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((options & 0x10U) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        print_attribs(out,psVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(bag);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(bag);\n          if (x != (X509 *)0x0) {\n            dump_cert_text(out,(X509 *)x);\n            uVar2 = PEM_write_bio_X509((BIO *)out,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }\n      goto LAB_0014f4e5;\n    }\n    if (iVar1 == 0x9b) {\n      if ((options & 4U) != 0) {\n        BIO_printf((BIO *)bio_err,"Safe Contents bag\n");\n      }\n      print_attribs(out,psVar3,"Bag Attributes");\n      bags = (stack_st_PKCS12_SAFEBAG *)PKCS12_SAFEBAG_get0_safes(bag);\n      uVar2 = dump_certs_pkeys_bags(out,bags,pass,passlen,options,pempass,enc);\n      goto LAB_0014f4e5;\n    }\n  }\n  BIO_printf((BIO *)bio_err,"Warning unsupported bag type: ");\n  a = (ASN1_OBJECT *)PKCS12_SAFEBAG_get0_type(bag);\n  i2a_ASN1_OBJECT((BIO *)bio_err,a);\n  BIO_printf((BIO *)bio_err,"\n");\n  uVar2 = 1;\nLAB_0014f4e5:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (function_declarator "dump_certs_pkeys_bag\n              (BIO *out,PKCS12_SAFEBAG *bag,char *pass,int passlen,int options,char *pempass,\n              EVP_CIPHER *enc)" identifier (parameter_list "(BIO *out,PKCS12_SAFEBAG *bag,char *pass,int passlen,int options,char *pempass,\n              EVP_CIPHER *enc)" ( (parameter_declaration "BIO *out" type_identifier (pointer_declarator "*out" * identifier)) , (parameter_declaration "PKCS12_SAFEBAG *bag" type_identifier (pointer_declarator "*bag" * identifier)) , (parameter_declaration "char *pass" primitive_type (pointer_declarator "*pass" * identifier)) , (parameter_declaration "int passlen" primitive_type identifier) , (parameter_declaration "int options" primitive_type identifier) , (parameter_declaration "char *pempass" primitive_type (pointer_declarator "*pempass" * identifier)) , (parameter_declaration "EVP_CIPHER *enc" type_identifier (pointer_declarator "*enc" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  stack_st_X509_ATTRIBUTE *psVar3;\n  stack_st_PKCS12_SAFEBAG *bags;\n  PKCS8_PRIV_KEY_INFO *pPVar4;\n  EVP_PKEY *pEVar5;\n  undefined8 uVar6;\n  long lVar7;\n  X509 *x;\n  ASN1_OBJECT *a;\n  long in_FS_OFFSET;\n  X509_ALGOR *tp8alg;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS12_SAFEBAG_get0_attrs(bag);\n  iVar1 = PKCS12_SAFEBAG_get_nid(bag);\n  if (iVar1 == 0x97) {\n    if ((options & 4U) != 0) {\n      BIO_printf((BIO *)bio_err,"Shrouded Keybag: ");\n      uVar6 = PKCS12_SAFEBAG_get0_pkcs8(bag);\n      X509_SIG_get0(uVar6,&tp8alg,0);\n      alg_print(tp8alg);\n    }\n    uVar2 = options & 1;\n    if (uVar2 == 0) {\n      print_attribs(out,psVar3,"Bag Attributes");\n      pPVar4 = PKCS12_decrypt_skey((PKCS12_SAFEBAG *)bag,pass,passlen);\n      if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS8_pkey_get0_attrs(pPVar4);\n          print_attribs(out,psVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            ((BIO *)out,pEVar5,(EVP_CIPHER *)enc,(uchar *)0x0,0,(undefined1 *)0x0,\n                             pempass);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n    }\n    goto LAB_0014f4e5;\n  }\n  if (iVar1 < 0x98) {\n    if (iVar1 == 0x96) {\n      if ((options & 4U) != 0) {\n        BIO_printf((BIO *)bio_err,"Key bag\n");\n      }\n      uVar2 = options & 1;\n      if (uVar2 == 0) {\n        print_attribs(out,psVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(bag);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS8_pkey_get0_attrs(pPVar4);\n          print_attribs(out,psVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            ((BIO *)out,pEVar5,(EVP_CIPHER *)enc,(uchar *)0x0,0,(undefined1 *)0x0,\n                             pempass);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n      goto LAB_0014f4e5;\n    }\n  }\n  else {\n    if (iVar1 == 0x98) {\n      if ((options & 4U) != 0) {\n        BIO_printf((BIO *)bio_err,"Certificate bag\n");\n      }\n      uVar2 = options & 2;\n      if ((options & 2U) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(bag,0x9d);\n        if (lVar7 == 0) {\n          if ((options & 8U) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((options & 0x10U) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        print_attribs(out,psVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(bag);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(bag);\n          if (x != (X509 *)0x0) {\n            dump_cert_text(out,(X509 *)x);\n            uVar2 = PEM_write_bio_X509((BIO *)out,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }\n      goto LAB_0014f4e5;\n    }\n    if (iVar1 == 0x9b) {\n      if ((options & 4U) != 0) {\n        BIO_printf((BIO *)bio_err,"Safe Contents bag\n");\n      }\n      print_attribs(out,psVar3,"Bag Attributes");\n      bags = (stack_st_PKCS12_SAFEBAG *)PKCS12_SAFEBAG_get0_safes(bag);\n      uVar2 = dump_certs_pkeys_bags(out,bags,pass,passlen,options,pempass,enc);\n      goto LAB_0014f4e5;\n    }\n  }\n  BIO_printf((BIO *)bio_err,"Warning unsupported bag type: ");\n  a = (ASN1_OBJECT *)PKCS12_SAFEBAG_get0_type(bag);\n  i2a_ASN1_OBJECT((BIO *)bio_err,a);\n  BIO_printf((BIO *)bio_err,"\n");\n  uVar2 = 1;\nLAB_0014f4e5:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "stack_st_X509_ATTRIBUTE *psVar3;" type_identifier (pointer_declarator "*psVar3" * identifier) ;) (declaration "stack_st_PKCS12_SAFEBAG *bags;" type_identifier (pointer_declarator "*bags" * identifier) ;) (declaration "PKCS8_PRIV_KEY_INFO *pPVar4;" type_identifier (pointer_declarator "*pPVar4" * identifier) ;) (declaration "EVP_PKEY *pEVar5;" type_identifier (pointer_declarator "*pEVar5" * identifier) ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "X509 *x;" type_identifier (pointer_declarator "*x" * identifier) ;) (declaration "ASN1_OBJECT *a;" type_identifier (pointer_declarator "*a" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "X509_ALGOR *tp8alg;" type_identifier (pointer_declarator "*tp8alg" * identifier) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS12_SAFEBAG_get0_attrs(bag);" (assignment_expression "psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS12_SAFEBAG_get0_attrs(bag)" identifier = (cast_expression "(stack_st_X509_ATTRIBUTE *)PKCS12_SAFEBAG_get0_attrs(bag)" ( (type_descriptor "stack_st_X509_ATTRIBUTE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "PKCS12_SAFEBAG_get0_attrs(bag)" identifier (argument_list "(bag)" ( identifier ))))) ;) (expression_statement "iVar1 = PKCS12_SAFEBAG_get_nid(bag);" (assignment_expression "iVar1 = PKCS12_SAFEBAG_get_nid(bag)" identifier = (call_expression "PKCS12_SAFEBAG_get_nid(bag)" identifier (argument_list "(bag)" ( identifier )))) ;) (if_statement "if (iVar1 == 0x97) {\n    if ((options & 4U) != 0) {\n      BIO_printf((BIO *)bio_err,"Shrouded Keybag: ");\n      uVar6 = PKCS12_SAFEBAG_get0_pkcs8(bag);\n      X509_SIG_get0(uVar6,&tp8alg,0);\n      alg_print(tp8alg);\n    }\n    uVar2 = options & 1;\n    if (uVar2 == 0) {\n      print_attribs(out,psVar3,"Bag Attributes");\n      pPVar4 = PKCS12_decrypt_skey((PKCS12_SAFEBAG *)bag,pass,passlen);\n      if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS8_pkey_get0_attrs(pPVar4);\n          print_attribs(out,psVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            ((BIO *)out,pEVar5,(EVP_CIPHER *)enc,(uchar *)0x0,0,(undefined1 *)0x0,\n                             pempass);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n    }\n    goto LAB_0014f4e5;\n  }" if (parenthesized_expression "(iVar1 == 0x97)" ( (binary_expression "iVar1 == 0x97" identifier == number_literal) )) (compound_statement "{\n    if ((options & 4U) != 0) {\n      BIO_printf((BIO *)bio_err,"Shrouded Keybag: ");\n      uVar6 = PKCS12_SAFEBAG_get0_pkcs8(bag);\n      X509_SIG_get0(uVar6,&tp8alg,0);\n      alg_print(tp8alg);\n    }\n    uVar2 = options & 1;\n    if (uVar2 == 0) {\n      print_attribs(out,psVar3,"Bag Attributes");\n      pPVar4 = PKCS12_decrypt_skey((PKCS12_SAFEBAG *)bag,pass,passlen);\n      if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS8_pkey_get0_attrs(pPVar4);\n          print_attribs(out,psVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            ((BIO *)out,pEVar5,(EVP_CIPHER *)enc,(uchar *)0x0,0,(undefined1 *)0x0,\n                             pempass);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n    }\n    goto LAB_0014f4e5;\n  }" { (if_statement "if ((options & 4U) != 0) {\n      BIO_printf((BIO *)bio_err,"Shrouded Keybag: ");\n      uVar6 = PKCS12_SAFEBAG_get0_pkcs8(bag);\n      X509_SIG_get0(uVar6,&tp8alg,0);\n      alg_print(tp8alg);\n    }" if (parenthesized_expression "((options & 4U) != 0)" ( (binary_expression "(options & 4U) != 0" (parenthesized_expression "(options & 4U)" ( (binary_expression "options & 4U" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      BIO_printf((BIO *)bio_err,"Shrouded Keybag: ");\n      uVar6 = PKCS12_SAFEBAG_get0_pkcs8(bag);\n      X509_SIG_get0(uVar6,&tp8alg,0);\n      alg_print(tp8alg);\n    }" { (expression_statement "BIO_printf((BIO *)bio_err,"Shrouded Keybag: ");" (call_expression "BIO_printf((BIO *)bio_err,"Shrouded Keybag: ")" identifier (argument_list "((BIO *)bio_err,"Shrouded Keybag: ")" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""Shrouded Keybag: "" " string_content ") ))) ;) (expression_statement "uVar6 = PKCS12_SAFEBAG_get0_pkcs8(bag);" (assignment_expression "uVar6 = PKCS12_SAFEBAG_get0_pkcs8(bag)" identifier = (call_expression "PKCS12_SAFEBAG_get0_pkcs8(bag)" identifier (argument_list "(bag)" ( identifier )))) ;) (expression_statement "X509_SIG_get0(uVar6,&tp8alg,0);" (call_expression "X509_SIG_get0(uVar6,&tp8alg,0)" identifier (argument_list "(uVar6,&tp8alg,0)" ( identifier , (pointer_expression "&tp8alg" & identifier) , number_literal ))) ;) (expression_statement "alg_print(tp8alg);" (call_expression "alg_print(tp8alg)" identifier (argument_list "(tp8alg)" ( identifier ))) ;) })) (expression_statement "uVar2 = options & 1;" (assignment_expression "uVar2 = options & 1" identifier = (binary_expression "options & 1" identifier & number_literal)) ;) (if_statement "if (uVar2 == 0) {\n      print_attribs(out,psVar3,"Bag Attributes");\n      pPVar4 = PKCS12_decrypt_skey((PKCS12_SAFEBAG *)bag,pass,passlen);\n      if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS8_pkey_get0_attrs(pPVar4);\n          print_attribs(out,psVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            ((BIO *)out,pEVar5,(EVP_CIPHER *)enc,(uchar *)0x0,0,(undefined1 *)0x0,\n                             pempass);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n    }" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      print_attribs(out,psVar3,"Bag Attributes");\n      pPVar4 = PKCS12_decrypt_skey((PKCS12_SAFEBAG *)bag,pass,passlen);\n      if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS8_pkey_get0_attrs(pPVar4);\n          print_attribs(out,psVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            ((BIO *)out,pEVar5,(EVP_CIPHER *)enc,(uchar *)0x0,0,(undefined1 *)0x0,\n                             pempass);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n    }" { (expression_statement "print_attribs(out,psVar3,"Bag Attributes");" (call_expression "print_attribs(out,psVar3,"Bag Attributes")" identifier (argument_list "(out,psVar3,"Bag Attributes")" ( identifier , identifier , (string_literal ""Bag Attributes"" " string_content ") ))) ;) (expression_statement "pPVar4 = PKCS12_decrypt_skey((PKCS12_SAFEBAG *)bag,pass,passlen);" (assignment_expression "pPVar4 = PKCS12_decrypt_skey((PKCS12_SAFEBAG *)bag,pass,passlen)" identifier = (call_expression "PKCS12_decrypt_skey((PKCS12_SAFEBAG *)bag,pass,passlen)" identifier (argument_list "((PKCS12_SAFEBAG *)bag,pass,passlen)" ( (cast_expression "(PKCS12_SAFEBAG *)bag" ( (type_descriptor "PKCS12_SAFEBAG *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier )))) ;) (if_statement "if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS8_pkey_get0_attrs(pPVar4);\n          print_attribs(out,psVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            ((BIO *)out,pEVar5,(EVP_CIPHER *)enc,(uchar *)0x0,0,(undefined1 *)0x0,\n                             pempass);\n          EVP_PKEY_free(pEVar5);\n        }\n      }" if (parenthesized_expression "(pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0)" ( (binary_expression "pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0" identifier != (cast_expression "(PKCS8_PRIV_KEY_INFO *)0x0" ( (type_descriptor "PKCS8_PRIV_KEY_INFO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS8_pkey_get0_attrs(pPVar4);\n          print_attribs(out,psVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            ((BIO *)out,pEVar5,(EVP_CIPHER *)enc,(uchar *)0x0,0,(undefined1 *)0x0,\n                             pempass);\n          EVP_PKEY_free(pEVar5);\n        }\n      }" { (expression_statement "pEVar5 = EVP_PKCS82PKEY(pPVar4);" (assignment_expression "pEVar5 = EVP_PKCS82PKEY(pPVar4)" identifier = (call_expression "EVP_PKCS82PKEY(pPVar4)" identifier (argument_list "(pPVar4)" ( identifier )))) ;) (if_statement "if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS8_pkey_get0_attrs(pPVar4);\n          print_attribs(out,psVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            ((BIO *)out,pEVar5,(EVP_CIPHER *)enc,(uchar *)0x0,0,(undefined1 *)0x0,\n                             pempass);\n          EVP_PKEY_free(pEVar5);\n        }" if (parenthesized_expression "(pEVar5 == (EVP_PKEY *)0x0)" ( (binary_expression "pEVar5 == (EVP_PKEY *)0x0" identifier == (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }" { (expression_statement "PKCS8_PRIV_KEY_INFO_free(pPVar4);" (call_expression "PKCS8_PRIV_KEY_INFO_free(pPVar4)" identifier (argument_list "(pPVar4)" ( identifier ))) ;) }) (else_clause "else {\n          psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS8_pkey_get0_attrs(pPVar4);\n          print_attribs(out,psVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            ((BIO *)out,pEVar5,(EVP_CIPHER *)enc,(uchar *)0x0,0,(undefined1 *)0x0,\n                             pempass);\n          EVP_PKEY_free(pEVar5);\n        }" else (compound_statement "{\n          psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS8_pkey_get0_attrs(pPVar4);\n          print_attribs(out,psVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            ((BIO *)out,pEVar5,(EVP_CIPHER *)enc,(uchar *)0x0,0,(undefined1 *)0x0,\n                             pempass);\n          EVP_PKEY_free(pEVar5);\n        }" { (expression_statement "psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS8_pkey_get0_attrs(pPVar4);" (assignment_expression "psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS8_pkey_get0_attrs(pPVar4)" identifier = (cast_expression "(stack_st_X509_ATTRIBUTE *)PKCS8_pkey_get0_attrs(pPVar4)" ( (type_descriptor "stack_st_X509_ATTRIBUTE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "PKCS8_pkey_get0_attrs(pPVar4)" identifier (argument_list "(pPVar4)" ( identifier ))))) ;) (expression_statement "print_attribs(out,psVar3,"Key Attributes");" (call_expression "print_attribs(out,psVar3,"Key Attributes")" identifier (argument_list "(out,psVar3,"Key Attributes")" ( identifier , identifier , (string_literal ""Key Attributes"" " string_content ") ))) ;) (expression_statement "PKCS8_PRIV_KEY_INFO_free(pPVar4);" (call_expression "PKCS8_PRIV_KEY_INFO_free(pPVar4)" identifier (argument_list "(pPVar4)" ( identifier ))) ;) (expression_statement "uVar2 = PEM_write_bio_PrivateKey\n                            ((BIO *)out,pEVar5,(EVP_CIPHER *)enc,(uchar *)0x0,0,(undefined1 *)0x0,\n                             pempass);" (assignment_expression "uVar2 = PEM_write_bio_PrivateKey\n                            ((BIO *)out,pEVar5,(EVP_CIPHER *)enc,(uchar *)0x0,0,(undefined1 *)0x0,\n                             pempass)" identifier = (call_expression "PEM_write_bio_PrivateKey\n                            ((BIO *)out,pEVar5,(EVP_CIPHER *)enc,(uchar *)0x0,0,(undefined1 *)0x0,\n                             pempass)" identifier (argument_list "((BIO *)out,pEVar5,(EVP_CIPHER *)enc,(uchar *)0x0,0,(undefined1 *)0x0,\n                             pempass)" ( (cast_expression "(BIO *)out" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (cast_expression "(EVP_CIPHER *)enc" ( (type_descriptor "EVP_CIPHER *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal , (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) ;) (expression_statement "EVP_PKEY_free(pEVar5);" (call_expression "EVP_PKEY_free(pEVar5)" identifier (argument_list "(pEVar5)" ( identifier ))) ;) }))) })) })) (goto_statement "goto LAB_0014f4e5;" goto statement_identifier ;) })) (if_statement "if (iVar1 < 0x98) {\n    if (iVar1 == 0x96) {\n      if ((options & 4U) != 0) {\n        BIO_printf((BIO *)bio_err,"Key bag\n");\n      }\n      uVar2 = options & 1;\n      if (uVar2 == 0) {\n        print_attribs(out,psVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(bag);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS8_pkey_get0_attrs(pPVar4);\n          print_attribs(out,psVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            ((BIO *)out,pEVar5,(EVP_CIPHER *)enc,(uchar *)0x0,0,(undefined1 *)0x0,\n                             pempass);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n      goto LAB_0014f4e5;\n    }\n  }\n  else {\n    if (iVar1 == 0x98) {\n      if ((options & 4U) != 0) {\n        BIO_printf((BIO *)bio_err,"Certificate bag\n");\n      }\n      uVar2 = options & 2;\n      if ((options & 2U) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(bag,0x9d);\n        if (lVar7 == 0) {\n          if ((options & 8U) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((options & 0x10U) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        print_attribs(out,psVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(bag);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(bag);\n          if (x != (X509 *)0x0) {\n            dump_cert_text(out,(X509 *)x);\n            uVar2 = PEM_write_bio_X509((BIO *)out,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }\n      goto LAB_0014f4e5;\n    }\n    if (iVar1 == 0x9b) {\n      if ((options & 4U) != 0) {\n        BIO_printf((BIO *)bio_err,"Safe Contents bag\n");\n      }\n      print_attribs(out,psVar3,"Bag Attributes");\n      bags = (stack_st_PKCS12_SAFEBAG *)PKCS12_SAFEBAG_get0_safes(bag);\n      uVar2 = dump_certs_pkeys_bags(out,bags,pass,passlen,options,pempass,enc);\n      goto LAB_0014f4e5;\n    }\n  }" if (parenthesized_expression "(iVar1 < 0x98)" ( (binary_expression "iVar1 < 0x98" identifier < number_literal) )) (compound_statement "{\n    if (iVar1 == 0x96) {\n      if ((options & 4U) != 0) {\n        BIO_printf((BIO *)bio_err,"Key bag\n");\n      }\n      uVar2 = options & 1;\n      if (uVar2 == 0) {\n        print_attribs(out,psVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(bag);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS8_pkey_get0_attrs(pPVar4);\n          print_attribs(out,psVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            ((BIO *)out,pEVar5,(EVP_CIPHER *)enc,(uchar *)0x0,0,(undefined1 *)0x0,\n                             pempass);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n      goto LAB_0014f4e5;\n    }\n  }" { (if_statement "if (iVar1 == 0x96) {\n      if ((options & 4U) != 0) {\n        BIO_printf((BIO *)bio_err,"Key bag\n");\n      }\n      uVar2 = options & 1;\n      if (uVar2 == 0) {\n        print_attribs(out,psVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(bag);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS8_pkey_get0_attrs(pPVar4);\n          print_attribs(out,psVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            ((BIO *)out,pEVar5,(EVP_CIPHER *)enc,(uchar *)0x0,0,(undefined1 *)0x0,\n                             pempass);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n      goto LAB_0014f4e5;\n    }" if (parenthesized_expression "(iVar1 == 0x96)" ( (binary_expression "iVar1 == 0x96" identifier == number_literal) )) (compound_statement "{\n      if ((options & 4U) != 0) {\n        BIO_printf((BIO *)bio_err,"Key bag\n");\n      }\n      uVar2 = options & 1;\n      if (uVar2 == 0) {\n        print_attribs(out,psVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(bag);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS8_pkey_get0_attrs(pPVar4);\n          print_attribs(out,psVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            ((BIO *)out,pEVar5,(EVP_CIPHER *)enc,(uchar *)0x0,0,(undefined1 *)0x0,\n                             pempass);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n      goto LAB_0014f4e5;\n    }" { (if_statement "if ((options & 4U) != 0) {\n        BIO_printf((BIO *)bio_err,"Key bag\n");\n      }" if (parenthesized_expression "((options & 4U) != 0)" ( (binary_expression "(options & 4U) != 0" (parenthesized_expression "(options & 4U)" ( (binary_expression "options & 4U" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        BIO_printf((BIO *)bio_err,"Key bag\n");\n      }" { (expression_statement "BIO_printf((BIO *)bio_err,"Key bag\n");" (call_expression "BIO_printf((BIO *)bio_err,"Key bag\n")" identifier (argument_list "((BIO *)bio_err,"Key bag\n")" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""Key bag\n"" " string_content escape_sequence ") ))) ;) })) (expression_statement "uVar2 = options & 1;" (assignment_expression "uVar2 = options & 1" identifier = (binary_expression "options & 1" identifier & number_literal)) ;) (if_statement "if (uVar2 == 0) {\n        print_attribs(out,psVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(bag);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS8_pkey_get0_attrs(pPVar4);\n          print_attribs(out,psVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            ((BIO *)out,pEVar5,(EVP_CIPHER *)enc,(uchar *)0x0,0,(undefined1 *)0x0,\n                             pempass);\n          EVP_PKEY_free(pEVar5);\n        }\n      }" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        print_attribs(out,psVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(bag);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS8_pkey_get0_attrs(pPVar4);\n          print_attribs(out,psVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            ((BIO *)out,pEVar5,(EVP_CIPHER *)enc,(uchar *)0x0,0,(undefined1 *)0x0,\n                             pempass);\n          EVP_PKEY_free(pEVar5);\n        }\n      }" { (expression_statement "print_attribs(out,psVar3,"Bag Attributes");" (call_expression "print_attribs(out,psVar3,"Bag Attributes")" identifier (argument_list "(out,psVar3,"Bag Attributes")" ( identifier , identifier , (string_literal ""Bag Attributes"" " string_content ") ))) ;) (expression_statement "pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(bag);" (assignment_expression "pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(bag)" identifier = (cast_expression "(PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(bag)" ( (type_descriptor "PKCS8_PRIV_KEY_INFO *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "PKCS12_SAFEBAG_get0_p8inf(bag)" identifier (argument_list "(bag)" ( identifier ))))) ;) (expression_statement "pEVar5 = EVP_PKCS82PKEY(pPVar4);" (assignment_expression "pEVar5 = EVP_PKCS82PKEY(pPVar4)" identifier = (call_expression "EVP_PKCS82PKEY(pPVar4)" identifier (argument_list "(pPVar4)" ( identifier )))) ;) (if_statement "if (pEVar5 != (EVP_PKEY *)0x0) {\n          psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS8_pkey_get0_attrs(pPVar4);\n          print_attribs(out,psVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            ((BIO *)out,pEVar5,(EVP_CIPHER *)enc,(uchar *)0x0,0,(undefined1 *)0x0,\n                             pempass);\n          EVP_PKEY_free(pEVar5);\n        }" if (parenthesized_expression "(pEVar5 != (EVP_PKEY *)0x0)" ( (binary_expression "pEVar5 != (EVP_PKEY *)0x0" identifier != (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS8_pkey_get0_attrs(pPVar4);\n          print_attribs(out,psVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            ((BIO *)out,pEVar5,(EVP_CIPHER *)enc,(uchar *)0x0,0,(undefined1 *)0x0,\n                             pempass);\n          EVP_PKEY_free(pEVar5);\n        }" { (expression_statement "psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS8_pkey_get0_attrs(pPVar4);" (assignment_expression "psVar3 = (stack_st_X509_ATTRIBUTE *)PKCS8_pkey_get0_attrs(pPVar4)" identifier = (cast_expression "(stack_st_X509_ATTRIBUTE *)PKCS8_pkey_get0_attrs(pPVar4)" ( (type_descriptor "stack_st_X509_ATTRIBUTE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "PKCS8_pkey_get0_attrs(pPVar4)" identifier (argument_list "(pPVar4)" ( identifier ))))) ;) (expression_statement "print_attribs(out,psVar3,"Key Attributes");" (call_expression "print_attribs(out,psVar3,"Key Attributes")" identifier (argument_list "(out,psVar3,"Key Attributes")" ( identifier , identifier , (string_literal ""Key Attributes"" " string_content ") ))) ;) (expression_statement "uVar2 = PEM_write_bio_PrivateKey\n                            ((BIO *)out,pEVar5,(EVP_CIPHER *)enc,(uchar *)0x0,0,(undefined1 *)0x0,\n                             pempass);" (assignment_expression "uVar2 = PEM_write_bio_PrivateKey\n                            ((BIO *)out,pEVar5,(EVP_CIPHER *)enc,(uchar *)0x0,0,(undefined1 *)0x0,\n                             pempass)" identifier = (call_expression "PEM_write_bio_PrivateKey\n                            ((BIO *)out,pEVar5,(EVP_CIPHER *)enc,(uchar *)0x0,0,(undefined1 *)0x0,\n                             pempass)" identifier (argument_list "((BIO *)out,pEVar5,(EVP_CIPHER *)enc,(uchar *)0x0,0,(undefined1 *)0x0,\n                             pempass)" ( (cast_expression "(BIO *)out" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (cast_expression "(EVP_CIPHER *)enc" ( (type_descriptor "EVP_CIPHER *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal , (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) ;) (expression_statement "EVP_PKEY_free(pEVar5);" (call_expression "EVP_PKEY_free(pEVar5)" identifier (argument_list "(pEVar5)" ( identifier ))) ;) })) })) (goto_statement "goto LAB_0014f4e5;" goto statement_identifier ;) })) }) (else_clause "else {\n    if (iVar1 == 0x98) {\n      if ((options & 4U) != 0) {\n        BIO_printf((BIO *)bio_err,"Certificate bag\n");\n      }\n      uVar2 = options & 2;\n      if ((options & 2U) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(bag,0x9d);\n        if (lVar7 == 0) {\n          if ((options & 8U) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((options & 0x10U) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        print_attribs(out,psVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(bag);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(bag);\n          if (x != (X509 *)0x0) {\n            dump_cert_text(out,(X509 *)x);\n            uVar2 = PEM_write_bio_X509((BIO *)out,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }\n      goto LAB_0014f4e5;\n    }\n    if (iVar1 == 0x9b) {\n      if ((options & 4U) != 0) {\n        BIO_printf((BIO *)bio_err,"Safe Contents bag\n");\n      }\n      print_attribs(out,psVar3,"Bag Attributes");\n      bags = (stack_st_PKCS12_SAFEBAG *)PKCS12_SAFEBAG_get0_safes(bag);\n      uVar2 = dump_certs_pkeys_bags(out,bags,pass,passlen,options,pempass,enc);\n      goto LAB_0014f4e5;\n    }\n  }" else (compound_statement "{\n    if (iVar1 == 0x98) {\n      if ((options & 4U) != 0) {\n        BIO_printf((BIO *)bio_err,"Certificate bag\n");\n      }\n      uVar2 = options & 2;\n      if ((options & 2U) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(bag,0x9d);\n        if (lVar7 == 0) {\n          if ((options & 8U) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((options & 0x10U) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        print_attribs(out,psVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(bag);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(bag);\n          if (x != (X509 *)0x0) {\n            dump_cert_text(out,(X509 *)x);\n            uVar2 = PEM_write_bio_X509((BIO *)out,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }\n      goto LAB_0014f4e5;\n    }\n    if (iVar1 == 0x9b) {\n      if ((options & 4U) != 0) {\n        BIO_printf((BIO *)bio_err,"Safe Contents bag\n");\n      }\n      print_attribs(out,psVar3,"Bag Attributes");\n      bags = (stack_st_PKCS12_SAFEBAG *)PKCS12_SAFEBAG_get0_safes(bag);\n      uVar2 = dump_certs_pkeys_bags(out,bags,pass,passlen,options,pempass,enc);\n      goto LAB_0014f4e5;\n    }\n  }" { (if_statement "if (iVar1 == 0x98) {\n      if ((options & 4U) != 0) {\n        BIO_printf((BIO *)bio_err,"Certificate bag\n");\n      }\n      uVar2 = options & 2;\n      if ((options & 2U) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(bag,0x9d);\n        if (lVar7 == 0) {\n          if ((options & 8U) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((options & 0x10U) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        print_attribs(out,psVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(bag);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(bag);\n          if (x != (X509 *)0x0) {\n            dump_cert_text(out,(X509 *)x);\n            uVar2 = PEM_write_bio_X509((BIO *)out,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }\n      goto LAB_0014f4e5;\n    }" if (parenthesized_expression "(iVar1 == 0x98)" ( (binary_expression "iVar1 == 0x98" identifier == number_literal) )) (compound_statement "{\n      if ((options & 4U) != 0) {\n        BIO_printf((BIO *)bio_err,"Certificate bag\n");\n      }\n      uVar2 = options & 2;\n      if ((options & 2U) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(bag,0x9d);\n        if (lVar7 == 0) {\n          if ((options & 8U) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((options & 0x10U) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        print_attribs(out,psVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(bag);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(bag);\n          if (x != (X509 *)0x0) {\n            dump_cert_text(out,(X509 *)x);\n            uVar2 = PEM_write_bio_X509((BIO *)out,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }\n      goto LAB_0014f4e5;\n    }" { (if_statement "if ((options & 4U) != 0) {\n        BIO_printf((BIO *)bio_err,"Certificate bag\n");\n      }" if (parenthesized_expression "((options & 4U) != 0)" ( (binary_expression "(options & 4U) != 0" (parenthesized_expression "(options & 4U)" ( (binary_expression "options & 4U" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        BIO_printf((BIO *)bio_err,"Certificate bag\n");\n      }" { (expression_statement "BIO_printf((BIO *)bio_err,"Certificate bag\n");" (call_expression "BIO_printf((BIO *)bio_err,"Certificate bag\n")" identifier (argument_list "((BIO *)bio_err,"Certificate bag\n")" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""Certificate bag\n"" " string_content escape_sequence ") ))) ;) })) (expression_statement "uVar2 = options & 2;" (assignment_expression "uVar2 = options & 2" identifier = (binary_expression "options & 2" identifier & number_literal)) ;) (if_statement "if ((options & 2U) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(bag,0x9d);\n        if (lVar7 == 0) {\n          if ((options & 8U) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((options & 0x10U) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        print_attribs(out,psVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(bag);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(bag);\n          if (x != (X509 *)0x0) {\n            dump_cert_text(out,(X509 *)x);\n            uVar2 = PEM_write_bio_X509((BIO *)out,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }" if (parenthesized_expression "((options & 2U) == 0)" ( (binary_expression "(options & 2U) == 0" (parenthesized_expression "(options & 2U)" ( (binary_expression "options & 2U" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        lVar7 = PKCS12_SAFEBAG_get0_attr(bag,0x9d);\n        if (lVar7 == 0) {\n          if ((options & 8U) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((options & 0x10U) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        print_attribs(out,psVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(bag);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(bag);\n          if (x != (X509 *)0x0) {\n            dump_cert_text(out,(X509 *)x);\n            uVar2 = PEM_write_bio_X509((BIO *)out,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }" { (expression_statement "lVar7 = PKCS12_SAFEBAG_get0_attr(bag,0x9d);" (assignment_expression "lVar7 = PKCS12_SAFEBAG_get0_attr(bag,0x9d)" identifier = (call_expression "PKCS12_SAFEBAG_get0_attr(bag,0x9d)" identifier (argument_list "(bag,0x9d)" ( identifier , number_literal )))) ;) (if_statement "if (lVar7 == 0) {\n          if ((options & 8U) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((options & 0x10U) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          if ((options & 8U) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }" { (if_statement "if ((options & 8U) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }" if (parenthesized_expression "((options & 8U) != 0)" ( (binary_expression "(options & 8U) != 0" (parenthesized_expression "(options & 8U)" ( (binary_expression "options & 8U" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }" { (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0014f4e5;" goto statement_identifier ;) })) }) (else_clause "else if ((options & 0x10U) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }" else (if_statement "if ((options & 0x10U) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }" if (parenthesized_expression "((options & 0x10U) != 0)" ( (binary_expression "(options & 0x10U) != 0" (parenthesized_expression "(options & 0x10U)" ( (binary_expression "options & 0x10U" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }" { (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0014f4e5;" goto statement_identifier ;) })))) (expression_statement "print_attribs(out,psVar3,"Bag Attributes");" (call_expression "print_attribs(out,psVar3,"Bag Attributes")" identifier (argument_list "(out,psVar3,"Bag Attributes")" ( identifier , identifier , (string_literal ""Bag Attributes"" " string_content ") ))) ;) (expression_statement "iVar1 = PKCS12_SAFEBAG_get_bag_nid(bag);" (assignment_expression "iVar1 = PKCS12_SAFEBAG_get_bag_nid(bag)" identifier = (call_expression "PKCS12_SAFEBAG_get_bag_nid(bag)" identifier (argument_list "(bag)" ( identifier )))) ;) (if_statement "if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(bag);\n          if (x != (X509 *)0x0) {\n            dump_cert_text(out,(X509 *)x);\n            uVar2 = PEM_write_bio_X509((BIO *)out,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }" if (parenthesized_expression "(iVar1 == 0x9e)" ( (binary_expression "iVar1 == 0x9e" identifier == number_literal) )) (compound_statement "{\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(bag);\n          if (x != (X509 *)0x0) {\n            dump_cert_text(out,(X509 *)x);\n            uVar2 = PEM_write_bio_X509((BIO *)out,x);\n            X509_free(x);\n          }\n        }" { (expression_statement "x = (X509 *)PKCS12_SAFEBAG_get1_cert(bag);" (assignment_expression "x = (X509 *)PKCS12_SAFEBAG_get1_cert(bag)" identifier = (cast_expression "(X509 *)PKCS12_SAFEBAG_get1_cert(bag)" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "PKCS12_SAFEBAG_get1_cert(bag)" identifier (argument_list "(bag)" ( identifier ))))) ;) (if_statement "if (x != (X509 *)0x0) {\n            dump_cert_text(out,(X509 *)x);\n            uVar2 = PEM_write_bio_X509((BIO *)out,x);\n            X509_free(x);\n          }" if (parenthesized_expression "(x != (X509 *)0x0)" ( (binary_expression "x != (X509 *)0x0" identifier != (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            dump_cert_text(out,(X509 *)x);\n            uVar2 = PEM_write_bio_X509((BIO *)out,x);\n            X509_free(x);\n          }" { (expression_statement "dump_cert_text(out,(X509 *)x);" (call_expression "dump_cert_text(out,(X509 *)x)" identifier (argument_list "(out,(X509 *)x)" ( identifier , (cast_expression "(X509 *)x" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "uVar2 = PEM_write_bio_X509((BIO *)out,x);" (assignment_expression "uVar2 = PEM_write_bio_X509((BIO *)out,x)" identifier = (call_expression "PEM_write_bio_X509((BIO *)out,x)" identifier (argument_list "((BIO *)out,x)" ( (cast_expression "(BIO *)out" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (expression_statement "X509_free(x);" (call_expression "X509_free(x)" identifier (argument_list "(x)" ( identifier ))) ;) })) }) (else_clause "else {\n          uVar2 = 1;\n        }" else (compound_statement "{\n          uVar2 = 1;\n        }" { (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n        uVar2 = 1;\n      }" else (compound_statement "{\n        uVar2 = 1;\n      }" { (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) }))) (goto_statement "goto LAB_0014f4e5;" goto statement_identifier ;) })) (if_statement "if (iVar1 == 0x9b) {\n      if ((options & 4U) != 0) {\n        BIO_printf((BIO *)bio_err,"Safe Contents bag\n");\n      }\n      print_attribs(out,psVar3,"Bag Attributes");\n      bags = (stack_st_PKCS12_SAFEBAG *)PKCS12_SAFEBAG_get0_safes(bag);\n      uVar2 = dump_certs_pkeys_bags(out,bags,pass,passlen,options,pempass,enc);\n      goto LAB_0014f4e5;\n    }" if (parenthesized_expression "(iVar1 == 0x9b)" ( (binary_expression "iVar1 == 0x9b" identifier == number_literal) )) (compound_statement "{\n      if ((options & 4U) != 0) {\n        BIO_printf((BIO *)bio_err,"Safe Contents bag\n");\n      }\n      print_attribs(out,psVar3,"Bag Attributes");\n      bags = (stack_st_PKCS12_SAFEBAG *)PKCS12_SAFEBAG_get0_safes(bag);\n      uVar2 = dump_certs_pkeys_bags(out,bags,pass,passlen,options,pempass,enc);\n      goto LAB_0014f4e5;\n    }" { (if_statement "if ((options & 4U) != 0) {\n        BIO_printf((BIO *)bio_err,"Safe Contents bag\n");\n      }" if (parenthesized_expression "((options & 4U) != 0)" ( (binary_expression "(options & 4U) != 0" (parenthesized_expression "(options & 4U)" ( (binary_expression "options & 4U" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        BIO_printf((BIO *)bio_err,"Safe Contents bag\n");\n      }" { (expression_statement "BIO_printf((BIO *)bio_err,"Safe Contents bag\n");" (call_expression "BIO_printf((BIO *)bio_err,"Safe Contents bag\n")" identifier (argument_list "((BIO *)bio_err,"Safe Contents bag\n")" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""Safe Contents bag\n"" " string_content escape_sequence ") ))) ;) })) (expression_statement "print_attribs(out,psVar3,"Bag Attributes");" (call_expression "print_attribs(out,psVar3,"Bag Attributes")" identifier (argument_list "(out,psVar3,"Bag Attributes")" ( identifier , identifier , (string_literal ""Bag Attributes"" " string_content ") ))) ;) (expression_statement "bags = (stack_st_PKCS12_SAFEBAG *)PKCS12_SAFEBAG_get0_safes(bag);" (assignment_expression "bags = (stack_st_PKCS12_SAFEBAG *)PKCS12_SAFEBAG_get0_safes(bag)" identifier = (cast_expression "(stack_st_PKCS12_SAFEBAG *)PKCS12_SAFEBAG_get0_safes(bag)" ( (type_descriptor "stack_st_PKCS12_SAFEBAG *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "PKCS12_SAFEBAG_get0_safes(bag)" identifier (argument_list "(bag)" ( identifier ))))) ;) (expression_statement "uVar2 = dump_certs_pkeys_bags(out,bags,pass,passlen,options,pempass,enc);" (assignment_expression "uVar2 = dump_certs_pkeys_bags(out,bags,pass,passlen,options,pempass,enc)" identifier = (call_expression "dump_certs_pkeys_bags(out,bags,pass,passlen,options,pempass,enc)" identifier (argument_list "(out,bags,pass,passlen,options,pempass,enc)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (goto_statement "goto LAB_0014f4e5;" goto statement_identifier ;) })) }))) (expression_statement "BIO_printf((BIO *)bio_err,"Warning unsupported bag type: ");" (call_expression "BIO_printf((BIO *)bio_err,"Warning unsupported bag type: ")" identifier (argument_list "((BIO *)bio_err,"Warning unsupported bag type: ")" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""Warning unsupported bag type: "" " string_content ") ))) ;) (expression_statement "a = (ASN1_OBJECT *)PKCS12_SAFEBAG_get0_type(bag);" (assignment_expression "a = (ASN1_OBJECT *)PKCS12_SAFEBAG_get0_type(bag)" identifier = (cast_expression "(ASN1_OBJECT *)PKCS12_SAFEBAG_get0_type(bag)" ( (type_descriptor "ASN1_OBJECT *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "PKCS12_SAFEBAG_get0_type(bag)" identifier (argument_list "(bag)" ( identifier ))))) ;) (expression_statement "i2a_ASN1_OBJECT((BIO *)bio_err,a);" (call_expression "i2a_ASN1_OBJECT((BIO *)bio_err,a)" identifier (argument_list "((BIO *)bio_err,a)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "BIO_printf((BIO *)bio_err,"\n");" (call_expression "BIO_printf((BIO *)bio_err,"\n")" identifier (argument_list "((BIO *)bio_err,"\n")" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""\n"" " escape_sequence ") ))) ;) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0014f4e5:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar2;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar2;\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 uVar2;\n  }" { (return_statement "return uVar2;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "uint FUN_0014f424(BIO *param_1,PKCS12_SAFEBAG *param_2,char *param_3,int param_4,uint param_5,\n                 void *param_6,EVP_CIPHER *param_7)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined8 uVar3;\n  PKCS8_PRIV_KEY_INFO *pPVar4;\n  EVP_PKEY *pEVar5;\n  undefined8 uVar6;\n  long lVar7;\n  X509 *x;\n  ASN1_OBJECT *a;\n  long in_FS_OFFSET;\n  undefined8 local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar3 = PKCS12_SAFEBAG_get0_attrs(param_2);\n  iVar1 = PKCS12_SAFEBAG_get_nid(param_2);\n  if (iVar1 == 0x97) {\n    if ((param_5 & 4) != 0) {\n      BIO_printf(DAT_001b76b0,"Shrouded Keybag: ");\n      uVar6 = PKCS12_SAFEBAG_get0_pkcs8(param_2);\n      X509_SIG_get0(uVar6,&local_48,0);\n      FUN_0014ee52(local_48);\n    }\n    uVar2 = param_5 & 1;\n    if ((param_5 & 1) == 0) {\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      pPVar4 = PKCS12_decrypt_skey(param_2,param_3,param_4);\n      if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n    }\n    goto LAB_0014f4e5;\n  }\n  if (iVar1 < 0x98) {\n    if (iVar1 == 0x96) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Key bag\n");\n      }\n      uVar2 = param_5 & 1;\n      if ((param_5 & 1) == 0) {\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n      goto LAB_0014f4e5;\n    }\n  }\n  else {\n    if (iVar1 == 0x98) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Certificate bag\n");\n      }\n      uVar2 = param_5 & 2;\n      if ((param_5 & 2) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);\n        if (lVar7 == 0) {\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }\n      goto LAB_0014f4e5;\n    }\n    if (iVar1 == 0x9b) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Safe Contents bag\n");\n      }\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      uVar3 = PKCS12_SAFEBAG_get0_safes(param_2);\n      uVar2 = FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7);\n      goto LAB_0014f4e5;\n    }\n  }\n  BIO_printf(DAT_001b76b0,"Warning unsupported bag type: ");\n  a = (ASN1_OBJECT *)PKCS12_SAFEBAG_get0_type(param_2);\n  i2a_ASN1_OBJECT(DAT_001b76b0,a);\n  BIO_printf(DAT_001b76b0,"\n");\n  uVar2 = 1;\nLAB_0014f4e5:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar2;\n  }\n                    \n  __stack_chk_fail();\n}\n\n" (function_definition "uint FUN_0014f424(BIO *param_1,PKCS12_SAFEBAG *param_2,char *param_3,int param_4,uint param_5,\n                 void *param_6,EVP_CIPHER *param_7)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined8 uVar3;\n  PKCS8_PRIV_KEY_INFO *pPVar4;\n  EVP_PKEY *pEVar5;\n  undefined8 uVar6;\n  long lVar7;\n  X509 *x;\n  ASN1_OBJECT *a;\n  long in_FS_OFFSET;\n  undefined8 local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar3 = PKCS12_SAFEBAG_get0_attrs(param_2);\n  iVar1 = PKCS12_SAFEBAG_get_nid(param_2);\n  if (iVar1 == 0x97) {\n    if ((param_5 & 4) != 0) {\n      BIO_printf(DAT_001b76b0,"Shrouded Keybag: ");\n      uVar6 = PKCS12_SAFEBAG_get0_pkcs8(param_2);\n      X509_SIG_get0(uVar6,&local_48,0);\n      FUN_0014ee52(local_48);\n    }\n    uVar2 = param_5 & 1;\n    if ((param_5 & 1) == 0) {\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      pPVar4 = PKCS12_decrypt_skey(param_2,param_3,param_4);\n      if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n    }\n    goto LAB_0014f4e5;\n  }\n  if (iVar1 < 0x98) {\n    if (iVar1 == 0x96) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Key bag\n");\n      }\n      uVar2 = param_5 & 1;\n      if ((param_5 & 1) == 0) {\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n      goto LAB_0014f4e5;\n    }\n  }\n  else {\n    if (iVar1 == 0x98) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Certificate bag\n");\n      }\n      uVar2 = param_5 & 2;\n      if ((param_5 & 2) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);\n        if (lVar7 == 0) {\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }\n      goto LAB_0014f4e5;\n    }\n    if (iVar1 == 0x9b) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Safe Contents bag\n");\n      }\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      uVar3 = PKCS12_SAFEBAG_get0_safes(param_2);\n      uVar2 = FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7);\n      goto LAB_0014f4e5;\n    }\n  }\n  BIO_printf(DAT_001b76b0,"Warning unsupported bag type: ");\n  a = (ASN1_OBJECT *)PKCS12_SAFEBAG_get0_type(param_2);\n  i2a_ASN1_OBJECT(DAT_001b76b0,a);\n  BIO_printf(DAT_001b76b0,"\n");\n  uVar2 = 1;\nLAB_0014f4e5:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar2;\n  }\n                    \n  __stack_chk_fail();\n}" type_identifier (function_declarator "FUN_0014f424(BIO *param_1,PKCS12_SAFEBAG *param_2,char *param_3,int param_4,uint param_5,\n                 void *param_6,EVP_CIPHER *param_7)" identifier (parameter_list "(BIO *param_1,PKCS12_SAFEBAG *param_2,char *param_3,int param_4,uint param_5,\n                 void *param_6,EVP_CIPHER *param_7)" ( (parameter_declaration "BIO *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "PKCS12_SAFEBAG *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "uint param_5" type_identifier identifier) , (parameter_declaration "void *param_6" primitive_type (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "EVP_CIPHER *param_7" type_identifier (pointer_declarator "*param_7" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  undefined8 uVar3;\n  PKCS8_PRIV_KEY_INFO *pPVar4;\n  EVP_PKEY *pEVar5;\n  undefined8 uVar6;\n  long lVar7;\n  X509 *x;\n  ASN1_OBJECT *a;\n  long in_FS_OFFSET;\n  undefined8 local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar3 = PKCS12_SAFEBAG_get0_attrs(param_2);\n  iVar1 = PKCS12_SAFEBAG_get_nid(param_2);\n  if (iVar1 == 0x97) {\n    if ((param_5 & 4) != 0) {\n      BIO_printf(DAT_001b76b0,"Shrouded Keybag: ");\n      uVar6 = PKCS12_SAFEBAG_get0_pkcs8(param_2);\n      X509_SIG_get0(uVar6,&local_48,0);\n      FUN_0014ee52(local_48);\n    }\n    uVar2 = param_5 & 1;\n    if ((param_5 & 1) == 0) {\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      pPVar4 = PKCS12_decrypt_skey(param_2,param_3,param_4);\n      if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n    }\n    goto LAB_0014f4e5;\n  }\n  if (iVar1 < 0x98) {\n    if (iVar1 == 0x96) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Key bag\n");\n      }\n      uVar2 = param_5 & 1;\n      if ((param_5 & 1) == 0) {\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n      goto LAB_0014f4e5;\n    }\n  }\n  else {\n    if (iVar1 == 0x98) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Certificate bag\n");\n      }\n      uVar2 = param_5 & 2;\n      if ((param_5 & 2) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);\n        if (lVar7 == 0) {\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }\n      goto LAB_0014f4e5;\n    }\n    if (iVar1 == 0x9b) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Safe Contents bag\n");\n      }\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      uVar3 = PKCS12_SAFEBAG_get0_safes(param_2);\n      uVar2 = FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7);\n      goto LAB_0014f4e5;\n    }\n  }\n  BIO_printf(DAT_001b76b0,"Warning unsupported bag type: ");\n  a = (ASN1_OBJECT *)PKCS12_SAFEBAG_get0_type(param_2);\n  i2a_ASN1_OBJECT(DAT_001b76b0,a);\n  BIO_printf(DAT_001b76b0,"\n");\n  uVar2 = 1;\nLAB_0014f4e5:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar2;\n  }\n                    \n  __stack_chk_fail();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "PKCS8_PRIV_KEY_INFO *pPVar4;" type_identifier (pointer_declarator "*pPVar4" * identifier) ;) (declaration "EVP_PKEY *pEVar5;" type_identifier (pointer_declarator "*pEVar5" * identifier) ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "X509 *x;" type_identifier (pointer_declarator "*x" * identifier) ;) (declaration "ASN1_OBJECT *a;" type_identifier (pointer_declarator "*a" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_48;" type_identifier identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = PKCS12_SAFEBAG_get0_attrs(param_2);" (assignment_expression "uVar3 = PKCS12_SAFEBAG_get0_attrs(param_2)" identifier = (call_expression "PKCS12_SAFEBAG_get0_attrs(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "iVar1 = PKCS12_SAFEBAG_get_nid(param_2);" (assignment_expression "iVar1 = PKCS12_SAFEBAG_get_nid(param_2)" identifier = (call_expression "PKCS12_SAFEBAG_get_nid(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar1 == 0x97) {\n    if ((param_5 & 4) != 0) {\n      BIO_printf(DAT_001b76b0,"Shrouded Keybag: ");\n      uVar6 = PKCS12_SAFEBAG_get0_pkcs8(param_2);\n      X509_SIG_get0(uVar6,&local_48,0);\n      FUN_0014ee52(local_48);\n    }\n    uVar2 = param_5 & 1;\n    if ((param_5 & 1) == 0) {\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      pPVar4 = PKCS12_decrypt_skey(param_2,param_3,param_4);\n      if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n    }\n    goto LAB_0014f4e5;\n  }" if (parenthesized_expression "(iVar1 == 0x97)" ( (binary_expression "iVar1 == 0x97" identifier == number_literal) )) (compound_statement "{\n    if ((param_5 & 4) != 0) {\n      BIO_printf(DAT_001b76b0,"Shrouded Keybag: ");\n      uVar6 = PKCS12_SAFEBAG_get0_pkcs8(param_2);\n      X509_SIG_get0(uVar6,&local_48,0);\n      FUN_0014ee52(local_48);\n    }\n    uVar2 = param_5 & 1;\n    if ((param_5 & 1) == 0) {\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      pPVar4 = PKCS12_decrypt_skey(param_2,param_3,param_4);\n      if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n    }\n    goto LAB_0014f4e5;\n  }" { (if_statement "if ((param_5 & 4) != 0) {\n      BIO_printf(DAT_001b76b0,"Shrouded Keybag: ");\n      uVar6 = PKCS12_SAFEBAG_get0_pkcs8(param_2);\n      X509_SIG_get0(uVar6,&local_48,0);\n      FUN_0014ee52(local_48);\n    }" if (parenthesized_expression "((param_5 & 4) != 0)" ( (binary_expression "(param_5 & 4) != 0" (parenthesized_expression "(param_5 & 4)" ( (binary_expression "param_5 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      BIO_printf(DAT_001b76b0,"Shrouded Keybag: ");\n      uVar6 = PKCS12_SAFEBAG_get0_pkcs8(param_2);\n      X509_SIG_get0(uVar6,&local_48,0);\n      FUN_0014ee52(local_48);\n    }" { (expression_statement "BIO_printf(DAT_001b76b0,"Shrouded Keybag: ");" (call_expression "BIO_printf(DAT_001b76b0,"Shrouded Keybag: ")" identifier (argument_list "(DAT_001b76b0,"Shrouded Keybag: ")" ( identifier , (string_literal ""Shrouded Keybag: "" " string_content ") ))) ;) (expression_statement "uVar6 = PKCS12_SAFEBAG_get0_pkcs8(param_2);" (assignment_expression "uVar6 = PKCS12_SAFEBAG_get0_pkcs8(param_2)" identifier = (call_expression "PKCS12_SAFEBAG_get0_pkcs8(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "X509_SIG_get0(uVar6,&local_48,0);" (call_expression "X509_SIG_get0(uVar6,&local_48,0)" identifier (argument_list "(uVar6,&local_48,0)" ( identifier , (pointer_expression "&local_48" & identifier) , number_literal ))) ;) (expression_statement "FUN_0014ee52(local_48);" (call_expression "FUN_0014ee52(local_48)" identifier (argument_list "(local_48)" ( identifier ))) ;) })) (expression_statement "uVar2 = param_5 & 1;" (assignment_expression "uVar2 = param_5 & 1" identifier = (binary_expression "param_5 & 1" identifier & number_literal)) ;) (if_statement "if ((param_5 & 1) == 0) {\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      pPVar4 = PKCS12_decrypt_skey(param_2,param_3,param_4);\n      if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n    }" if (parenthesized_expression "((param_5 & 1) == 0)" ( (binary_expression "(param_5 & 1) == 0" (parenthesized_expression "(param_5 & 1)" ( (binary_expression "param_5 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      pPVar4 = PKCS12_decrypt_skey(param_2,param_3,param_4);\n      if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n    }" { (expression_statement "FUN_0014f216(param_1,uVar3,"Bag Attributes");" (call_expression "FUN_0014f216(param_1,uVar3,"Bag Attributes")" identifier (argument_list "(param_1,uVar3,"Bag Attributes")" ( identifier , identifier , (string_literal ""Bag Attributes"" " string_content ") ))) ;) (expression_statement "pPVar4 = PKCS12_decrypt_skey(param_2,param_3,param_4);" (assignment_expression "pPVar4 = PKCS12_decrypt_skey(param_2,param_3,param_4)" identifier = (call_expression "PKCS12_decrypt_skey(param_2,param_3,param_4)" identifier (argument_list "(param_2,param_3,param_4)" ( identifier , identifier , identifier )))) ;) (if_statement "if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }" if (parenthesized_expression "(pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0)" ( (binary_expression "pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0" identifier != (cast_expression "(PKCS8_PRIV_KEY_INFO *)0x0" ( (type_descriptor "PKCS8_PRIV_KEY_INFO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }" { (expression_statement "pEVar5 = EVP_PKCS82PKEY(pPVar4);" (assignment_expression "pEVar5 = EVP_PKCS82PKEY(pPVar4)" identifier = (call_expression "EVP_PKCS82PKEY(pPVar4)" identifier (argument_list "(pPVar4)" ( identifier )))) ;) (if_statement "if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }" if (parenthesized_expression "(pEVar5 == (EVP_PKEY *)0x0)" ( (binary_expression "pEVar5 == (EVP_PKEY *)0x0" identifier == (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }" { (expression_statement "PKCS8_PRIV_KEY_INFO_free(pPVar4);" (call_expression "PKCS8_PRIV_KEY_INFO_free(pPVar4)" identifier (argument_list "(pPVar4)" ( identifier ))) ;) }) (else_clause "else {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }" else (compound_statement "{\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }" { (expression_statement "uVar3 = PKCS8_pkey_get0_attrs(pPVar4);" (assignment_expression "uVar3 = PKCS8_pkey_get0_attrs(pPVar4)" identifier = (call_expression "PKCS8_pkey_get0_attrs(pPVar4)" identifier (argument_list "(pPVar4)" ( identifier )))) ;) (expression_statement "FUN_0014f216(param_1,uVar3,"Key Attributes");" (call_expression "FUN_0014f216(param_1,uVar3,"Key Attributes")" identifier (argument_list "(param_1,uVar3,"Key Attributes")" ( identifier , identifier , (string_literal ""Key Attributes"" " string_content ") ))) ;) (expression_statement "PKCS8_PRIV_KEY_INFO_free(pPVar4);" (call_expression "PKCS8_PRIV_KEY_INFO_free(pPVar4)" identifier (argument_list "(pPVar4)" ( identifier ))) ;) (expression_statement "uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);" (assignment_expression "uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6)" identifier = (call_expression "PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6)" identifier (argument_list "(param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6)" ( identifier , identifier , identifier , (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal , (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) ;) (expression_statement "EVP_PKEY_free(pEVar5);" (call_expression "EVP_PKEY_free(pEVar5)" identifier (argument_list "(pEVar5)" ( identifier ))) ;) }))) })) })) (goto_statement "goto LAB_0014f4e5;" goto statement_identifier ;) })) (if_statement "if (iVar1 < 0x98) {\n    if (iVar1 == 0x96) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Key bag\n");\n      }\n      uVar2 = param_5 & 1;\n      if ((param_5 & 1) == 0) {\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n      goto LAB_0014f4e5;\n    }\n  }\n  else {\n    if (iVar1 == 0x98) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Certificate bag\n");\n      }\n      uVar2 = param_5 & 2;\n      if ((param_5 & 2) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);\n        if (lVar7 == 0) {\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }\n      goto LAB_0014f4e5;\n    }\n    if (iVar1 == 0x9b) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Safe Contents bag\n");\n      }\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      uVar3 = PKCS12_SAFEBAG_get0_safes(param_2);\n      uVar2 = FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7);\n      goto LAB_0014f4e5;\n    }\n  }" if (parenthesized_expression "(iVar1 < 0x98)" ( (binary_expression "iVar1 < 0x98" identifier < number_literal) )) (compound_statement "{\n    if (iVar1 == 0x96) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Key bag\n");\n      }\n      uVar2 = param_5 & 1;\n      if ((param_5 & 1) == 0) {\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n      goto LAB_0014f4e5;\n    }\n  }" { (if_statement "if (iVar1 == 0x96) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Key bag\n");\n      }\n      uVar2 = param_5 & 1;\n      if ((param_5 & 1) == 0) {\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n      goto LAB_0014f4e5;\n    }" if (parenthesized_expression "(iVar1 == 0x96)" ( (binary_expression "iVar1 == 0x96" identifier == number_literal) )) (compound_statement "{\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Key bag\n");\n      }\n      uVar2 = param_5 & 1;\n      if ((param_5 & 1) == 0) {\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n      goto LAB_0014f4e5;\n    }" { (if_statement "if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Key bag\n");\n      }" if (parenthesized_expression "((param_5 & 4) != 0)" ( (binary_expression "(param_5 & 4) != 0" (parenthesized_expression "(param_5 & 4)" ( (binary_expression "param_5 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        BIO_printf(DAT_001b76b0,"Key bag\n");\n      }" { (expression_statement "BIO_printf(DAT_001b76b0,"Key bag\n");" (call_expression "BIO_printf(DAT_001b76b0,"Key bag\n")" identifier (argument_list "(DAT_001b76b0,"Key bag\n")" ( identifier , (string_literal ""Key bag\n"" " string_content escape_sequence ") ))) ;) })) (expression_statement "uVar2 = param_5 & 1;" (assignment_expression "uVar2 = param_5 & 1" identifier = (binary_expression "param_5 & 1" identifier & number_literal)) ;) (if_statement "if ((param_5 & 1) == 0) {\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }" if (parenthesized_expression "((param_5 & 1) == 0)" ( (binary_expression "(param_5 & 1) == 0" (parenthesized_expression "(param_5 & 1)" ( (binary_expression "param_5 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }" { (expression_statement "FUN_0014f216(param_1,uVar3,"Bag Attributes");" (call_expression "FUN_0014f216(param_1,uVar3,"Bag Attributes")" identifier (argument_list "(param_1,uVar3,"Bag Attributes")" ( identifier , identifier , (string_literal ""Bag Attributes"" " string_content ") ))) ;) (expression_statement "pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2);" (assignment_expression "pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2)" identifier = (cast_expression "(PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2)" ( (type_descriptor "PKCS8_PRIV_KEY_INFO *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "PKCS12_SAFEBAG_get0_p8inf(param_2)" identifier (argument_list "(param_2)" ( identifier ))))) ;) (expression_statement "pEVar5 = EVP_PKCS82PKEY(pPVar4);" (assignment_expression "pEVar5 = EVP_PKCS82PKEY(pPVar4)" identifier = (call_expression "EVP_PKCS82PKEY(pPVar4)" identifier (argument_list "(pPVar4)" ( identifier )))) ;) (if_statement "if (pEVar5 != (EVP_PKEY *)0x0) {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }" if (parenthesized_expression "(pEVar5 != (EVP_PKEY *)0x0)" ( (binary_expression "pEVar5 != (EVP_PKEY *)0x0" identifier != (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }" { (expression_statement "uVar3 = PKCS8_pkey_get0_attrs(pPVar4);" (assignment_expression "uVar3 = PKCS8_pkey_get0_attrs(pPVar4)" identifier = (call_expression "PKCS8_pkey_get0_attrs(pPVar4)" identifier (argument_list "(pPVar4)" ( identifier )))) ;) (expression_statement "FUN_0014f216(param_1,uVar3,"Key Attributes");" (call_expression "FUN_0014f216(param_1,uVar3,"Key Attributes")" identifier (argument_list "(param_1,uVar3,"Key Attributes")" ( identifier , identifier , (string_literal ""Key Attributes"" " string_content ") ))) ;) (expression_statement "uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);" (assignment_expression "uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6)" identifier = (call_expression "PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6)" identifier (argument_list "(param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6)" ( identifier , identifier , identifier , (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal , (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) ;) (expression_statement "EVP_PKEY_free(pEVar5);" (call_expression "EVP_PKEY_free(pEVar5)" identifier (argument_list "(pEVar5)" ( identifier ))) ;) })) })) (goto_statement "goto LAB_0014f4e5;" goto statement_identifier ;) })) }) (else_clause "else {\n    if (iVar1 == 0x98) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Certificate bag\n");\n      }\n      uVar2 = param_5 & 2;\n      if ((param_5 & 2) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);\n        if (lVar7 == 0) {\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }\n      goto LAB_0014f4e5;\n    }\n    if (iVar1 == 0x9b) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Safe Contents bag\n");\n      }\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      uVar3 = PKCS12_SAFEBAG_get0_safes(param_2);\n      uVar2 = FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7);\n      goto LAB_0014f4e5;\n    }\n  }" else (compound_statement "{\n    if (iVar1 == 0x98) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Certificate bag\n");\n      }\n      uVar2 = param_5 & 2;\n      if ((param_5 & 2) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);\n        if (lVar7 == 0) {\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }\n      goto LAB_0014f4e5;\n    }\n    if (iVar1 == 0x9b) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Safe Contents bag\n");\n      }\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      uVar3 = PKCS12_SAFEBAG_get0_safes(param_2);\n      uVar2 = FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7);\n      goto LAB_0014f4e5;\n    }\n  }" { (if_statement "if (iVar1 == 0x98) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Certificate bag\n");\n      }\n      uVar2 = param_5 & 2;\n      if ((param_5 & 2) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);\n        if (lVar7 == 0) {\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }\n      goto LAB_0014f4e5;\n    }" if (parenthesized_expression "(iVar1 == 0x98)" ( (binary_expression "iVar1 == 0x98" identifier == number_literal) )) (compound_statement "{\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Certificate bag\n");\n      }\n      uVar2 = param_5 & 2;\n      if ((param_5 & 2) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);\n        if (lVar7 == 0) {\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }\n      goto LAB_0014f4e5;\n    }" { (if_statement "if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Certificate bag\n");\n      }" if (parenthesized_expression "((param_5 & 4) != 0)" ( (binary_expression "(param_5 & 4) != 0" (parenthesized_expression "(param_5 & 4)" ( (binary_expression "param_5 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        BIO_printf(DAT_001b76b0,"Certificate bag\n");\n      }" { (expression_statement "BIO_printf(DAT_001b76b0,"Certificate bag\n");" (call_expression "BIO_printf(DAT_001b76b0,"Certificate bag\n")" identifier (argument_list "(DAT_001b76b0,"Certificate bag\n")" ( identifier , (string_literal ""Certificate bag\n"" " string_content escape_sequence ") ))) ;) })) (expression_statement "uVar2 = param_5 & 2;" (assignment_expression "uVar2 = param_5 & 2" identifier = (binary_expression "param_5 & 2" identifier & number_literal)) ;) (if_statement "if ((param_5 & 2) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);\n        if (lVar7 == 0) {\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }" if (parenthesized_expression "((param_5 & 2) == 0)" ( (binary_expression "(param_5 & 2) == 0" (parenthesized_expression "(param_5 & 2)" ( (binary_expression "param_5 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);\n        if (lVar7 == 0) {\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }" { (expression_statement "lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);" (assignment_expression "lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d)" identifier = (call_expression "PKCS12_SAFEBAG_get0_attr(param_2,0x9d)" identifier (argument_list "(param_2,0x9d)" ( identifier , number_literal )))) ;) (if_statement "if (lVar7 == 0) {\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }" { (if_statement "if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }" if (parenthesized_expression "((param_5 & 8) != 0)" ( (binary_expression "(param_5 & 8) != 0" (parenthesized_expression "(param_5 & 8)" ( (binary_expression "param_5 & 8" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }" { (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0014f4e5;" goto statement_identifier ;) })) }) (else_clause "else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }" else (if_statement "if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }" if (parenthesized_expression "((param_5 & 0x10) != 0)" ( (binary_expression "(param_5 & 0x10) != 0" (parenthesized_expression "(param_5 & 0x10)" ( (binary_expression "param_5 & 0x10" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }" { (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0014f4e5;" goto statement_identifier ;) })))) (expression_statement "FUN_0014f216(param_1,uVar3,"Bag Attributes");" (call_expression "FUN_0014f216(param_1,uVar3,"Bag Attributes")" identifier (argument_list "(param_1,uVar3,"Bag Attributes")" ( identifier , identifier , (string_literal ""Bag Attributes"" " string_content ") ))) ;) (expression_statement "iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);" (assignment_expression "iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2)" identifier = (call_expression "PKCS12_SAFEBAG_get_bag_nid(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }" if (parenthesized_expression "(iVar1 == 0x9e)" ( (binary_expression "iVar1 == 0x9e" identifier == number_literal) )) (compound_statement "{\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }" { (expression_statement "x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);" (assignment_expression "x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2)" identifier = (cast_expression "(X509 *)PKCS12_SAFEBAG_get1_cert(param_2)" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "PKCS12_SAFEBAG_get1_cert(param_2)" identifier (argument_list "(param_2)" ( identifier ))))) ;) (if_statement "if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }" if (parenthesized_expression "(x != (X509 *)0x0)" ( (binary_expression "x != (X509 *)0x0" identifier != (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }" { (expression_statement "FUN_0017ba67(param_1,x);" (call_expression "FUN_0017ba67(param_1,x)" identifier (argument_list "(param_1,x)" ( identifier , identifier ))) ;) (expression_statement "uVar2 = PEM_write_bio_X509(param_1,x);" (assignment_expression "uVar2 = PEM_write_bio_X509(param_1,x)" identifier = (call_expression "PEM_write_bio_X509(param_1,x)" identifier (argument_list "(param_1,x)" ( identifier , identifier )))) ;) (expression_statement "X509_free(x);" (call_expression "X509_free(x)" identifier (argument_list "(x)" ( identifier ))) ;) })) }) (else_clause "else {\n          uVar2 = 1;\n        }" else (compound_statement "{\n          uVar2 = 1;\n        }" { (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n        uVar2 = 1;\n      }" else (compound_statement "{\n        uVar2 = 1;\n      }" { (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) }))) (goto_statement "goto LAB_0014f4e5;" goto statement_identifier ;) })) (if_statement "if (iVar1 == 0x9b) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Safe Contents bag\n");\n      }\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      uVar3 = PKCS12_SAFEBAG_get0_safes(param_2);\n      uVar2 = FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7);\n      goto LAB_0014f4e5;\n    }" if (parenthesized_expression "(iVar1 == 0x9b)" ( (binary_expression "iVar1 == 0x9b" identifier == number_literal) )) (compound_statement "{\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Safe Contents bag\n");\n      }\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      uVar3 = PKCS12_SAFEBAG_get0_safes(param_2);\n      uVar2 = FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7);\n      goto LAB_0014f4e5;\n    }" { (if_statement "if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Safe Contents bag\n");\n      }" if (parenthesized_expression "((param_5 & 4) != 0)" ( (binary_expression "(param_5 & 4) != 0" (parenthesized_expression "(param_5 & 4)" ( (binary_expression "param_5 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        BIO_printf(DAT_001b76b0,"Safe Contents bag\n");\n      }" { (expression_statement "BIO_printf(DAT_001b76b0,"Safe Contents bag\n");" (call_expression "BIO_printf(DAT_001b76b0,"Safe Contents bag\n")" identifier (argument_list "(DAT_001b76b0,"Safe Contents bag\n")" ( identifier , (string_literal ""Safe Contents bag\n"" " string_content escape_sequence ") ))) ;) })) (expression_statement "FUN_0014f216(param_1,uVar3,"Bag Attributes");" (call_expression "FUN_0014f216(param_1,uVar3,"Bag Attributes")" identifier (argument_list "(param_1,uVar3,"Bag Attributes")" ( identifier , identifier , (string_literal ""Bag Attributes"" " string_content ") ))) ;) (expression_statement "uVar3 = PKCS12_SAFEBAG_get0_safes(param_2);" (assignment_expression "uVar3 = PKCS12_SAFEBAG_get0_safes(param_2)" identifier = (call_expression "PKCS12_SAFEBAG_get0_safes(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "uVar2 = FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7);" (assignment_expression "uVar2 = FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7)" identifier = (call_expression "FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7)" identifier (argument_list "(param_1,uVar3,param_3,param_4,param_5,param_6,param_7)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (goto_statement "goto LAB_0014f4e5;" goto statement_identifier ;) })) }))) (expression_statement "BIO_printf(DAT_001b76b0,"Warning unsupported bag type: ");" (call_expression "BIO_printf(DAT_001b76b0,"Warning unsupported bag type: ")" identifier (argument_list "(DAT_001b76b0,"Warning unsupported bag type: ")" ( identifier , (string_literal ""Warning unsupported bag type: "" " string_content ") ))) ;) (expression_statement "a = (ASN1_OBJECT *)PKCS12_SAFEBAG_get0_type(param_2);" (assignment_expression "a = (ASN1_OBJECT *)PKCS12_SAFEBAG_get0_type(param_2)" identifier = (cast_expression "(ASN1_OBJECT *)PKCS12_SAFEBAG_get0_type(param_2)" ( (type_descriptor "ASN1_OBJECT *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "PKCS12_SAFEBAG_get0_type(param_2)" identifier (argument_list "(param_2)" ( identifier ))))) ;) (expression_statement "i2a_ASN1_OBJECT(DAT_001b76b0,a);" (call_expression "i2a_ASN1_OBJECT(DAT_001b76b0,a)" identifier (argument_list "(DAT_001b76b0,a)" ( identifier , identifier ))) ;) (expression_statement "BIO_printf(DAT_001b76b0,"\n");" (call_expression "BIO_printf(DAT_001b76b0,"\n")" identifier (argument_list "(DAT_001b76b0,"\n")" ( identifier , (string_literal ""\n"" " escape_sequence ") ))) ;) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0014f4e5:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar2;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar2;\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 uVar2;\n  }" { (return_statement "return uVar2;" return identifier ;) }))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (string_literal " string_content ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) })) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) })) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })))) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT )))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " escape_sequence ") ))) ;) (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_0014f424(BIO *param_1,PKCS12_SAFEBAG *param_2,char *param_3,int param_4,uint param_5,\n                 void *param_6,EVP_CIPHER *param_7)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined8 uVar3;\n  PKCS8_PRIV_KEY_INFO *pPVar4;\n  EVP_PKEY *pEVar5;\n  undefined8 uVar6;\n  long lVar7;\n  X509 *x;\n  ASN1_OBJECT *a;\n  long in_FS_OFFSET;\n  undefined8 local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar3 = PKCS12_SAFEBAG_get0_attrs(param_2);\n  iVar1 = PKCS12_SAFEBAG_get_nid(param_2);\n  if (iVar1 == 0x97) {\n    if ((param_5 & 4) != 0) {\n      BIO_printf(DAT_001b76b0,"Shrouded Keybag: ");\n      uVar6 = PKCS12_SAFEBAG_get0_pkcs8(param_2);\n      X509_SIG_get0(uVar6,&local_48,0);\n      FUN_0014ee52(local_48);\n    }\n    uVar2 = param_5 & 1;\n    if ((param_5 & 1) == 0) {\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      pPVar4 = PKCS12_decrypt_skey(param_2,param_3,param_4);\n      if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n    }\n    goto LAB_0014f4e5;\n  }\n  if (iVar1 < 0x98) {\n    if (iVar1 == 0x96) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Key bag\n");\n      }\n      uVar2 = param_5 & 1;\n      if ((param_5 & 1) == 0) {\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n      goto LAB_0014f4e5;\n    }\n  }\n  else {\n    if (iVar1 == 0x98) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Certificate bag\n");\n      }\n      uVar2 = param_5 & 2;\n      if ((param_5 & 2) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);\n        if (lVar7 == 0) {\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }\n      goto LAB_0014f4e5;\n    }\n    if (iVar1 == 0x9b) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Safe Contents bag\n");\n      }\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      uVar3 = PKCS12_SAFEBAG_get0_safes(param_2);\n      uVar2 = FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7);\n      goto LAB_0014f4e5;\n    }\n  }\n  BIO_printf(DAT_001b76b0,"Warning unsupported bag type: ");\n  a = (ASN1_OBJECT *)PKCS12_SAFEBAG_get0_type(param_2);\n  i2a_ASN1_OBJECT(DAT_001b76b0,a);\n  BIO_printf(DAT_001b76b0,"\n");\n  uVar2 = 1;\nLAB_0014f4e5:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar2;\n  }\n                    \n  __stack_chk_fail();\n}" (type_identifier "uint") (function_declarator "FUN_0014f424(BIO *param_1,PKCS12_SAFEBAG *param_2,char *param_3,int param_4,uint param_5,\n                 void *param_6,EVP_CIPHER *param_7)" (identifier "FUN_0014f424") (parameter_list "(BIO *param_1,PKCS12_SAFEBAG *param_2,char *param_3,int param_4,uint param_5,\n                 void *param_6,EVP_CIPHER *param_7)" (( "(") (parameter_declaration "BIO *param_1" (type_identifier "BIO") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "PKCS12_SAFEBAG *param_2" (type_identifier "PKCS12_SAFEBAG") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "char *param_3" (primitive_type "char") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "uint param_5" (type_identifier "uint") (identifier "param_5")) (, ",") (parameter_declaration "void *param_6" (primitive_type "void") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) (, ",") (parameter_declaration "EVP_CIPHER *param_7" (type_identifier "EVP_CIPHER") (pointer_declarator "*param_7" (* "*") (identifier "param_7"))) () ")"))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  undefined8 uVar3;\n  PKCS8_PRIV_KEY_INFO *pPVar4;\n  EVP_PKEY *pEVar5;\n  undefined8 uVar6;\n  long lVar7;\n  X509 *x;\n  ASN1_OBJECT *a;\n  long in_FS_OFFSET;\n  undefined8 local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar3 = PKCS12_SAFEBAG_get0_attrs(param_2);\n  iVar1 = PKCS12_SAFEBAG_get_nid(param_2);\n  if (iVar1 == 0x97) {\n    if ((param_5 & 4) != 0) {\n      BIO_printf(DAT_001b76b0,"Shrouded Keybag: ");\n      uVar6 = PKCS12_SAFEBAG_get0_pkcs8(param_2);\n      X509_SIG_get0(uVar6,&local_48,0);\n      FUN_0014ee52(local_48);\n    }\n    uVar2 = param_5 & 1;\n    if ((param_5 & 1) == 0) {\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      pPVar4 = PKCS12_decrypt_skey(param_2,param_3,param_4);\n      if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n    }\n    goto LAB_0014f4e5;\n  }\n  if (iVar1 < 0x98) {\n    if (iVar1 == 0x96) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Key bag\n");\n      }\n      uVar2 = param_5 & 1;\n      if ((param_5 & 1) == 0) {\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n      goto LAB_0014f4e5;\n    }\n  }\n  else {\n    if (iVar1 == 0x98) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Certificate bag\n");\n      }\n      uVar2 = param_5 & 2;\n      if ((param_5 & 2) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);\n        if (lVar7 == 0) {\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }\n      goto LAB_0014f4e5;\n    }\n    if (iVar1 == 0x9b) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Safe Contents bag\n");\n      }\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      uVar3 = PKCS12_SAFEBAG_get0_safes(param_2);\n      uVar2 = FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7);\n      goto LAB_0014f4e5;\n    }\n  }\n  BIO_printf(DAT_001b76b0,"Warning unsupported bag type: ");\n  a = (ASN1_OBJECT *)PKCS12_SAFEBAG_get0_type(param_2);\n  i2a_ASN1_OBJECT(DAT_001b76b0,a);\n  BIO_printf(DAT_001b76b0,"\n");\n  uVar2 = 1;\nLAB_0014f4e5:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar2;\n  }\n                    \n  __stack_chk_fail();\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "undefined8 uVar3;" (type_identifier "undefined8") (identifier "uVar3") (; ";")) (declaration "PKCS8_PRIV_KEY_INFO *pPVar4;" (type_identifier "PKCS8_PRIV_KEY_INFO") (pointer_declarator "*pPVar4" (* "*") (identifier "pPVar4")) (; ";")) (declaration "EVP_PKEY *pEVar5;" (type_identifier "EVP_PKEY") (pointer_declarator "*pEVar5" (* "*") (identifier "pEVar5")) (; ";")) (declaration "undefined8 uVar6;" (type_identifier "undefined8") (identifier "uVar6") (; ";")) (declaration "long lVar7;" (sized_type_specifier "long" (long "long")) (identifier "lVar7") (; ";")) (declaration "X509 *x;" (type_identifier "X509") (pointer_declarator "*x" (* "*") (identifier "x")) (; ";")) (declaration "ASN1_OBJECT *a;" (type_identifier "ASN1_OBJECT") (pointer_declarator "*a" (* "*") (identifier "a")) (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "undefined8 local_48;" (type_identifier "undefined8") (identifier "local_48") (; ";")) (declaration "long local_40;" (sized_type_specifier "long" (long "long")) (identifier "local_40") (; ";")) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "uVar3 = PKCS12_SAFEBAG_get0_attrs(param_2);" (assignment_expression "uVar3 = PKCS12_SAFEBAG_get0_attrs(param_2)" (identifier "uVar3") (= "=") (call_expression "PKCS12_SAFEBAG_get0_attrs(param_2)" (identifier "PKCS12_SAFEBAG_get0_attrs") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "iVar1 = PKCS12_SAFEBAG_get_nid(param_2);" (assignment_expression "iVar1 = PKCS12_SAFEBAG_get_nid(param_2)" (identifier "iVar1") (= "=") (call_expression "PKCS12_SAFEBAG_get_nid(param_2)" (identifier "PKCS12_SAFEBAG_get_nid") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar1 == 0x97) {\n    if ((param_5 & 4) != 0) {\n      BIO_printf(DAT_001b76b0,"Shrouded Keybag: ");\n      uVar6 = PKCS12_SAFEBAG_get0_pkcs8(param_2);\n      X509_SIG_get0(uVar6,&local_48,0);\n      FUN_0014ee52(local_48);\n    }\n    uVar2 = param_5 & 1;\n    if ((param_5 & 1) == 0) {\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      pPVar4 = PKCS12_decrypt_skey(param_2,param_3,param_4);\n      if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n    }\n    goto LAB_0014f4e5;\n  }" (if "if") (parenthesized_expression "(iVar1 == 0x97)" (( "(") (binary_expression "iVar1 == 0x97" (identifier "iVar1") (== "==") (number_literal "0x97")) () ")")) (compound_statement "{\n    if ((param_5 & 4) != 0) {\n      BIO_printf(DAT_001b76b0,"Shrouded Keybag: ");\n      uVar6 = PKCS12_SAFEBAG_get0_pkcs8(param_2);\n      X509_SIG_get0(uVar6,&local_48,0);\n      FUN_0014ee52(local_48);\n    }\n    uVar2 = param_5 & 1;\n    if ((param_5 & 1) == 0) {\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      pPVar4 = PKCS12_decrypt_skey(param_2,param_3,param_4);\n      if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n    }\n    goto LAB_0014f4e5;\n  }" ({ "{") (if_statement "if ((param_5 & 4) != 0) {\n      BIO_printf(DAT_001b76b0,"Shrouded Keybag: ");\n      uVar6 = PKCS12_SAFEBAG_get0_pkcs8(param_2);\n      X509_SIG_get0(uVar6,&local_48,0);\n      FUN_0014ee52(local_48);\n    }" (if "if") (parenthesized_expression "((param_5 & 4) != 0)" (( "(") (binary_expression "(param_5 & 4) != 0" (parenthesized_expression "(param_5 & 4)" (( "(") (binary_expression "param_5 & 4" (identifier "param_5") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      BIO_printf(DAT_001b76b0,"Shrouded Keybag: ");\n      uVar6 = PKCS12_SAFEBAG_get0_pkcs8(param_2);\n      X509_SIG_get0(uVar6,&local_48,0);\n      FUN_0014ee52(local_48);\n    }" ({ "{") (expression_statement "BIO_printf(DAT_001b76b0,"Shrouded Keybag: ");" (call_expression "BIO_printf(DAT_001b76b0,"Shrouded Keybag: ")" (identifier "BIO_printf") (argument_list "(DAT_001b76b0,"Shrouded Keybag: ")" (( "(") (identifier "DAT_001b76b0") (, ",") (string_literal ""Shrouded Keybag: "" (" """) (string_content "Shrouded Keybag: ") (" """)) () ")"))) (; ";")) (expression_statement "uVar6 = PKCS12_SAFEBAG_get0_pkcs8(param_2);" (assignment_expression "uVar6 = PKCS12_SAFEBAG_get0_pkcs8(param_2)" (identifier "uVar6") (= "=") (call_expression "PKCS12_SAFEBAG_get0_pkcs8(param_2)" (identifier "PKCS12_SAFEBAG_get0_pkcs8") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "X509_SIG_get0(uVar6,&local_48,0);" (call_expression "X509_SIG_get0(uVar6,&local_48,0)" (identifier "X509_SIG_get0") (argument_list "(uVar6,&local_48,0)" (( "(") (identifier "uVar6") (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_0014ee52(local_48);" (call_expression "FUN_0014ee52(local_48)" (identifier "FUN_0014ee52") (argument_list "(local_48)" (( "(") (identifier "local_48") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar2 = param_5 & 1;" (assignment_expression "uVar2 = param_5 & 1" (identifier "uVar2") (= "=") (binary_expression "param_5 & 1" (identifier "param_5") (& "&") (number_literal "1"))) (; ";")) (if_statement "if ((param_5 & 1) == 0) {\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      pPVar4 = PKCS12_decrypt_skey(param_2,param_3,param_4);\n      if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n    }" (if "if") (parenthesized_expression "((param_5 & 1) == 0)" (( "(") (binary_expression "(param_5 & 1) == 0" (parenthesized_expression "(param_5 & 1)" (( "(") (binary_expression "param_5 & 1" (identifier "param_5") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      pPVar4 = PKCS12_decrypt_skey(param_2,param_3,param_4);\n      if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n    }" ({ "{") (expression_statement "FUN_0014f216(param_1,uVar3,"Bag Attributes");" (call_expression "FUN_0014f216(param_1,uVar3,"Bag Attributes")" (identifier "FUN_0014f216") (argument_list "(param_1,uVar3,"Bag Attributes")" (( "(") (identifier "param_1") (, ",") (identifier "uVar3") (, ",") (string_literal ""Bag Attributes"" (" """) (string_content "Bag Attributes") (" """)) () ")"))) (; ";")) (expression_statement "pPVar4 = PKCS12_decrypt_skey(param_2,param_3,param_4);" (assignment_expression "pPVar4 = PKCS12_decrypt_skey(param_2,param_3,param_4)" (identifier "pPVar4") (= "=") (call_expression "PKCS12_decrypt_skey(param_2,param_3,param_4)" (identifier "PKCS12_decrypt_skey") (argument_list "(param_2,param_3,param_4)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")")))) (; ";")) (if_statement "if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }" (if "if") (parenthesized_expression "(pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0)" (( "(") (binary_expression "pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0" (identifier "pPVar4") (!= "!=") (cast_expression "(PKCS8_PRIV_KEY_INFO *)0x0" (( "(") (type_descriptor "PKCS8_PRIV_KEY_INFO *" (type_identifier "PKCS8_PRIV_KEY_INFO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }" ({ "{") (expression_statement "pEVar5 = EVP_PKCS82PKEY(pPVar4);" (assignment_expression "pEVar5 = EVP_PKCS82PKEY(pPVar4)" (identifier "pEVar5") (= "=") (call_expression "EVP_PKCS82PKEY(pPVar4)" (identifier "EVP_PKCS82PKEY") (argument_list "(pPVar4)" (( "(") (identifier "pPVar4") () ")")))) (; ";")) (if_statement "if (pEVar5 == (EVP_PKEY *)0x0) {\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }\n        else {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }" (if "if") (parenthesized_expression "(pEVar5 == (EVP_PKEY *)0x0)" (( "(") (binary_expression "pEVar5 == (EVP_PKEY *)0x0" (identifier "pEVar5") (== "==") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n        }" ({ "{") (expression_statement "PKCS8_PRIV_KEY_INFO_free(pPVar4);" (call_expression "PKCS8_PRIV_KEY_INFO_free(pPVar4)" (identifier "PKCS8_PRIV_KEY_INFO_free") (argument_list "(pPVar4)" (( "(") (identifier "pPVar4") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }" (else "else") (compound_statement "{\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          PKCS8_PRIV_KEY_INFO_free(pPVar4);\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }" ({ "{") (expression_statement "uVar3 = PKCS8_pkey_get0_attrs(pPVar4);" (assignment_expression "uVar3 = PKCS8_pkey_get0_attrs(pPVar4)" (identifier "uVar3") (= "=") (call_expression "PKCS8_pkey_get0_attrs(pPVar4)" (identifier "PKCS8_pkey_get0_attrs") (argument_list "(pPVar4)" (( "(") (identifier "pPVar4") () ")")))) (; ";")) (expression_statement "FUN_0014f216(param_1,uVar3,"Key Attributes");" (call_expression "FUN_0014f216(param_1,uVar3,"Key Attributes")" (identifier "FUN_0014f216") (argument_list "(param_1,uVar3,"Key Attributes")" (( "(") (identifier "param_1") (, ",") (identifier "uVar3") (, ",") (string_literal ""Key Attributes"" (" """) (string_content "Key Attributes") (" """)) () ")"))) (; ";")) (expression_statement "PKCS8_PRIV_KEY_INFO_free(pPVar4);" (call_expression "PKCS8_PRIV_KEY_INFO_free(pPVar4)" (identifier "PKCS8_PRIV_KEY_INFO_free") (argument_list "(pPVar4)" (( "(") (identifier "pPVar4") () ")"))) (; ";")) (expression_statement "uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);" (assignment_expression "uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6)" (identifier "uVar2") (= "=") (call_expression "PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6)" (identifier "PEM_write_bio_PrivateKey") (argument_list "(param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "pEVar5") (, ",") (identifier "param_7") (, ",") (cast_expression "(uchar *)0x0" (( "(") (type_descriptor "uchar *" (type_identifier "uchar") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (number_literal "0") (, ",") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (identifier "param_6") () ")")))) (; ";")) (expression_statement "EVP_PKEY_free(pEVar5);" (call_expression "EVP_PKEY_free(pEVar5)" (identifier "EVP_PKEY_free") (argument_list "(pEVar5)" (( "(") (identifier "pEVar5") () ")"))) (; ";")) (} "}")))) (} "}"))) (} "}"))) (goto_statement "goto LAB_0014f4e5;" (goto "goto") (statement_identifier "LAB_0014f4e5") (; ";")) (} "}"))) (if_statement "if (iVar1 < 0x98) {\n    if (iVar1 == 0x96) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Key bag\n");\n      }\n      uVar2 = param_5 & 1;\n      if ((param_5 & 1) == 0) {\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n      goto LAB_0014f4e5;\n    }\n  }\n  else {\n    if (iVar1 == 0x98) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Certificate bag\n");\n      }\n      uVar2 = param_5 & 2;\n      if ((param_5 & 2) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);\n        if (lVar7 == 0) {\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }\n      goto LAB_0014f4e5;\n    }\n    if (iVar1 == 0x9b) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Safe Contents bag\n");\n      }\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      uVar3 = PKCS12_SAFEBAG_get0_safes(param_2);\n      uVar2 = FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7);\n      goto LAB_0014f4e5;\n    }\n  }" (if "if") (parenthesized_expression "(iVar1 < 0x98)" (( "(") (binary_expression "iVar1 < 0x98" (identifier "iVar1") (< "<") (number_literal "0x98")) () ")")) (compound_statement "{\n    if (iVar1 == 0x96) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Key bag\n");\n      }\n      uVar2 = param_5 & 1;\n      if ((param_5 & 1) == 0) {\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n      goto LAB_0014f4e5;\n    }\n  }" ({ "{") (if_statement "if (iVar1 == 0x96) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Key bag\n");\n      }\n      uVar2 = param_5 & 1;\n      if ((param_5 & 1) == 0) {\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n      goto LAB_0014f4e5;\n    }" (if "if") (parenthesized_expression "(iVar1 == 0x96)" (( "(") (binary_expression "iVar1 == 0x96" (identifier "iVar1") (== "==") (number_literal "0x96")) () ")")) (compound_statement "{\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Key bag\n");\n      }\n      uVar2 = param_5 & 1;\n      if ((param_5 & 1) == 0) {\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }\n      goto LAB_0014f4e5;\n    }" ({ "{") (if_statement "if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Key bag\n");\n      }" (if "if") (parenthesized_expression "((param_5 & 4) != 0)" (( "(") (binary_expression "(param_5 & 4) != 0" (parenthesized_expression "(param_5 & 4)" (( "(") (binary_expression "param_5 & 4" (identifier "param_5") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        BIO_printf(DAT_001b76b0,"Key bag\n");\n      }" ({ "{") (expression_statement "BIO_printf(DAT_001b76b0,"Key bag\n");" (call_expression "BIO_printf(DAT_001b76b0,"Key bag\n")" (identifier "BIO_printf") (argument_list "(DAT_001b76b0,"Key bag\n")" (( "(") (identifier "DAT_001b76b0") (, ",") (string_literal ""Key bag\n"" (" """) (string_content "Key bag") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar2 = param_5 & 1;" (assignment_expression "uVar2 = param_5 & 1" (identifier "uVar2") (= "=") (binary_expression "param_5 & 1" (identifier "param_5") (& "&") (number_literal "1"))) (; ";")) (if_statement "if ((param_5 & 1) == 0) {\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }" (if "if") (parenthesized_expression "((param_5 & 1) == 0)" (( "(") (binary_expression "(param_5 & 1) == 0" (parenthesized_expression "(param_5 & 1)" (( "(") (binary_expression "param_5 & 1" (identifier "param_5") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2);\n        pEVar5 = EVP_PKCS82PKEY(pPVar4);\n        if (pEVar5 != (EVP_PKEY *)0x0) {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }\n      }" ({ "{") (expression_statement "FUN_0014f216(param_1,uVar3,"Bag Attributes");" (call_expression "FUN_0014f216(param_1,uVar3,"Bag Attributes")" (identifier "FUN_0014f216") (argument_list "(param_1,uVar3,"Bag Attributes")" (( "(") (identifier "param_1") (, ",") (identifier "uVar3") (, ",") (string_literal ""Bag Attributes"" (" """) (string_content "Bag Attributes") (" """)) () ")"))) (; ";")) (expression_statement "pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2);" (assignment_expression "pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2)" (identifier "pPVar4") (= "=") (cast_expression "(PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2)" (( "(") (type_descriptor "PKCS8_PRIV_KEY_INFO *" (type_identifier "PKCS8_PRIV_KEY_INFO") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "PKCS12_SAFEBAG_get0_p8inf(param_2)" (identifier "PKCS12_SAFEBAG_get0_p8inf") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))))) (; ";")) (expression_statement "pEVar5 = EVP_PKCS82PKEY(pPVar4);" (assignment_expression "pEVar5 = EVP_PKCS82PKEY(pPVar4)" (identifier "pEVar5") (= "=") (call_expression "EVP_PKCS82PKEY(pPVar4)" (identifier "EVP_PKCS82PKEY") (argument_list "(pPVar4)" (( "(") (identifier "pPVar4") () ")")))) (; ";")) (if_statement "if (pEVar5 != (EVP_PKEY *)0x0) {\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }" (if "if") (parenthesized_expression "(pEVar5 != (EVP_PKEY *)0x0)" (( "(") (binary_expression "pEVar5 != (EVP_PKEY *)0x0" (identifier "pEVar5") (!= "!=") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);\n          FUN_0014f216(param_1,uVar3,"Key Attributes");\n          uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);\n          EVP_PKEY_free(pEVar5);\n        }" ({ "{") (expression_statement "uVar3 = PKCS8_pkey_get0_attrs(pPVar4);" (assignment_expression "uVar3 = PKCS8_pkey_get0_attrs(pPVar4)" (identifier "uVar3") (= "=") (call_expression "PKCS8_pkey_get0_attrs(pPVar4)" (identifier "PKCS8_pkey_get0_attrs") (argument_list "(pPVar4)" (( "(") (identifier "pPVar4") () ")")))) (; ";")) (expression_statement "FUN_0014f216(param_1,uVar3,"Key Attributes");" (call_expression "FUN_0014f216(param_1,uVar3,"Key Attributes")" (identifier "FUN_0014f216") (argument_list "(param_1,uVar3,"Key Attributes")" (( "(") (identifier "param_1") (, ",") (identifier "uVar3") (, ",") (string_literal ""Key Attributes"" (" """) (string_content "Key Attributes") (" """)) () ")"))) (; ";")) (expression_statement "uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);" (assignment_expression "uVar2 = PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6)" (identifier "uVar2") (= "=") (call_expression "PEM_write_bio_PrivateKey\n                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6)" (identifier "PEM_write_bio_PrivateKey") (argument_list "(param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "pEVar5") (, ",") (identifier "param_7") (, ",") (cast_expression "(uchar *)0x0" (( "(") (type_descriptor "uchar *" (type_identifier "uchar") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (number_literal "0") (, ",") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (identifier "param_6") () ")")))) (; ";")) (expression_statement "EVP_PKEY_free(pEVar5);" (call_expression "EVP_PKEY_free(pEVar5)" (identifier "EVP_PKEY_free") (argument_list "(pEVar5)" (( "(") (identifier "pEVar5") () ")"))) (; ";")) (} "}"))) (} "}"))) (goto_statement "goto LAB_0014f4e5;" (goto "goto") (statement_identifier "LAB_0014f4e5") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    if (iVar1 == 0x98) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Certificate bag\n");\n      }\n      uVar2 = param_5 & 2;\n      if ((param_5 & 2) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);\n        if (lVar7 == 0) {\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }\n      goto LAB_0014f4e5;\n    }\n    if (iVar1 == 0x9b) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Safe Contents bag\n");\n      }\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      uVar3 = PKCS12_SAFEBAG_get0_safes(param_2);\n      uVar2 = FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7);\n      goto LAB_0014f4e5;\n    }\n  }" (else "else") (compound_statement "{\n    if (iVar1 == 0x98) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Certificate bag\n");\n      }\n      uVar2 = param_5 & 2;\n      if ((param_5 & 2) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);\n        if (lVar7 == 0) {\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }\n      goto LAB_0014f4e5;\n    }\n    if (iVar1 == 0x9b) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Safe Contents bag\n");\n      }\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      uVar3 = PKCS12_SAFEBAG_get0_safes(param_2);\n      uVar2 = FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7);\n      goto LAB_0014f4e5;\n    }\n  }" ({ "{") (if_statement "if (iVar1 == 0x98) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Certificate bag\n");\n      }\n      uVar2 = param_5 & 2;\n      if ((param_5 & 2) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);\n        if (lVar7 == 0) {\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }\n      goto LAB_0014f4e5;\n    }" (if "if") (parenthesized_expression "(iVar1 == 0x98)" (( "(") (binary_expression "iVar1 == 0x98" (identifier "iVar1") (== "==") (number_literal "0x98")) () ")")) (compound_statement "{\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Certificate bag\n");\n      }\n      uVar2 = param_5 & 2;\n      if ((param_5 & 2) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);\n        if (lVar7 == 0) {\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }\n      goto LAB_0014f4e5;\n    }" ({ "{") (if_statement "if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Certificate bag\n");\n      }" (if "if") (parenthesized_expression "((param_5 & 4) != 0)" (( "(") (binary_expression "(param_5 & 4) != 0" (parenthesized_expression "(param_5 & 4)" (( "(") (binary_expression "param_5 & 4" (identifier "param_5") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        BIO_printf(DAT_001b76b0,"Certificate bag\n");\n      }" ({ "{") (expression_statement "BIO_printf(DAT_001b76b0,"Certificate bag\n");" (call_expression "BIO_printf(DAT_001b76b0,"Certificate bag\n")" (identifier "BIO_printf") (argument_list "(DAT_001b76b0,"Certificate bag\n")" (( "(") (identifier "DAT_001b76b0") (, ",") (string_literal ""Certificate bag\n"" (" """) (string_content "Certificate bag") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar2 = param_5 & 2;" (assignment_expression "uVar2 = param_5 & 2" (identifier "uVar2") (= "=") (binary_expression "param_5 & 2" (identifier "param_5") (& "&") (number_literal "2"))) (; ";")) (if_statement "if ((param_5 & 2) == 0) {\n        lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);\n        if (lVar7 == 0) {\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }\n      else {\n        uVar2 = 1;\n      }" (if "if") (parenthesized_expression "((param_5 & 2) == 0)" (( "(") (binary_expression "(param_5 & 2) == 0" (parenthesized_expression "(param_5 & 2)" (( "(") (binary_expression "param_5 & 2" (identifier "param_5") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);\n        if (lVar7 == 0) {\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }\n        FUN_0014f216(param_1,uVar3,"Bag Attributes");\n        iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);\n        if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }\n      }" ({ "{") (expression_statement "lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);" (assignment_expression "lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d)" (identifier "lVar7") (= "=") (call_expression "PKCS12_SAFEBAG_get0_attr(param_2,0x9d)" (identifier "PKCS12_SAFEBAG_get0_attr") (argument_list "(param_2,0x9d)" (( "(") (identifier "param_2") (, ",") (number_literal "0x9d") () ")")))) (; ";")) (if_statement "if (lVar7 == 0) {\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }\n        else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }" (if "if") (parenthesized_expression "(lVar7 == 0)" (( "(") (binary_expression "lVar7 == 0" (identifier "lVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }\n        }" ({ "{") (if_statement "if ((param_5 & 8) != 0) {\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }" (if "if") (parenthesized_expression "((param_5 & 8) != 0)" (( "(") (binary_expression "(param_5 & 8) != 0" (parenthesized_expression "(param_5 & 8)" (( "(") (binary_expression "param_5 & 8" (identifier "param_5") (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar2 = 1;\n            goto LAB_0014f4e5;\n          }" ({ "{") (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" (identifier "uVar2") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0014f4e5;" (goto "goto") (statement_identifier "LAB_0014f4e5") (; ";")) (} "}"))) (} "}")) (else_clause "else if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }" (else "else") (if_statement "if ((param_5 & 0x10) != 0) {\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }" (if "if") (parenthesized_expression "((param_5 & 0x10) != 0)" (( "(") (binary_expression "(param_5 & 0x10) != 0" (parenthesized_expression "(param_5 & 0x10)" (( "(") (binary_expression "param_5 & 0x10" (identifier "param_5") (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar2 = 1;\n          goto LAB_0014f4e5;\n        }" ({ "{") (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" (identifier "uVar2") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0014f4e5;" (goto "goto") (statement_identifier "LAB_0014f4e5") (; ";")) (} "}"))))) (expression_statement "FUN_0014f216(param_1,uVar3,"Bag Attributes");" (call_expression "FUN_0014f216(param_1,uVar3,"Bag Attributes")" (identifier "FUN_0014f216") (argument_list "(param_1,uVar3,"Bag Attributes")" (( "(") (identifier "param_1") (, ",") (identifier "uVar3") (, ",") (string_literal ""Bag Attributes"" (" """) (string_content "Bag Attributes") (" """)) () ")"))) (; ";")) (expression_statement "iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);" (assignment_expression "iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2)" (identifier "iVar1") (= "=") (call_expression "PKCS12_SAFEBAG_get_bag_nid(param_2)" (identifier "PKCS12_SAFEBAG_get_bag_nid") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar1 == 0x9e) {\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }\n        else {\n          uVar2 = 1;\n        }" (if "if") (parenthesized_expression "(iVar1 == 0x9e)" (( "(") (binary_expression "iVar1 == 0x9e" (identifier "iVar1") (== "==") (number_literal "0x9e")) () ")")) (compound_statement "{\n          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);\n          if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }\n        }" ({ "{") (expression_statement "x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);" (assignment_expression "x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2)" (identifier "x") (= "=") (cast_expression "(X509 *)PKCS12_SAFEBAG_get1_cert(param_2)" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "PKCS12_SAFEBAG_get1_cert(param_2)" (identifier "PKCS12_SAFEBAG_get1_cert") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))))) (; ";")) (if_statement "if (x != (X509 *)0x0) {\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }" (if "if") (parenthesized_expression "(x != (X509 *)0x0)" (( "(") (binary_expression "x != (X509 *)0x0" (identifier "x") (!= "!=") (cast_expression "(X509 *)0x0" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            FUN_0017ba67(param_1,x);\n            uVar2 = PEM_write_bio_X509(param_1,x);\n            X509_free(x);\n          }" ({ "{") (expression_statement "FUN_0017ba67(param_1,x);" (call_expression "FUN_0017ba67(param_1,x)" (identifier "FUN_0017ba67") (argument_list "(param_1,x)" (( "(") (identifier "param_1") (, ",") (identifier "x") () ")"))) (; ";")) (expression_statement "uVar2 = PEM_write_bio_X509(param_1,x);" (assignment_expression "uVar2 = PEM_write_bio_X509(param_1,x)" (identifier "uVar2") (= "=") (call_expression "PEM_write_bio_X509(param_1,x)" (identifier "PEM_write_bio_X509") (argument_list "(param_1,x)" (( "(") (identifier "param_1") (, ",") (identifier "x") () ")")))) (; ";")) (expression_statement "X509_free(x);" (call_expression "X509_free(x)" (identifier "X509_free") (argument_list "(x)" (( "(") (identifier "x") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          uVar2 = 1;\n        }" (else "else") (compound_statement "{\n          uVar2 = 1;\n        }" ({ "{") (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" (identifier "uVar2") (= "=") (number_literal "1")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        uVar2 = 1;\n      }" (else "else") (compound_statement "{\n        uVar2 = 1;\n      }" ({ "{") (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" (identifier "uVar2") (= "=") (number_literal "1")) (; ";")) (} "}")))) (goto_statement "goto LAB_0014f4e5;" (goto "goto") (statement_identifier "LAB_0014f4e5") (; ";")) (} "}"))) (if_statement "if (iVar1 == 0x9b) {\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Safe Contents bag\n");\n      }\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      uVar3 = PKCS12_SAFEBAG_get0_safes(param_2);\n      uVar2 = FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7);\n      goto LAB_0014f4e5;\n    }" (if "if") (parenthesized_expression "(iVar1 == 0x9b)" (( "(") (binary_expression "iVar1 == 0x9b" (identifier "iVar1") (== "==") (number_literal "0x9b")) () ")")) (compound_statement "{\n      if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Safe Contents bag\n");\n      }\n      FUN_0014f216(param_1,uVar3,"Bag Attributes");\n      uVar3 = PKCS12_SAFEBAG_get0_safes(param_2);\n      uVar2 = FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7);\n      goto LAB_0014f4e5;\n    }" ({ "{") (if_statement "if ((param_5 & 4) != 0) {\n        BIO_printf(DAT_001b76b0,"Safe Contents bag\n");\n      }" (if "if") (parenthesized_expression "((param_5 & 4) != 0)" (( "(") (binary_expression "(param_5 & 4) != 0" (parenthesized_expression "(param_5 & 4)" (( "(") (binary_expression "param_5 & 4" (identifier "param_5") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        BIO_printf(DAT_001b76b0,"Safe Contents bag\n");\n      }" ({ "{") (expression_statement "BIO_printf(DAT_001b76b0,"Safe Contents bag\n");" (call_expression "BIO_printf(DAT_001b76b0,"Safe Contents bag\n")" (identifier "BIO_printf") (argument_list "(DAT_001b76b0,"Safe Contents bag\n")" (( "(") (identifier "DAT_001b76b0") (, ",") (string_literal ""Safe Contents bag\n"" (" """) (string_content "Safe Contents bag") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0014f216(param_1,uVar3,"Bag Attributes");" (call_expression "FUN_0014f216(param_1,uVar3,"Bag Attributes")" (identifier "FUN_0014f216") (argument_list "(param_1,uVar3,"Bag Attributes")" (( "(") (identifier "param_1") (, ",") (identifier "uVar3") (, ",") (string_literal ""Bag Attributes"" (" """) (string_content "Bag Attributes") (" """)) () ")"))) (; ";")) (expression_statement "uVar3 = PKCS12_SAFEBAG_get0_safes(param_2);" (assignment_expression "uVar3 = PKCS12_SAFEBAG_get0_safes(param_2)" (identifier "uVar3") (= "=") (call_expression "PKCS12_SAFEBAG_get0_safes(param_2)" (identifier "PKCS12_SAFEBAG_get0_safes") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "uVar2 = FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7);" (assignment_expression "uVar2 = FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7)" (identifier "uVar2") (= "=") (call_expression "FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7)" (identifier "FUN_0014f811") (argument_list "(param_1,uVar3,param_3,param_4,param_5,param_6,param_7)" (( "(") (identifier "param_1") (, ",") (identifier "uVar3") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") (, ",") (identifier "param_7") () ")")))) (; ";")) (goto_statement "goto LAB_0014f4e5;" (goto "goto") (statement_identifier "LAB_0014f4e5") (; ";")) (} "}"))) (} "}")))) (expression_statement "BIO_printf(DAT_001b76b0,"Warning unsupported bag type: ");" (call_expression "BIO_printf(DAT_001b76b0,"Warning unsupported bag type: ")" (identifier "BIO_printf") (argument_list "(DAT_001b76b0,"Warning unsupported bag type: ")" (( "(") (identifier "DAT_001b76b0") (, ",") (string_literal ""Warning unsupported bag type: "" (" """) (string_content "Warning unsupported bag type: ") (" """)) () ")"))) (; ";")) (expression_statement "a = (ASN1_OBJECT *)PKCS12_SAFEBAG_get0_type(param_2);" (assignment_expression "a = (ASN1_OBJECT *)PKCS12_SAFEBAG_get0_type(param_2)" (identifier "a") (= "=") (cast_expression "(ASN1_OBJECT *)PKCS12_SAFEBAG_get0_type(param_2)" (( "(") (type_descriptor "ASN1_OBJECT *" (type_identifier "ASN1_OBJECT") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "PKCS12_SAFEBAG_get0_type(param_2)" (identifier "PKCS12_SAFEBAG_get0_type") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))))) (; ";")) (expression_statement "i2a_ASN1_OBJECT(DAT_001b76b0,a);" (call_expression "i2a_ASN1_OBJECT(DAT_001b76b0,a)" (identifier "i2a_ASN1_OBJECT") (argument_list "(DAT_001b76b0,a)" (( "(") (identifier "DAT_001b76b0") (, ",") (identifier "a") () ")"))) (; ";")) (expression_statement "BIO_printf(DAT_001b76b0,"\n");" (call_expression "BIO_printf(DAT_001b76b0,"\n")" (identifier "BIO_printf") (argument_list "(DAT_001b76b0,"\n")" (( "(") (identifier "DAT_001b76b0") (, ",") (string_literal ""\n"" (" """) (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" (identifier "uVar2") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_0014f4e5:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar2;\n  }" (statement_identifier "LAB_0014f4e5") (: ":") (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar2;\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 uVar2;\n  }" ({ "{") (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}")))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

int function_1
              (type_1 *out,type_2 *bag,char *pass,int passlen,int var_5,char *pempass,
              type_3 *enc)

{
  int var_4;
  type_4 var_10;
  type_5 *psVar3;
  type_6 *bags;
  type_7 *var_13;
  type_8 *var_15;
  type_9 uVar6;
  long var_22;
  type_10 *var_25;
  type_11 *a;
  long var_1;
  type_12 *tp8alg;
  long var_33;
  
  var_33 = *(long *)(var_1 + 0x28);
  psVar3 = (type_5 *)var_2(bag);
  var_4 = var_3(bag);
  if (var_4 == 0x97) {
    if ((var_5 & 4U) != 0) {
      var_6((type_1 *)bio_err,"Shrouded Keybag: ");
      uVar6 = var_7(bag);
      var_8(uVar6,&tp8alg,0);
      var_9(tp8alg);
    }
    var_10 = var_5 & 1;
    if (var_10 == 0) {
      var_11(out,psVar3,"Bag Attributes");
      var_13 = var_12((type_2 *)bag,pass,passlen);
      if (var_13 != (type_7 *)0x0) {
        var_15 = var_14(var_13);
        if (var_15 == (type_8 *)0x0) {
          var_16(var_13);
        }
        else {
          psVar3 = (type_5 *)var_17(var_13);
          var_11(out,psVar3,"Key Attributes");
          var_16(var_13);
          var_10 = var_18
                            ((type_1 *)out,var_15,(type_3 *)enc,(type_13 *)0x0,0,(type_14 *)0x0,
                             pempass);
          var_19(var_15);
        }
      }
    }
    goto LAB_0014f4e5;
  }
  if (var_4 < 0x98) {
    if (var_4 == 0x96) {
      if ((var_5 & 4U) != 0) {
        var_6((type_1 *)bio_err,"Key bag\n");
      }
      var_10 = var_5 & 1;
      if (var_10 == 0) {
        var_11(out,psVar3,"Bag Attributes");
        var_13 = (type_7 *)var_20(bag);
        var_15 = var_14(var_13);
        if (var_15 != (type_8 *)0x0) {
          psVar3 = (type_5 *)var_17(var_13);
          var_11(out,psVar3,"Key Attributes");
          var_10 = var_18
                            ((type_1 *)out,var_15,(type_3 *)enc,(type_13 *)0x0,0,(type_14 *)0x0,
                             pempass);
          var_19(var_15);
        }
      }
      goto LAB_0014f4e5;
    }
  }
  else {
    if (var_4 == 0x98) {
      if ((var_5 & 4U) != 0) {
        var_6((type_1 *)bio_err,"Certificate bag\n");
      }
      var_10 = var_5 & 2;
      if ((var_5 & 2U) == 0) {
        var_22 = var_21(bag,0x9d);
        if (var_22 == 0) {
          if ((var_5 & 8U) != 0) {
            var_10 = 1;
            goto LAB_0014f4e5;
          }
        }
        else if ((var_5 & 0x10U) != 0) {
          var_10 = 1;
          goto LAB_0014f4e5;
        }
        var_11(out,psVar3,"Bag Attributes");
        var_4 = var_23(bag);
        if (var_4 == 0x9e) {
          var_25 = (type_10 *)var_24(bag);
          if (var_25 != (type_10 *)0x0) {
            var_26(out,(type_10 *)var_25);
            var_10 = var_27((type_1 *)out,var_25);
            var_28(var_25);
          }
        }
        else {
          var_10 = 1;
        }
      }
      else {
        var_10 = 1;
      }
      goto LAB_0014f4e5;
    }
    if (var_4 == 0x9b) {
      if ((var_5 & 4U) != 0) {
        var_6((type_1 *)bio_err,"Safe Contents bag\n");
      }
      var_11(out,psVar3,"Bag Attributes");
      bags = (type_6 *)var_29(bag);
      var_10 = var_30(out,bags,pass,passlen,var_5,pempass,enc);
      goto LAB_0014f4e5;
    }
  }
  var_6((type_1 *)bio_err,"Warning unsupported bag type: ");
  a = (type_11 *)var_31(bag);
  var_32((type_1 *)bio_err,a);
  var_6((type_1 *)bio_err,"\n");
  var_10 = 1;
LAB_0014f4e5:
  if (var_33 == *(long *)(var_1 + 0x28)) {
    return var_10;
  }
                    /* WARNING: Subroutine does not return */
  var_34();
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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 (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (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)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (string_literal (string_content))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (string_literal (string_content))))) (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) (identifier) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (number_literal) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))))))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (string_literal (string_content))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (string_literal (string_content))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (number_literal) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (string_literal (string_content))))) (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 (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (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))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (string_literal (string_content))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier) (identifier) (identifier))))) (goto_statement label: (statement_identifier))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (escape_sequence))))) (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(BIO *param_1,PKCS12_SAFEBAG *param_2,char *param_3,int param_4,uint param_5,
                 void *param_6,EVP_CIPHER *param_7)

{
  int iVar1;
  uint uVar2;
  undefined8 uVar3;
  PKCS8_PRIV_KEY_INFO *pPVar4;
  EVP_PKEY *pEVar5;
  undefined8 uVar6;
  long lVar7;
  X509 *x;
  ASN1_OBJECT *a;
  long in_FS_OFFSET;
  undefined8 local_48;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  uVar3 = PKCS12_SAFEBAG_get0_attrs(param_2);
  iVar1 = PKCS12_SAFEBAG_get_nid(param_2);
  if (iVar1 == 0x97) {
    if ((param_5 & 4) != 0) {
      BIO_printf(DAT_001b76b0,"Shrouded Keybag: ");
      uVar6 = PKCS12_SAFEBAG_get0_pkcs8(param_2);
      X509_SIG_get0(uVar6,&local_48,0);
      FUN_0014ee52(local_48);
    }
    uVar2 = param_5 & 1;
    if ((param_5 & 1) == 0) {
      FUN_0014f216(param_1,uVar3,"Bag Attributes");
      pPVar4 = PKCS12_decrypt_skey(param_2,param_3,param_4);
      if (pPVar4 != (PKCS8_PRIV_KEY_INFO *)0x0) {
        pEVar5 = EVP_PKCS82PKEY(pPVar4);
        if (pEVar5 == (EVP_PKEY *)0x0) {
          PKCS8_PRIV_KEY_INFO_free(pPVar4);
        }
        else {
          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);
          FUN_0014f216(param_1,uVar3,"Key Attributes");
          PKCS8_PRIV_KEY_INFO_free(pPVar4);
          uVar2 = PEM_write_bio_PrivateKey
                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);
          EVP_PKEY_free(pEVar5);
        }
      }
    }
    goto LAB_0014f4e5;
  }
  if (iVar1 < 0x98) {
    if (iVar1 == 0x96) {
      if ((param_5 & 4) != 0) {
        BIO_printf(DAT_001b76b0,"Key bag\n");
      }
      uVar2 = param_5 & 1;
      if ((param_5 & 1) == 0) {
        FUN_0014f216(param_1,uVar3,"Bag Attributes");
        pPVar4 = (PKCS8_PRIV_KEY_INFO *)PKCS12_SAFEBAG_get0_p8inf(param_2);
        pEVar5 = EVP_PKCS82PKEY(pPVar4);
        if (pEVar5 != (EVP_PKEY *)0x0) {
          uVar3 = PKCS8_pkey_get0_attrs(pPVar4);
          FUN_0014f216(param_1,uVar3,"Key Attributes");
          uVar2 = PEM_write_bio_PrivateKey
                            (param_1,pEVar5,param_7,(uchar *)0x0,0,(undefined1 *)0x0,param_6);
          EVP_PKEY_free(pEVar5);
        }
      }
      goto LAB_0014f4e5;
    }
  }
  else {
    if (iVar1 == 0x98) {
      if ((param_5 & 4) != 0) {
        BIO_printf(DAT_001b76b0,"Certificate bag\n");
      }
      uVar2 = param_5 & 2;
      if ((param_5 & 2) == 0) {
        lVar7 = PKCS12_SAFEBAG_get0_attr(param_2,0x9d);
        if (lVar7 == 0) {
          if ((param_5 & 8) != 0) {
            uVar2 = 1;
            goto LAB_0014f4e5;
          }
        }
        else if ((param_5 & 0x10) != 0) {
          uVar2 = 1;
          goto LAB_0014f4e5;
        }
        FUN_0014f216(param_1,uVar3,"Bag Attributes");
        iVar1 = PKCS12_SAFEBAG_get_bag_nid(param_2);
        if (iVar1 == 0x9e) {
          x = (X509 *)PKCS12_SAFEBAG_get1_cert(param_2);
          if (x != (X509 *)0x0) {
            FUN_0017ba67(param_1,x);
            uVar2 = PEM_write_bio_X509(param_1,x);
            X509_free(x);
          }
        }
        else {
          uVar2 = 1;
        }
      }
      else {
        uVar2 = 1;
      }
      goto LAB_0014f4e5;
    }
    if (iVar1 == 0x9b) {
      if ((param_5 & 4) != 0) {
        BIO_printf(DAT_001b76b0,"Safe Contents bag\n");
      }
      FUN_0014f216(param_1,uVar3,"Bag Attributes");
      uVar3 = PKCS12_SAFEBAG_get0_safes(param_2);
      uVar2 = FUN_0014f811(param_1,uVar3,param_3,param_4,param_5,param_6,param_7);
      goto LAB_0014f4e5;
    }
  }
  BIO_printf(DAT_001b76b0,"Warning unsupported bag type: ");
  a = (ASN1_OBJECT *)PKCS12_SAFEBAG_get0_type(param_2);
  i2a_ASN1_OBJECT(DAT_001b76b0,a);
  BIO_printf(DAT_001b76b0,"\n");
  uVar2 = 1;
LAB_0014f4e5:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return uVar2;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}

